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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Andriy L.: Mastering Redmine. Packt Publishing, Birmingham (2013)
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)
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)
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)
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)
Ierusalimschy, R., Figueiredo, L.H.D., Celes, W.: Lua 5.1 Reference Manual. Roberto Ierusalimschy (2006)
Klimach, H.: Advanced options in tables and universal scripting. https://bitbucket.org/apesteam/aotus/wiki/Home (2011). Accessed 30 July 2013
Knuth, D.: Literate programming. Center for the Study of Language and Information, Stanford (1992)
Nagy, T.: The Waf Book. http://waf.googlecode.com/svn/docs/wafbook/single.html (2010). Accessed 30 July 2013
O’Sullivan, B.: Mercurial: The Definitive Guide. O’Reilly, Sebastopol (2009)
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)
Segal, J.: When software engineers met research scientists: a case study. Empir. Softw. Eng. 10(4), 517–536 (2005)
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
van Heesch, D.: Doxygen manual. http://www.stack.nl/~dimitri/doxygen/manual.html (2010). Accessed 30 July 2013
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)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-3-319-10626-7_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10625-0
Online ISBN: 978-3-319-10626-7
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)