Migrating parallel applications to the cloud: assessing cloud readiness based on parallel design decisions

  • Stefan KehrerEmail author
  • Wolfgang Blochinger
Special Issue Paper


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.


Parallel computing Cloud High Performance Computing Cloud readiness Application properties Cloud migration Non-trivial parallelism 



This research was partially funded by the Ministry of Science of Baden-Württemberg, Germany, for the Doctoral Program Services Computing.


  1. 1.
    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–67CrossRefGoogle Scholar
  2. 2.
    Varghese B, Buyya R (2018) Next generation cloud computing: new trends and research directions. Future Gener Comput Syst 79:849–861CrossRefGoogle Scholar
  3. 3.
    Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state-of-the-art and research challenges. J Internet Serv Appl 1(1):7–18CrossRefGoogle Scholar
  4. 4.
    Mell P, Grance T (2011) The NIST definition of cloud computing. Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, GaithersburgCrossRefGoogle Scholar
  5. 5.
    Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, BerlinCrossRefGoogle Scholar
  6. 6.
    Kratzke N, Quint PC (2017) Understanding cloud-native applications after 10 years of cloud computing-a systematic mapping study. J Syst Softw 126:1–16CrossRefGoogle Scholar
  7. 7.
    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:11Google Scholar
  8. 8.
    Andrikopoulos V, Binz T, Leymann F, Strauch S (2013) How to adapt applications for the cloud environment. Computing 95(6):493–535CrossRefGoogle Scholar
  9. 9.
    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:29CrossRefGoogle Scholar
  10. 10.
    Massingill BL, Mattson TG, Sanders BA (2001) Parallel programming with a pattern language. Int J Softw Tools Technol Transf (STTT) 3(2):217–234zbMATHGoogle Scholar
  11. 11.
    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–390Google Scholar
  12. 12.
    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–464CrossRefGoogle Scholar
  13. 13.
    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–125CrossRefGoogle Scholar
  14. 14.
    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–190CrossRefGoogle Scholar
  15. 15.
    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–19CrossRefGoogle Scholar
  16. 16.
    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–314Google Scholar
  17. 17.
    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. Accessed 9 July 2018
  18. 18.
    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–200Google Scholar
  19. 19.
    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–216CrossRefGoogle Scholar
  20. 20.
    Leymann F, Breitenbücher U, Wagner S, Wettinger J (2017) Native cloud applications: why monolithic virtualization is not their foundation. Springer, Cham, pp 16–40Google Scholar
  21. 21.
    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–18CrossRefGoogle Scholar
  22. 22.
    Grama A (2003) Introduction to parallel computing. Pearson Education, LondonGoogle Scholar
  23. 23.
    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–179CrossRefGoogle Scholar
  24. 24.
    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):8CrossRefGoogle Scholar
  25. 25.
    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–1052Google Scholar
  26. 26.
    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–529CrossRefGoogle Scholar
  27. 27.
    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, ACMGoogle Scholar
  28. 28.
    Sugita Y, Okamoto Y (1999) Replica-exchange molecular dynamics method for protein folding. Chem Phys lett 314(1):141–151CrossRefGoogle Scholar
  29. 29.
    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,103CrossRefGoogle Scholar
  30. 30.
    Earl DJ, Deem MW (2005) Parallel tempering: theory, applications, and new perspectives. Phys Chem Chem Phys 7(23):3910–3916CrossRefGoogle Scholar
  31. 31.
    Gropp W, Lusk E, Skjellum A (2014) Using MPI: portable parallel programming with the message-passing interface, 3rd edn. MIT press, CambridgezbMATHGoogle Scholar
  32. 32.
    Gropp W, Thakur R, Lusk E (1999) Using MPI-2: advanced features of the message passing interface. MIT press, CambridgeCrossRefGoogle Scholar
  33. 33.
    Foster I (1995) Designing and building parallel programs: concepts and tools for parallel software engineering. Addison-Wesley Longman Publishing Co., Inc., BostonzbMATHGoogle Scholar
  34. 34.
    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 computingGoogle Scholar
  35. 35.
    Gupta A, Milojicic D (2011) Evaluation of hpc applications on cloud. In: 2011 Sixth open cirrus summit, pp 22–26Google Scholar
  36. 36.
    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–16Google Scholar
  37. 37.
    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–143Google Scholar
  38. 38.
    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–168Google Scholar
  39. 39.
    Kehrer S, Blochinger W (2018) Tosca-based container orchestration on mesos. Comput Sci-Res Dev 33:305–316CrossRefGoogle Scholar
  40. 40.
    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–46Google Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.Parallel and Distributed Computing GroupReutlingen UniversityReutlingenGermany

Personalised recommendations