ABS Parameter Optimizer Jacopo Mauro University of Oslo ABS Workshop, Jun 2017
Motivation: Optimize Cloud Scaling 2
The Cloud Framework
Idea Model the system in ABS Scalability settings exposed as parameters def Int X() = 0; Use automatic reconfigurator to find best settings SMAC: Sequential Model-based Algorithm Configuration
How to Define Parameters: an example initial_instances_1 integer [1,1] [1] scale_in_threshold_1 integer [4,300] [4] scale_out_threshold_1 integer [3,300] [3] cooling_off_time_1 ordinal { 240, 300, 360, 420, 480 } [300] ... { scale_in_threshold_4 <= scale_out_threshold_4 || scale_in_threshold_1 <= scale_out_threshold_1 }
Preliminary (Parallel) Tests Run ABS Optimizer on: Docker container (4 processors) 1..4 runs in parallel Simulation took ~10 minutes Numascale cluster (104 Nodes) 32,64,104 runs in parallel Simulation took ~1h (compilation > 10 min!) Stop after a day of computation
Preliminary (Parallel) Tests Output as expected Some errors (i.e., no output for X seconds): Models sometimes hang (possible Erlang backend bug) Too much resources used (OS scheduler having problems) → Less error with less simulation in parallel
Conclusions Open Source https://github.com/HyVar/abs_optimizer Deployable by using Docker (one button click installation) Need to better understand limits of Erlang simulations (how many in parallel?) Apply to other examples → Welcome to try!
Thank you for your attention! Questions?