An automated system for program parameters fine tuning in the cloud

Jul 1, 2014, 5:10 PM
20m
310 (LIT JINR)

310

LIT JINR

Russia, 141980 Moscow region, Dubna, JINR
sectional reports Section 8 - Оptimization problems and distributed computing Section 8 - Оptimization problems and distributed computing

Speaker

Mr Sergey Smirnov (Institute for Information Transmission Problems of the Russian Academy of Sciences)

Description

Growing number of Infrastructure as a service (IaaS) providers we observe today is a direct effect of computation costs getting cheaper and of infrastructure automatization levels getting higher. Cloud services make it possible to automate more programmer's work making him more productive. It may be considered as another step in continuous process of adding more abstraction levels to a computer system: high-level programming languages, interactive debugging, automatic build systems, etc. For developers it allows for rapidly creating development and test sandboxes, quickly create virtual machines with needed software, testing load and scalability. There are lots of problems that can be automated by the use of clouds. One of such problems is fine tuning an algorithm to make it work better in some sense, for example, faster. It can be done in many ways: modifying hard coded parameters inside the program, smart analysis of the program's source code, adjusting parameters inside configuration files of program's modules. In our study we have chosen the last described way: fine tuning configuration parameters of the SCIP (Solving Constraint Integer Programs) solver. SCIP [1] is currently one of the fastest non-commercial solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP). It is also a framework for constraint integer programming and branch-cut-and-price. It allows for total control of the solution process and the access of detailed information down to the guts of the solver. Although SCIP is a very fast solver even with default parameters it should be possible to fine tune the parameters for one's work. It is quite simple if there are a couple of parameters and a not many test problems. However SCIP is very configurable having more than a thousand parameters. Apparently having such a large set of configuration parameters makes fine tuning it quite time consuming. That is why we tried to automate this process making a system choosing best configuration options for a set of problems. Due to vast number of SCIP runs needed we had to use a cloud to make the process quick. As a result of the study the system described was made. It uses Vagrant [2] for virtual machine management, Simple Linux Utility for Resource Management (SLURM) [3] for batch job processing, Python [4] for automation, Virtualbox [5] for debugging and DigitalOcean [6] as a cloud provider. It was tested on a number of problem classes and several-fold speedup was shown: SCIP was solving problems two times faster on the average. The results can be easily extended on other solvers. We can hook up another solver on demand. The system is planned to be made accessible on the Web. The Web front end is under development. In conclusion we expect that the service would be quite popular among SCIP users. Another conclusion is that cloud computing is very convenient and cheap nowadays which is definitely a good driver for developing new and nonconventional approaches. [1] Tobias Achterberg, SCIP: solving constraint integer programs, Mathematical Programming Computation, volume 1, number 1, 2009, pp. 1–41. [2] Vagrant, http://www.vagrantup.com/ [3] Yoo, Andy B., Morris A. Jette, and Mark Grondona. "SLURM: Simple linux utility for resource management." Job Scheduling Strategies for Parallel Processing. Springer Berlin Heidelberg, 2003. [4] Sanner, Michel F. "Python: a programming language for software integration and development." J Mol Graph Model 17.1, 1999, pp. 57-61. [5] Oracle VM VirtualBox, https://www.virtualbox.org/ [6] DigitalOcean cloud hosting, https://digitalocean.com/

Primary author

Mr Sergey Smirnov (Institute for Information Transmission Problems of the Russian Academy of Sciences)

Co-author

Presentation materials