A programming-level approach for elasticizing parallel scientific applications

We present an approach for exploring cloud elasticity in scientific applications.Elasticity control is embedded in the application source code.Elastic applications can adapt their execution environment according to demands.This approach creates a new paradigm for design and development of applications.We present a framework to support the construction of elastic applications. Elasticity is considered one of the fundamental properties of cloud computing. Several mechanisms to provide the feature are offered by public cloud providers and in some academic works. We argue these solutions are inefficient in providing elasticity for scientific applications, since they cannot consider the internal structure and behavior of applications. In this paper we present an approach for exploring the elasticity in scientific applications, in which the elasticity control is embedded in application source code and constructed using elasticity primitives. This approach enables the application itself to request or to release its own resources, taking into account the execution flow and runtime requirements. To support the construction of elastic applications using the presented approach, we developed the Cloudine framework. Cloudine provides all components necessary to construct and execute elastic scientific applications. The Cloudine effectiveness is demonstrated in the experiments where the platform is successfully used to include new features to existing applications, to extend functionalities of other elasticity frameworks and to add elasticity support to parallel programming libraries.

[1]  Rajkumar Buyya,et al.  Dynamically scaling applications in the cloud , 2011, CCRV.

[2]  Roni Avissar,et al.  The Ocean-Land-Atmosphere Model (OLAM). Part I: Shallow-Water Tests , 2008 .

[3]  Anees Shaikh,et al.  A Cost-Aware Elasticity Provisioning System for the Cloud , 2011, 2011 31st International Conference on Distributed Computing Systems.

[4]  Nikos Parlavantzas,et al.  Resilin: Elastic MapReduce over Multiple Clouds , 2013, 2013 13th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing.

[5]  Randy H. Katz,et al.  A view of cloud computing , 2010, CACM.

[6]  Douglas Thain,et al.  Converting a High Performance Application to an Elastic Cloud Application , 2011, 2011 IEEE Third International Conference on Cloud Computing Technology and Science.

[7]  Aniruddha S. Gokhale,et al.  Efficient Autoscaling in the Cloud Using Predictive Models for Workload Forecasting , 2011, 2011 IEEE 4th International Conference on Cloud Computing.

[8]  Bruno Schulze,et al.  Are Public Clouds Elastic Enough for Scientific Computing? , 2013, ICSOC Workshops.

[9]  Guilherme Galante,et al.  A Survey on Cloud Computing Elasticity , 2012, 2012 IEEE Fifth International Conference on Utility and Cloud Computing.

[10]  Jin-Soo Kim,et al.  Cost optimized provisioning of elastic resources for application workflows , 2011, Future Gener. Comput. Syst..

[11]  Rodolfo Azevedo,et al.  Cloud-based OpenMP Parallelization Using a MapReduce Runtime , 2014, 2014 IEEE 26th International Symposium on Computer Architecture and High Performance Computing.

[12]  Asser N. Tantawi,et al.  See Spot Run: Using Spot Instances for MapReduce Workflows , 2010, HotCloud.

[13]  Daniel S. Katz,et al.  Understanding Scientific Applications for Cloud Environments , 2011, CloudCom 2011.

[14]  Eloy Romero,et al.  Elastic Memory Management of Virtualized Infrastructures for Applications with Dynamic Memory Requirements , 2013, ICCS.

[15]  Gagan Agrawal,et al.  A Framework for Elastic Execution of Existing MPI Programs , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[16]  Claudio Schepke,et al.  Online Mesh Refinement for Parallel Atmospheric Models , 2012, International Journal of Parallel Programming.

[17]  Yi Liang,et al.  In Cloud, Can Scientific Communities Benefit from the Economies of Scale? , 2010, IEEE Transactions on Parallel and Distributed Systems.

[18]  Zhenhuan Gong,et al.  PRESS: PRedictive Elastic ReSource Scaling for cloud systems , 2010, 2010 International Conference on Network and Service Management.

[19]  Timothy Grance,et al.  Cloud Computing Synopsis and Recommendations: Recommendations of the National Institute of Standards and Technology , 2012 .

[20]  Samuel Kounev,et al.  Elasticity in Cloud Computing: What It Is, and What It Is Not , 2013, ICAC.

[21]  Cristiano André da Costa,et al.  AutoElastic: Automatic Resource Elasticity for High Performance Applications in the Cloud , 2016, IEEE Transactions on Cloud Computing.

[22]  Douglas Thain,et al.  Resource Management for Elastic Cloud Workflows , 2012, 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012).

[23]  Eloy Romero,et al.  CodeCloud: A platform to enable execution of programming models on the Clouds , 2014, J. Syst. Softw..

[24]  James Miller,et al.  A prototype empirical evaluation of test driven development , 2004 .

[25]  Moustafa Ghanem,et al.  Future Generation Computer Systems ( ) – Future Generation Computer Systems Enabling Cost-aware and Adaptive Elasticity of Multi-tier Cloud Applications , 2022 .

[26]  Christof Fetzer,et al.  Scaling Non-elastic Applications Using Virtual Machines , 2011, 2011 IEEE 4th International Conference on Cloud Computing.

[27]  Douglas Thain,et al.  A Framework for Scalable Genome Assembly on Clusters, Clouds, and Grids , 2012, IEEE Transactions on Parallel and Distributed Systems.

[28]  Ajay Mohindra,et al.  Dynamic Scaling of Web Applications in a Virtualized Cloud Computing Environment , 2009, 2009 IEEE International Conference on e-Business Engineering.

[29]  Luis Carlos Erpen De Bona,et al.  Supporting Elasticity in OpenMP Applications , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[30]  Jeffrey S. Chase,et al.  Automated control in cloud computing: challenges and opportunities , 2009, ACDC '09.