DaStGen—A Data Structure Generator for Parallel C++ HPC Software

  • Hans–Joachim Bungartz
  • Wolfgang Eckhardt
  • Miriam Mehl
  • Tobias Weinzierl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5103)


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.


Grid Management Dynamic Data Structure Expression Template Data Structure Generator Persistent Attribute 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 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
  2. 2.
    Bungartz, H.–J., Mehl, M., Weinzierl, T.: A Parallel Adaptive Cartesian PDE Solver Using Space–Filling Curves. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 1064–1074. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 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. 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
  5. 5.
    Hillson, R., Iglewski, M.: C++2MPI: A Software Tool for Automatically Generating MPI Datatypes from C++ Classes. In: Proceedings of the International Conference on Parallel Computing in Electrical Engineering, pp. 13–17. IEEE Computer Society, Los Alamitos (2000)CrossRefGoogle Scholar
  6. 6.
    Hyde, R.: Write Great Code - vol. 2: Thinking Low-Level. In: Writing High-Level. No Starch Press (2004)Google Scholar
  7. 7.
    Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  8. 8.
    Mehl, M., Weinzierl, T., Zenger, C.: A cache-oblivious self-adaptive full multigrid method. Numerical Linear Algebra With Applications 13(2-3), 275–291 (2006)CrossRefzbMATHMathSciNetGoogle Scholar
  9. 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. 10.
    President’s Information Technology Advisory Committee: Computational Science: Ensuring America’s Competitiveness (2005)Google Scholar
  11. 11.
    Renault, É.: Extended MPICC to Generate MPI Derived Datatypes from C Datatypes Automatically. In: Cappello, F., Herault, T., Dongarra, J. (eds.) PVM/MPI 2007. LNCS, vol. 4757, pp. 307–314. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Veldhuizen, T.: Expression Templates. C++ Report 7(5), 26–31 (1995)Google Scholar
  13. 13.
    Weidendorfer, J., Kowarschik, M., Trinitis, C.: A Tool Suite for Simulation Based Analysis of Memory Access Behavior. In: Bubak, M., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds.) ICCS 2004. LNCS, vol. 3038, pp. 440–447. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Hans–Joachim Bungartz
    • 1
  • Wolfgang Eckhardt
    • 1
  • Miriam Mehl
    • 1
  • Tobias Weinzierl
    • 1
  1. 1.Technische Universität MünchenGarchingGermany

Personalised recommendations