DaStGen—A Data Structure Generator for Parallel C++ HPC Software
Simulation codes often suffer from high memory requirements. This holds in particular if they are memory-bounded, and, with multicore systems coming up, the problem will become even worse as more and more cores have to share the memory connections. To optimise data structures with respect to memory manually is error-prone and cumbersome.
This paper presents the tool DaStGen translating classes declared in C++ syntax and augmented by new keywords into plain C++ code. The tool automates the record optimisation, as it analyses the potential range of each attribute, and as the user can restrict this range further. Herefrom, the generated code stores multiple attributes within one single primitive type. Furthermore, the tool derives user-defined MPI data types for each class. Using the tool reduces any algorithm’s memory footprint, it speeds up memory-bounded applications such as CFD codes, and it hides technical details of MPI applications from the programmer.
Unable to display preview. Download preview PDF.
- 1.Brenk, M., Bungartz, H.–J., Mehl, M., Muntean, I.L., Neckel, T., Weinzierl, T.: Numerical Simulation of Particle Transport in a Drift Ratchet. SIAM Journal of Scientific Computing (2008) (accepted)Google Scholar
- 3.Gagnon, E., Hendren, L.J.: SableCC, an Object-Oriented Compiler Framework. In: TOOLS 1998: Proceedings of the Technology of Object-Oriented Languages and Systems, pp. 140–154. IEEE Computer Society, Los Alamitos (1998)Google Scholar
- 4.Gropp, W., Kaushik, D., Keyes, D., Smith, B.: Towards Realistic Performance Bounds for Implicit CFD Codes. In: Proceedings of Parallel CFD 1999, pp. 241–248. Elsevier, Amsterdam (1999)Google Scholar
- 6.Hyde, R.: Write Great Code - vol. 2: Thinking Low-Level. In: Writing High-Level. No Starch Press (2004)Google Scholar
- 9.Parker, S.G., Weinstein, D.M., Johnson, C.R.: The SCIRun computational steering software system. Modern Software Tools in Scientific Computing, 1–40 (1997)Google Scholar
- 10.President’s Information Technology Advisory Committee: Computational Science: Ensuring America’s Competitiveness (2005)Google Scholar
- 12.Veldhuizen, T.: Expression Templates. C++ Report 7(5), 26–31 (1995)Google Scholar