Skip to main content
Log in

ViennaX: a parallel plugin execution framework for scientific computing

  • Original Article
  • Published:
Engineering with Computers Aims and scope Submit manuscript

Abstract

We present the free open source plugin execution framework ViennaX for modularizing and parallelizing scientific simulations. In general, functionality is abstracted by the notion of a task, which is implemented as a plugin. The plugin system facilitates the utilization of both, already available functionality as well as new implementations. Each task can define arbitrary data dependencies which are used by ViennaX to build a task graph. The framework supports the execution of this dependence graph based on the message passing interface in either a serial or a parallel fashion. The applied modular approach allows for defining highly flexible simulations, as plugins can be easily exchanged. The framework’s general design as well as implementation details are discussed. Applications based on the Mandelbrot set and the solution of a partial differential equation are investigated, and performance results are shown.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

Notes

  1. http://www.csc.fi/english/pages/elmer/.

  2. http://viennax.sourceforge.net/.

  3. http://www.boost.org/.

  4. http://threadingbuildingblocks.org/.

  5. http://www.cca-forum.org/.

  6. http://cactuscode.org/.

  7. http://www.earthsystemmodeling.org/.

  8. http://coolfluidsrv.vki.ac.be/trac/coolfluid/.

  9. http://www.mcs.anl.gov/petsc/.

  10. http://www.p4est.org/.

  11. http://www.uintah.utah.edu/.

  12. http://icl.cs.utk.edu/dague/.

  13. http://www.overtureframework.org/.

  14. http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about.

  15. http://software.intel.com/en-us/intel-cilk-plus.

  16. http://fenicsproject.org/.

  17. http://www.openfoam.org/.

  18. http://www.boost.org/libs/mpi/.

  19. http://www.mpich.org/.

  20. http://viennacl.sourceforge.net/.

  21. http://pugixml.org/.

  22. http://www.lua.org/.

  23. http://www.boost.org/libs/graph/.

  24. http://glaros.dtc.umn.edu/gkhome/metis/metis/overview.

  25. http://www.hector.ac.uk/.

  26. http://www.dealii.org/.

  27. http://acts.nersc.gov/hypre/.

References

  1. Agrawal K, Leiserson CE et al (2010) Executing task graphs using work-stealing. In: Proceedings of the 24th IEEE international symposium on parallel and distributed processing (IPDPS), pp 1–12

  2. Aldinucci M, Danelutto M et al (2013) FastFlow: high-level and efficient streaming on multi-core. In: Programming multi-core and many-core computing systems, parallel and distributed computing, Wiley

  3. Allan BA, Armstrong RC et al (2002) The CCA core specification in a distributed memory SPMD framework. Concurr Comput 14(5):323–345

    Article  MATH  Google Scholar 

  4. Armstrong R, Gannon D et al (1999) Toward a common component architecture for high-performance scientific computing. In: Proceedings of the 8th IEEE international symposium on high performance distributed computing (HPDC)

  5. Bangerth W, Burstedde C et al (2011) Algorithms and data structures for massively parallel generic adaptive finite element codes. ACM Trans Math Softw 38(2):14:1–14:28

    Article  MathSciNet  Google Scholar 

  6. Bangerth W, Hartmann R et al (2007) deal.II–a general-purpose object-oriented finite element library. ACM Trans Math Softw 33(4):24:1–24:27

    Article  MathSciNet  Google Scholar 

  7. Bassetti F, Brown D et al (1998) Overture: an object-oriented framework for high performance scientific computing. In: Proceedings of the 1998 ACM/IEEE conference on supercomputing, pp 1–9

  8. Bernholdt DE, Allan BA et al (2006) A component architecture for high-performance scientific computing. Int J High Perform Comput Appl 20(2):163–202

    Article  Google Scholar 

  9. Berzins M (2012) Status of release of the Uintah computational framework. Technical Report, Scientific Computing and Imaging Institute, University of Utah

  10. Borkar S, Chien AA (2011) The future of microprocessors. Commun ACM 54(5):67–77

    Article  Google Scholar 

  11. Bosilca G, Bouteiller A et al (2012) DAGuE: A generic distributed DAG engine for high performance computing. Parallel Comput 38(1–2):37–51

    Article  Google Scholar 

  12. Buis S, Piacentini A et al (2006) Palm: a computational framework for assembling high-performance computing applications. Concurr Comput 18(2):231–245

    Article  Google Scholar 

  13. de St. Germain D, McCorquodale J et al (2000) Uintah: a massively parallel problem solving environment. In: Proceedings of the 9th IEEE international symposium on high performance distributed computing (HPDC)

  14. Dinan J, Larkins DB et al (2009) Scalable work stealing. In: Proceedings of the conference on high performance computing networking, storage and analysis (SC), pp 53:1–53:11

  15. Dios A, Asenjo R et al (2011) High-level template for the task-based parallel wavefront pattern. In: Proceedings of the 18th international conference on high performance computing (HiPC), pp 1–10

  16. Dongarra J, van der Steen A (2012) High-performance computing systems. Acta Numerica 21:379–474

    Article  MathSciNet  MATH  Google Scholar 

  17. Dos Reis G, Järvi J (2005) What is generic programming? In: Proceedings of the 1st international workshop on library-centric software design (LCSD)

  18. Goodale T, Allen G et al (2003) The Cactus framework and toolkit. In: High performance computing for computational science–VECPAR 2002, Lecture Notes in Computer Science, vol 2565, pp 197–227

  19. Govindaraju M, Head MR et al (2005) XCAT-C++: design and performance of a distributed cca framework. In: Proceedings of the 12th annual IEEE international conference on high performance computing (HiPC), pp 18–21

  20. Hager G, Wellein G (2010) Introduction to high performance computing for scientists and engineers, CRC Press, Boca Raton, FL

    Book  Google Scholar 

  21. Hill C, DeLuca C et al (2004) The architecture of the earth system modeling framework. Comput Sci Eng 6(1):18–28

    Article  Google Scholar 

  22. Jasak H, Jemcov A et al (2007) OpenFOAM: a C++ library for complex physics simulations. In: Proceedings of the international workshop on coupled methods in numerical dynamics

  23. Keyes D, McInnes LC et al (2011) Multiphysics simulation. Technical Report ANL/MCS-TM-321, Argonne National Laboratory

  24. Kharrat D, Quadri S (2005) Self-registering plug-ins. In: Proceedings of the 18th Canadian conference on electrical and computer engineering (CCECE), pp 1324 –1327

  25. Kwok YK, Ahmad I (1999) Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Comput Surv 31(4)

  26. Lewis MJ, Ferrari AJ et al (2003) Support for extensibility and site autonomy in the Legion grid system object model. J Parallel Distrib Comput 63(5):525–538

    Article  MATH  Google Scholar 

  27. Logg A, Mardal KA et al (2012) Automated solution of differential equations by the finite element method, Lecture Notes in Computational Science and Engineering, Springer

  28. Magoules F (2008) Mesh partitioning techniques and domain decomposition methods, Saxe-Coburg Publications, UK

    Google Scholar 

  29. Miczo A (2003) Digital logic testing and simulation, Wiley, New York

    Book  Google Scholar 

  30. Miller A (2010) The task graph pattern. In: Proceedings of the 2nd workshop on parallel programming patterns (ParaPLoP), pp 8:1–8:7

  31. Philip B, Clarno KT et al (2010) Software design document for the AMP nuclear fuel performance code. Technical Report, Oak Ridge National Laboratory

  32. Quintino T (2008) A component environment for high-performance scientific computing, PhD thesis, Katholieke Universiteit Leuven

  33. Siek JG, Lee LQ et al (2001) The Boost Graph Library. Addison-Wesley Professional, Reading, MA

    Google Scholar 

  34. Stroustrup B (2012) Software development for infrastructure. Computer 45(1):47–58

    Article  Google Scholar 

  35. Weinbub J, Rupp K et al (2012a) A flexible execution framework for high-performance TCAD applications. In: Proceedings of the 17th international conference on simulation of semiconductor processes and devices (SISPAD)

  36. Weinbub J, Rupp K et al (2012b) Towards a free open source process and device simulation framework. In: Proceedings of the 15th international workshop on computational electronics (IWCE)

  37. Wesseling P (2001) Principles of computational fluid dynamics, Springer, Berlin

    Book  Google Scholar 

  38. Zhang K, Damevski K et al (2004) SCIRun2: a CCA framework for high performance computing. In: Proceedings of the 9th international workshop on high-level parallel programming models and supportive environments (HIPS), pp 72–79

Download references

Acknowledgments

This work has been supported by the European Research Council (ERC) through the grant #247056 MOSILSPIN. Additionally, this work has been partially supported by the HPC-EUROPA2 project (project number: 228398) with the support of the European Commission—Capacities Area—Research Infrastructures. This work made use of the facilities of HECToR, the UK’s national high-performance computing service, which is provided by UoE HPCx Ltd at the University of Edinburgh, Cray Inc and NAG Ltd, and funded by the Office of Science and Technology through EPSRC’s High End Computing Programme.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Josef Weinbub.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Weinbub, J., Rupp, K. & Selberherr, S. ViennaX: a parallel plugin execution framework for scientific computing. Engineering with Computers 30, 651–668 (2014). https://doi.org/10.1007/s00366-013-0314-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00366-013-0314-1

Keywords

Navigation