Abstract
This paper discusses the parallel design of COOLFluiD (Computa- tional Object Oriented Library for Fluid Dynamics), a state-of-the-art C++ framework for multi-physics simulations using multiple numerical methods on unstructured grids. By using advanced techniques and specific design patterns, flexibility and modularity are assured. COOLFluiD was recently adapted to support parallel computations on distributed memory machines. For this, a parallel layer was added, designed to minimize impact on both users and software developers, while maintaining high performance. From the user’s point of view, parallelisation is fully transparent. The techniques making this possible will be discussed. Also presented is a technique for reconciling generic programming with libraries requiring explicit type information.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Message Passing Interface Forum, MPI: A message-passing interface standard, http://www.mpi-forum.org
Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., Sunderam, V.: PVM: Parallel virtual machine: a users’ guide and tutorial for networked parallel computing. MIT Press, Cambridge (1995)
Argonne National Laboratory, PETSc. Portable, Extensible Toolkit for Scientific Computation (2004), http://www-unix.mcs.anl.gov/petsc
Lani, A., Quintino, T., Kimpe, D., Deconinck, H., Vandewalle, S.: The COOLFluiD Framework: Design Solutions fo High Performant Object Oriented Numerical Simulations of Partial Differential Equations. In: International Conference on Computational Science 2005, pp. 279–286 (2005)
De Ceuninck, P., Quintino, T., Vandewalle, S., Deconink, H.: Object-Oriented Framework for Multi-Method Parallel PDE software. In: ECOOP 2003 - European Conference for Object-Oriented Programming in the workshop Parallel/High-Performance Object-Oriented Scientific Computing (2003)
Myers, N.: A New and Useful Template Technique: Traits, C++ Report (June 1995)
Beveridge, J.: Self-Registering Objects in C++, Dr. Dobb’s Journal, August (1998b)
Toth, G.: A General Code for Modeling MHD flows on Parallel Computers: Versatile Advection Code. IAU Colloquium No. 153 on Magnetodynamic Phenomena in the Solar Atmosphere, Makuhari, Japan Proceedings, 471–472 (1995)
Gray, G., Kolda, T.: APPSPACK 4.0: Asynchronous Parallel Pattern Search for Derivative-Free Optimization. Sandia National Laboratories, http://software.sandia.gov/appspack
Rijks, P., Squyres, J., Lumsdaine, A.: Performance Benchmarking of Object Oriented MPI. Technical report, University of Notre Dame Department of Computer Science and Engineering (1999)
Hillson, R., Iglewski, M.: C++2MPI: A Software Tool for Automatically Generating MPI Datatypes from C++ Classes. In: International Conference on Parallel Computing in Electrical Engineering (PARELEC 2000), pp. 13–17 (2000)
Koenig, A., Moo, B.E.: Templates and Duck Typing, C/C++ Users Journal (June 2005)
The National Center for Supercomputing Applications, HDF5 Homepage, http://hdf.ncsa.uiuc.edu/HDF5/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kimpe, D., Lani, A., Quintino, T., Poedts, S., Vandewalle, S. (2005). The COOLFluiD Parallel Architecture. In: Di Martino, B., Kranzlmüller, D., Dongarra, J. (eds) Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2005. Lecture Notes in Computer Science, vol 3666. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11557265_66
Download citation
DOI: https://doi.org/10.1007/11557265_66
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29009-4
Online ISBN: 978-3-540-31943-6
eBook Packages: Computer ScienceComputer Science (R0)