#-------------------------------------------------------------
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
#-------------------------------------------------------------

# Options for executing the Resource Optimizer

# AWS specific options ---------------------------------------

# specifies cloud region (using the corresponding abbreviation)
REGION=us-east-1
# specifies filename of CSV table containing the meta data about all available cloud VM instance
INFO_TABLE=scripts/resource/ec2_stats.csv
# specifies filename of CSV table containing the extra price metrics depending on the target cloud region
REGION_TABLE=scripts/resource/aws_regional_prices.csv
# output folder for configurations files; existing configurations files will be overwritten
OUTPUT_FOLDER=scripts/resource/output
# local inputs to that would be later read from s3;
# allows to save accessing s3 objects + metadata for speedup and avioding the need of setting local AWS credentials;
# define them as comma separated key=value pairs (no spaces)
LOCAL_INPUTS=

# Options for the enumeration process ------------------------

# specifies enumeration strategy; it should be one of the following: 'grid', 'interest', 'prune'; default 'grid'
ENUMERATION=prune
# specifies optimization strategy (scoring function);
# it should be one of the following: 'costs', 'time', 'price'; default 'costs'
OPTIMIZATION_FUNCTION=price
# specifies the weighting factor for the optimization function 'costs',
# value should be always between 0 and 1 (default is 0.01),
# bigger values prioritize the time over the price
COSTS_WEIGHT=0.01
# specifies constraint for maximum execution time; required and only relevant for OPTIMIZATION_FUNCTION=price
MAX_TIME=1000000
# specifies constraint for maximum price on AWS for execution; required and only relevant for OPTIMIZATION_FUNCTION=time
MAX_PRICE=
# specifies the limit of (virtual) CPU cores allowed for evaluation;
# this corresponds to the most common VM service quota set by cloud providers
CPU_QUOTA=256
# specifies minimum desired executors; default 0 (single node execution allowed);
# a negative value lead to setting the default
MIN_EXECUTORS=
# specifies maximum desired executors; default 200; a negative value leads to setting the default
MAX_EXECUTORS=
# specifies VM instance types for consideration at searching for optimal configuration;
# if not specified, all instances from the table with instance metadata are considered;
# define them as comma separated values (no spaces)
INSTANCE_FAMILIES=
# specifies VM instance sizes for consideration at searching for optimal configuration;
# if not specified, all instances from the table with instance metadata are considered;
# define them as comma separated values (no spaces)
INSTANCE_SIZES=
# specific to grid-based enum. strategy; specifies step size for enumerating number of executors; default 1
STEP_SIZE=
# specific to grid-based strategy; specifies exponential base for increasing the number of executors exponentially;
# apply only if specified as larger than 1
EXPONENTIAL_BASE=
# specific to interest-based enum. strategy; boolean ('true'/'false') to indicate if single node execution should be
# considered only in case of sufficient memory budget for the driver; default true
USE_LARGEST_ESTIMATE=
# specific to interest-based enum. strategy; boolean ('true'/'false') to indicate if the CP memory is an interest
# for the enumeration; default true
USE_CP_ESTIMATES=
# specific to interest-based enum. strategy; boolean ('true'/'false') to indicate if potential broadcast variables'
# size is an interest for driver and executors memory budget; default true
USE_BROADCASTS=
# specific to interest-based enum. strategy; boolean ('true'/'false') to indicate if the size of the outputs
# (potentially cached) is an interest for the enumerated number of executors; default false
USE_OUTPUTS=
