-
Notifications
You must be signed in to change notification settings - Fork 5
Getting Started
This document describes the steps that a user needs to carry out to configure and run BO4CO:
The user of the tool needs to configure BO4CO by specifying the configuration parameters in expconfig.yaml
:
$ cd target/
$ vim conf/expconfig.yaml
expconfig.yaml
comprises several important parts: runexp
specifies the experimental parameters, services
comprises the detals of the services which BO4CO uses, application
is the details of the application, e.g., storm topology and the associated Java classes, and most importantly the details of the configuration parameters are specified in vars
field.
For example, the following parameters specify the experimental budget (i.e., total number of iterations), the number of initial samples, the experimental time, polling interval and the interval time between each experimental iterations, all in milliseconds:
runexp:
numIter: 100
initialDesign: 10
...
expTime: 300000
metricPoll: 1000
sleep_time: 10000
The following parameters specify the name of the configuration parameter, the node for which it is going to be used, possible values for the parameter and lower bound and upper bound if it is integer, otherwise it would be categorical.
vars:
- paramname: "topology.max.spout.pending"
node: ["storm", "nimbus"]
options: [1 2 10 100 1000 10000]
lowerbound: 0
upperbound: 0
integer: 0
categorical: 1
The experimental suite component of BO4CO is depdent on DICE Deployment service, so before starting BO4CO, the deployment service needs to be installed:
$ mkdir -p ~/myrepos ; cd ~/myrepos
$ git clone https://github.com/dice-project/DICE-Deployment-Service.git
Moreover, the DICE deployment service needs to be running soemwhere (see the guideline) and the associated filed in expconfig.yaml
needs to be updated accordingly:
services:
- servicename: "deployment.service"
URL: "http://xxx.xxx.xxx.xxx:8000"
container: "CONTAINER ID"
username: "your username"
password: "your password"
tools: "/Repos/DICE-Deployment-Service/tools"
In the services
field in expconfig.yaml
the location of the deployment services tools needs to be updated accordingly, i.e., ~/myrepos/DICE-Deployment-Service/tools
.
To run BO4CO you just need to execute the following bash script, make sure the configuration parameters are set properly before running this:
$ cd target/
$ ./run_bo4co.sh
The experimental data are stored in a performance repository located inside the target
folder. integrated/reports
stores the detailed measurements separated by each configuration setting in csv
format. integrated/summary
stores the summary of measurements in terms of average latency and throughput separated by each experiment. After the experimental budget is finished, a MAT-File
will be dumped into the integrated/summary
folder.