Skip to main content

Experiences in Developing HPC Software with Portable Efficiency

  • Conference paper
  • First Online:
Book cover Sustained Simulation Performance 2014

Abstract

This contribution is concerned with software engineering for HPC applications in the field of engineering with a focus on CFD. Our goals are general usability, maintainability, portability and of course high performance and high scalability. Usability is a key property to any application as it sets the bounds on the efficiency the user can work with it. Therefore, we focus on this aspect and show how it is entangled with the other goals.Engineering deals with the design of technical devices and their fine tuning. Increasingly efficient devices require highly sophisticated models. This does not only entail a high resolution but also multiple physical phenomena, complex geometries and different length and time scales to be considered. Simulation software in the field of engineering needs to address these requirements, including high performance to handle the large computational demands. This results in sophisticated applications, which are deployed in an increasingly complex machine environment and need to combine fast execution with involved implementations for large models.We share in this article experiences we made in the development of a general mesh based tool chain for engineering applications named APES and its deployment on HPC machines. Specifically we address on the one hand some software engineering concepts, how they are applied, where they can be neglected and which of them we deem especially important in the HPC context. On the other hand we point to shortcomings in the machine installations that require workarounds and break software engineering principles.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Andriy L.: Mastering Redmine. Packt Publishing, Birmingham (2013)

    Google Scholar 

  2. Basili, V., Carver, J., Cruzes, D., Hochstein, L., Hollingsworth, J., Shull, F., Zelkowitz, M.: Understanding the high-performance-computing community: a software engineer’s perspective. IEEE Softw. 25(4), 29–36 (2008)

    Article  Google Scholar 

  3. Baxter, S.M., Day, S.W., Fetrow, J.S., Reisinger, S.J.: Scientific software development is not an oxymoron. PLoS Comput. Biol. 2(9), e87 (2006)

    Article  Google Scholar 

  4. Erdogmus, H., Morisio, M., Torchiano, M.: On the effectiveness of the test-first approach to programming. IEEE Trans. Softw. Eng. 31(3), 226–237 (2005)

    Article  Google Scholar 

  5. Fernandes, E., Barbosa, V., Ramos, F.: Instruction usage and the memory gap problem. In: Proceedings 14th Symposium on Computer Architecture and High Performance Computing, 2002, pp. 169–175 (2002)

    Google Scholar 

  6. Ierusalimschy, R., Figueiredo, L.H.D., Celes, W.: Lua 5.1 Reference Manual. Roberto Ierusalimschy (2006)

    Google Scholar 

  7. Klimach, H.: Advanced options in tables and universal scripting. https://bitbucket.org/apesteam/aotus/wiki/Home (2011). Accessed 30 July 2013

  8. Knuth, D.: Literate programming. Center for the Study of Language and Information, Stanford (1992)

    MATH  Google Scholar 

  9. Nagy, T.: The Waf Book. http://waf.googlecode.com/svn/docs/wafbook/single.html (2010). Accessed 30 July 2013

  10. O’Sullivan, B.: Mercurial: The Definitive Guide. O’Reilly, Sebastopol (2009)

    Google Scholar 

  11. Roller, S., Bernsdorf, J., Klimach, H., Hasert, M., Harlacher, D., Cakircali, M., Zimny, S., Masilamani, K., Didinger, L., Zudrop, J.: An adaptable simulation framework based on a linearized octree. In: Resch, M., Wang, X., Bez, W., Focht, E., Kobayashi, H., Roller, S. (eds.) High Performance Computing on Vector Systems 2011, pp. 93–105. Springer, Berlin/Heidelberg (2012)

    Google Scholar 

  12. Segal, J.: When software engineers met research scientists: a case study. Empir. Softw. Eng. 10(4), 517–536 (2005)

    Article  Google Scholar 

  13. Tu, T., O’Hallaron, D.R., Ghattas, O.: Scalable parallel octree meshing for TeraScale applications. In: Proceedings of the 2005 ACM/IEEE conference on Supercomputing, SC ’05, pp. 4–19. IEEE Computer Society, Washington, DC (2005). ACM ID: 1105769

    Google Scholar 

  14. van Heesch, D.: Doxygen manual. http://www.stack.nl/~dimitri/doxygen/manual.html (2010). Accessed 30 July 2013

  15. Zudrop, J., Klimach, H., Hasert, M., Masilamani, K., Roller, S.: A fully distributed CFD framework for massively parallel systems. In: Cray User Group 2012, Stuttgart (2012)

    Google Scholar 

Download references

Acknowledgements

The authors would like to thank the Gauss Centre for Supercomputing (GCS) which provided us with the necessary resources on different HPC systems.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Daniel Friedrich Harlacher .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Harlacher, D.F., Klimach, H., Roller, S. (2015). Experiences in Developing HPC Software with Portable Efficiency. In: Resch, M., Bez, W., Focht, E., Kobayashi, H., Patel, N. (eds) Sustained Simulation Performance 2014. Springer, Cham. https://doi.org/10.1007/978-3-319-10626-7_14

Download citation

Publish with us

Policies and ethics