Abstract
Parallel applications are the computational backbone of major industry trends and grand challenges in science. Whereas these applications are typically constructed for dedicated High Performance Computing clusters and supercomputers, the cloud emerges as attractive execution environment, which provides on-demand resource provisioning and a pay-per-use model. However, cloud environments require specific application properties that may restrict parallel application design. As a result, design trade-offs are required to simultaneously maximize parallel performance and benefit from cloud-specific characteristics. In this paper, we present a novel approach to assess the cloud readiness of parallel applications based on the design decisions made. By discovering and understanding the implications of these parallel design decisions on an application’s cloud readiness, our approach supports the migration of parallel applications to the cloud. We introduce an assessment procedure, its underlying meta model, and a corresponding instantiation to structure this multi-dimensional design space. For evaluation purposes, we present an extensive case study comprising three parallel applications and discuss their cloud readiness based on our approach.
Similar content being viewed by others
Notes
In MPI jargon, a process is a processing unit that can be distributed across a set of compute nodes.
References
Asanovic K, Bodik R, Demmel J, Keaveny T, Keutzer K, Kubiatowicz J, Morgan N, Patterson D, Sen K, Wawrzynek J et al (2009) A view of the parallel computing landscape. Commun ACM 52(10):56–67
Varghese B, Buyya R (2018) Next generation cloud computing: new trends and research directions. Future Gener Comput Syst 79:849–861
Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state-of-the-art and research challenges. J Internet Serv Appl 1(1):7–18
Mell P, Grance T (2011) The NIST definition of cloud computing. Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg
Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, Berlin
Kratzke N, Quint PC (2017) Understanding cloud-native applications after 10 years of cloud computing-a systematic mapping study. J Syst Softw 126:1–16
Fehling C, Leymann F, Retter R, Schumm D, Schupeck W (2011) An architectural pattern language of cloud-based applications. In: Proceedings of the 18th conference on pattern languages of programs, ACM, New York, PLoP ’11, pp 2:1–2:11
Andrikopoulos V, Binz T, Leymann F, Strauch S (2013) How to adapt applications for the cloud environment. Computing 95(6):493–535
Netto MAS, Calheiros RN, Rodrigues ER, Cunha RLF, Buyya R (2018) Hpc cloud for scientific and business applications: taxonomy, vision, and research challenges. ACM Comput Surv (CSUR) 51(1):8:1–8:29
Massingill BL, Mattson TG, Sanders BA (2001) Parallel programming with a pattern language. Int J Softw Tools Technol Transf (STTT) 3(2):217–234
Rajan D, Canino A, Izaguirre JA, Thain D (2011) Converting a high performance application to an elastic cloud application. In: cloud computing technology and science (CloudCom), 2011 IEEE third international conference on, IEEE, pp 383–390
Yang X, Wallom D, Waddington S, Wang J, Shaon A, Matthews B, Wilson M, Guo Y, Guo L, Blower JD, Vasilakos AV, Liu K, Kershaw P (2014) Cloud computing in e-science: research challenges and opportunities. J Supercomput 70(1):408–464
Galante G, da Rosa Righi R (2017) Exploring cloud elasticity in scientific applications. In: Antonopoulos N, Gillam L (eds) Cloud computing: principles, systems and applications. Springer, Cham, pp 101–125
da Rosa Righi R, Rodrigues VF, Rostirolla G, da Costa CA, Roloff E, Navaux POA (2018) A lightweight plug-and-play elasticity service for self-organizing resource provisioning on parallel applications. Future Gener Comput Syst 78:176–190
d R Righi R, Rodrigues VF, da Costa CA, Galante G, de Bona LCE, Ferreto T (2016) Autoelastic: automatic resource elasticity for high performance applications in the cloud. IEEE Trans Cloud Comput 4(1):6–19
Gupta A, Kale LV, Gioachin F, March V, Suen CH, Lee BS, Faraboschi P, Kaufmann R, Milojicic D (2013) The who, what, why, and how of high performance computing in the cloud. In: 2013 IEEE 5th international conference on cloud computing technology and science 1:306–314
Pellerin D, Ballantyne D, Boeglin A (2015) An introduction to high performance computing on aws: scalable, cost-effective solutions for engineering, business, and science. Amazon Whitepaper. https://d1.awsstatic.com/whitepapers/Intro_to_HPC_on_AWS.pdf. Accessed 9 July 2018
Zhang J, Lu X, Panda DKD (2017) Designing locality and numa aware mpi runtime for nested virtualization based hpc cloud with sr-iov enabled infiniband. In: Proceedings of the 13th ACM SIGPLAN/SIGOPS international conference on virtual execution environments. ACM, New York, VEE ’17, pp 187–200
Galante G, Erpen De Bona LC, Mury AR, Schulze B, da Rosa Righi R (2016) An analysis of public clouds elasticity in the execution of scientific applications: a survey. J Grid Comput 14(2):193–216
Leymann F, Breitenbücher U, Wagner S, Wettinger J (2017) Native cloud applications: why monolithic virtualization is not their foundation. Springer, Cham, pp 16–40
Parashar M, AbdelBaky M, Rodero I, Devarakonda A (2013) Cloud paradigms and practices for computational and data-enabled science and engineering. Comput Sci Eng 15(4):10–18
Grama A (2003) Introduction to parallel computing. Pearson Education, London
Toffetti G, Brunner S, Blöchlinger M, Spillner J, Bohnert TM (2017) Self-managing cloud-native applications: design, implementation, and experience. Future Gener Comput Syst 72(Supplement C):165–179
Corbett JC, Dean J, Epstein M, Fikes A, Frost C, Furman JJ, Ghemawat S, Gubarev A, Heiser C, Hochschild P et al (2013) Spanner: googles globally distributed database. ACM Trans Comput Syst (TOCS) 31(3):8
Verbitski A, Gupta A, Saha D, Brahmadesam M, Gupta K, Mittal R, Krishnamurthy S, Maurice S, Kharatishvili T, Bao X (2017) Amazon aurora: design considerations for high throughput cloud-native relational databases. In: Proceedings of the 2017 ACM international conference on management of data. ACM, pp 1041–1052
Massingill BL, Mattson TG, Sanders BA (2007) Reengineering for parallelism: an entry point into plpp for legacy applications. Concurr Comput: Pract Exp 19(4):503–529
Keutzer K, Massingill BL, Mattson TG, Sanders BA (2010) A design pattern language for engineering (parallel) software: merging the plpp and opl projects. In: Proceedings of the 2010 workshop on parallel programming patterns, ACM
Sugita Y, Okamoto Y (1999) Replica-exchange molecular dynamics method for protein folding. Chem Phys lett 314(1):141–151
Brenner P, Sweet CR, VonHandorf D, Izaguirre JA (2007) Accelerating the replica exchange method through an efficient all-pairs exchange. J Chem Phys 126(7):074,103
Earl DJ, Deem MW (2005) Parallel tempering: theory, applications, and new perspectives. Phys Chem Chem Phys 7(23):3910–3916
Gropp W, Lusk E, Skjellum A (2014) Using MPI: portable parallel programming with the message-passing interface, 3rd edn. MIT press, Cambridge
Gropp W, Thakur R, Lusk E (1999) Using MPI-2: advanced features of the message passing interface. MIT press, Cambridge
Foster I (1995) Designing and building parallel programs: concepts and tools for parallel software engineering. Addison-Wesley Longman Publishing Co., Inc., Boston
Bui P, Rajan D, Abdul-Wahid B, Izaguirre J, Thain D (2011) Work queue+python: A framework for scalable scientific ensemble applications. In: Workshop on python for high-performance and scientific computing
Gupta A, Milojicic D (2011) Evaluation of hpc applications on cloud. In: 2011 Sixth open cirrus summit, pp 22–26
Vecchiola C, Pandey S, Buyya R (2009) High-performance cloud computing: a view of scientific applications. In: Pervasive systems, algorithms, and networks (ISPAN), 2009 10th international symposium on, IEEE, pp 4–16
Hung DMP, Naidu SMS, Agyeman MO (2017) Architectures for cloud-based hpc in data centers. In: Big data analysis (ICBDA), 2017 IEEE 2nd international conference on, IEEE, pp 138–143
Jackson KR, Ramakrishnan L, Muriki K, Canon S, Cholia S, Shalf J, Wasserman HJ, Wright NJ (2010) Performance analysis of high performance computing applications on the amazon web services cloud. In: 2010 IEEE second international conference on cloud computing technology and science, pp 159–168
Kehrer S, Blochinger W (2018) Tosca-based container orchestration on mesos. Comput Sci-Res Dev 33:305–316
Kehrer S, Blochinger W (2018) Autogenic: automated generation of self-configuring microservices. In: Proceedings of the 8th international conference on cloud computing and services science (CLOSER), SciTePress, pp 35–46
Acknowledgements
This research was partially funded by the Ministry of Science of Baden-Württemberg, Germany, for the Doctoral Program Services Computing.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kehrer, S., Blochinger, W. Migrating parallel applications to the cloud: assessing cloud readiness based on parallel design decisions . SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 73–84 (2019). https://doi.org/10.1007/s00450-019-00396-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00396-8