# Parameters for this Virtual Application (Application Instance - AI) type should
# be set on YOUR private configuration configuration file, including the ones 
# commented.

[AI_TEMPLATES : GIRAPH]

# Attributes MANDATORY for all Virtual Applications
SUT = giraphmaster->3_x_giraphslave
LOAD_BALANCER_SUPPORTED = $False
RESIZE_SUPPORTED = $True
REGENERATE_DATA = $True
LOAD_GENERATOR_ROLE = giraphmaster
LOAD_MANAGER_ROLE = giraphmaster
METRIC_AGGREGATOR_ROLE = giraphmaster
CAPTURE_ROLE = giraphslave
LOAD_PROFILE = pagerank
LOAD_LEVEL = uniformIXIXI1I3
LOAD_DURATION = 60
CATEGORY = data-centric
PROFILES = pagerank,topkpagerank
REFERENCE = https://giraph.apache.org
LICENSE = Apache_v2
REPORTED_METRICS = latency,completion_time,quiescent_time,errors

# VApp-specific MANDATORY attributes
DESCRIPTION =Deploys a Hadoop/Giraph cluster (1 master instance and N slave \n
DESCRIPTION +=instances). The master node submits giraph jobs jobs to the cluster.\n
DESCRIPTION +=  - LOAD_PROFILE possible values: _PROFILES_ (for a proper\n
DESCRIPTION +=    description, consult the section "Page Rank Example" on\n
DESCRIPTION +=    the Giraph documentation)\n
DESCRIPTION +=  - LOAD_LEVEL meaning: number of vertices on the graph (multiplied\n
DESCRIPTION +=    by a NUM_VERTICES_FACTOR, with default "100").\n 
DESCRIPTION +=  - LOAD_DURATION meaning: not used, a run ends when the giraph\n
DESCRIPTION +=    job is completed.\n
DESCRIPTION +=  - COMMENT: One of the "Big Data" Workloads. When new slave nodes\n 
DESCRIPTION +=    are added (after an "airesize") the Hadoop/Giraph cluster is\n
DESCRIPTION +=    reconfigured to include these nodes.
GIRAPHMASTER_SETUP1 = cb_config_giraph_cluster.sh
GIRAPHSLAVE_SETUP1 = cb_config_giraph_cluster.sh
GIRAPHMASTER_SETUP2 = cb_start_giraph_cluster.sh
GIRAPHSLAVE_SETUP2 = cb_start_giraph_cluster.sh
GIRAPHMASTER_RESIZE1 = cb_giraph_hadoop_cluster.sh
GIRAPHSLAVE_RESIZE1 = cb_giraph_hadoop_cluster.sh
START = cb_run_giraph.sh

# VApp-specific modifier parameters. Commented attributes imply default values assumed
JAVA_HOME = auto
HADOOP_HOME = ~/hadoop-1.2.1
HADOOP_EXAMPLES = hadoop-examples-1.2.1.jar
DFS_NAME_DIR = /tmp/cbhadoopname
DFS_DATA_DIR = /tmp/cbhadoopdata
GIRAPH_HOME = ~/giraph/
ZOOKEEPER_HOME=~/giraph/zookeeper/zookeeper-3.4.6/
EDGES_PER_VERTEX = 3
NUM_SUPERSTEPS = 3
NUM_WORKERS_FACTOR = 1
NUM_VERTICES_FACTOR = 10

### Out of core parameters
USE_OUT_OF_CORE = $False
USER_PARTITION_COUNT = 100 #Implicit at the moment
### Dgiraph.messageStoreFactoryClass=org.apache.giraph.comm.messages.out_of_core.DiskBackedMessageStoreFactory #Implicit at the moment
IS_STATIC_GRAPH = $True
OUT_OF_CORE_BASE_DIRECTORY = ~/ooc
MAX_PARTITIONS_IN_MEMORY = 10
MAX_MESSAGES_IN_MEMORY = 1000
## If this parameter is set, it will supersede max_partitions_in_memory
## and max_messages_in_memory. Be careful, if you set this too low your
## application will become immortal.
MAX_HEAP_USAGE_BYTES = 1000000000
USE_RAMDISK = $True
RAMDISK_SIZE_MB = 1024

# Inter-Virtual Application instances (inter-AI) synchronized execution. Entirely optional
#SYNC_COUNTER_NAME = synchronization_counter
#CONCURRENT_AIS = 2
#SYNC_CHANNEL_NAME = synchronization_channel
#RUN_COUNTER_NAME = experiment_id_counter
