Vertelastic: um módulo de decisão para explorando elasticidade vertical no Autoelastic - Moreira, Gabriel Araujo Siccardi (Universidade do Vale do Rio dos Sinos, 2018)
The concept of elasticity is closely linked to cloud computing because it consists of the ability to contract computational resources dynamically and in real time. Usually, in high performance computing (HPC), applications are modeled for use with load balancing technology, making use of virtual machine technology. Parallel computing has long been used to solve computational issues involving the execution of many processes simultaneously and demand large amounts of computations whose premise is that a large piece of code to be processed can be broken into smaller ones and thus the problem as a whole divided and resolved more quickly. HPC is a typical case of use of computer parallelism that has as its most common communication protocol Message Passing Interface (MPI), but when we are dealing with applications in MPI, the maximum use of elasticity occurs in a laborious way, with the need code rewriting, deep knowledge of application behavior, and some interruptions in the application to recompile new ones and put it into production are inevitable. In order to avoid the rewriting of code and the total use of hardwares that are increasingly robust, it is proposed in the research of this dissertation the possibility of implementing vertical elasticity to work with high performance application. A decision module called VertElastic is incorporated into the AutoElastic framework, thus allowing the possibility for both forms of elasticity - vertical and horizontal - to be expanded, and can be done in a fixed way with the indication of threholds or with prediction values are calculated automatically. Studies deal with vertical elasticity with threshold, while others use proactive and / or reactive horizontal elasticity, but no research was found that allowed the flexibility to use vertical or horizontal elasticity as needed proactively or reactively, for this the VertElastic uses the asynchronous elasticity, providing that the application is not blocked while the elasticity happens, be it to increase or decrease the computational resource. VertElastic demonstrates its feasibility in a testing routine run on the open source OpenNebula tool. The execution of a CPU-Bound application showed that VertElastic was 13% to 38% more effective than the non-use of any elasticity technique. The tests also showed that the higher the threshold used the lower the gain in the consumption of computational resources and the longer the execution time of the application.
Keywords: Computação em Nuvem; Elasticidade; Computação de alto desempenho; Cloud computing; Elasticity; High performance computing; ACCNPQ::Ciências Exatas e da Terra::Ciência da Computação