Skip to main content
Log in

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

  • Special Issue Paper
  • Published:
SICS Software-Intensive Cyber-Physical Systems

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. https://aws.amazon.com.

  2. https://azure.microsoft.com.

  3. In MPI jargon, a process is a processing unit that can be distributed across a set of compute nodes.

  4. https://patterns.eecs.berkeley.edu.

References

  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–67

    Article  Google Scholar 

  2. Varghese B, Buyya R (2018) Next generation cloud computing: new trends and research directions. Future Gener Comput Syst 79:849–861

    Article  Google Scholar 

  3. Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state-of-the-art and research challenges. J Internet Serv Appl 1(1):7–18

    Article  Google Scholar 

  4. Mell P, Grance T (2011) The NIST definition of cloud computing. Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg

    Book  Google Scholar 

  5. Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, Berlin

    Book  Google Scholar 

  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–16

    Article  Google Scholar 

  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:11

  8. Andrikopoulos V, Binz T, Leymann F, Strauch S (2013) How to adapt applications for the cloud environment. Computing 95(6):493–535

    Article  Google Scholar 

  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:29

    Article  Google Scholar 

  10. Massingill BL, Mattson TG, Sanders BA (2001) Parallel programming with a pattern language. Int J Softw Tools Technol Transf (STTT) 3(2):217–234

    MATH  Google Scholar 

  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–390

  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–464

    Article  Google Scholar 

  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–125

    Chapter  Google Scholar 

  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–190

    Article  Google Scholar 

  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–19

    Article  Google Scholar 

  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–314

  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. https://d1.awsstatic.com/whitepapers/Intro_to_HPC_on_AWS.pdf. Accessed 9 July 2018

  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–200

  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–216

    Article  Google Scholar 

  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–40

    Google Scholar 

  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–18

    Article  Google Scholar 

  22. Grama A (2003) Introduction to parallel computing. Pearson Education, London

    Google Scholar 

  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–179

    Article  Google Scholar 

  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):8

    Article  Google Scholar 

  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–1052

  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–529

    Article  Google Scholar 

  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, ACM

  28. Sugita Y, Okamoto Y (1999) Replica-exchange molecular dynamics method for protein folding. Chem Phys lett 314(1):141–151

    Article  Google Scholar 

  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,103

    Article  Google Scholar 

  30. Earl DJ, Deem MW (2005) Parallel tempering: theory, applications, and new perspectives. Phys Chem Chem Phys 7(23):3910–3916

    Article  Google Scholar 

  31. Gropp W, Lusk E, Skjellum A (2014) Using MPI: portable parallel programming with the message-passing interface, 3rd edn. MIT press, Cambridge

    MATH  Google Scholar 

  32. Gropp W, Thakur R, Lusk E (1999) Using MPI-2: advanced features of the message passing interface. MIT press, Cambridge

    Book  Google Scholar 

  33. Foster I (1995) Designing and building parallel programs: concepts and tools for parallel software engineering. Addison-Wesley Longman Publishing Co., Inc., Boston

    MATH  Google Scholar 

  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 computing

  35. Gupta A, Milojicic D (2011) Evaluation of hpc applications on cloud. In: 2011 Sixth open cirrus summit, pp 22–26

  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–16

  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–143

  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–168

  39. Kehrer S, Blochinger W (2018) Tosca-based container orchestration on mesos. Comput Sci-Res Dev 33:305–316

    Article  Google Scholar 

  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–46

Download references

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

Authors

Corresponding author

Correspondence to Stefan Kehrer.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-019-00396-8

Keywords

Navigation