Parsol
ParSol is a library for semi-automatic parallelisation of data-parallel (especially linear algebra) algorithms. It is written in C++, using such C++ features as OOP, template metaprogramming, operatror overloading and others, so that the usage of the library is simple and intuitive, and the library itself is easily expanded. The library presents user with the set of linear algebra objects (multidimentional arrays, vectors, sparse and dense matrices, among others). The functionality of arrays and vectors is similar to those of such libraries as Blitz++, FreePOOMA, and Boost.MultiArray. Using the library, the programmer creates sequential version of the code (no MPI needed), and debugs it. Once done, the parallel version of the algorithm is created by substituting some header files (to switch from sequential to parallel version), some class names, and adding several lines of code (initialization, topology specification and data exchange). The parallel version should be recompiled using MPI implementation (at least MPI-1.1 support required). The parallelization is done the same way as in HPF. In fact, the library brings to C++ parallelization functionality similar to the one HPF brings to Fortran. However, differently from HPF, ParSol is a library, not a new compiler, with all the pros and cons. Also, in ParSol, the programmer must explicitely specify the computational stencil in order to ensure the optimal data exchange. From the one hand, this was a necessity, because it is hard for the library to analyse arbitrary user code. From the other hand, however, this allows for easy communication costs fine-tuning - the area where HPF failed to meet the expectations. Apart from parallelization, the library objects are fine-tuned for high performance. For example, ParSol arrays performs similar to native C/C++ arrays. Also, the library uses only standard C++ features and MPI-1.1 for parallel version, which makes it highly portable. A comprehensive test suite is also available as a part of library.
Keywords for this software
References in zbMATH (referenced in 20 articles )
Showing results 1 to 20 of 20.
Sorted by year (- Ferreira, V. G.; Kaibara, M. K.; Lima, G. A. B.; Silva, J. M.; Sabatini, M. H.; Mancera, P. F. A.; Mckee, S.: Application of a bounded upwinding scheme to complex fluid dynamics problems (2013)
- Barovik, D.; Taranchuk, V.: Mathematical modelling of running crown forest fires (2010)
- Čiegis, R.; Laukaitytė, I.; Trofimov, V.: Parallel numerical algorithm for simulation of counter propagation of two laser beams (2010)
- Čiegis, R.; Tumanova, N.: Numerical solution of parabolic problems with nonlocal boundary conditions (2010)
- Paulinas, M.; Meilūnas, M.: An algorithm for partitioning of right heart ventricle medial axis (2010)
- Annunziato, M.: A finite difference method for piecewise deterministic processes with memory. II. (2009)
- Čiegis, R.: Numerical solution of hyperbolic heat conduction equation (2009)
- Čiegis, R.; Laukaitytė, Inga; Radziunas, Mindaugas: Numerical algorithms for Schrödinger equation with artificial boundary conditions (2009)
- Jakusšev, Alexander; Čiegis, Raimondas; Laukaitytė, Inga; Trofimov, Vyacheslav: Parallelization of linear algebra algorithms using ParSol library of mathematical objects (2009)
- Laukaitytė, Inga; Čiegis, Raimondas; Lichtner, Mark; Radziunas, Mindaugas: Parallel numerical algorithm for the traveling wave model (2009)
- Annunziato, M.: Analysis of upwind method for piecewise deterministic Markov processes (2008)
- Čiegis, R.; Radziunas, M.; Lichtner, M.: Numerical algorithms for simulation of multisection lasers by using traveling wave model (2008)
- Čiegis, Raim.; Čiegis, Rem.; Jakušev, A.; Šaltenienė, G.: Parallel variational iterative linear solvers (2007)
- Jakušev, A.: Application of template metaprogramming technologies to improve the efficiency of parallel arrays (2007)
- Sapagovas, M.; Kairytė, G.; Štikonienė, O.; Štikonas, A.: Alternating direction method for a two-dimensional parabolic equation with a nonlocal boundary condition (2007)
- Čiegis, Raimondas: Parallel numerical algorithms for 3D parabolic problem with nonlocal boundary condition (2006)
- Čiegis, Raimondas: Parallel LOD scheme for 3D parabolic problem with nonlocal boundary condition (2006) ioport
- Čiegis, Raimondas; Jakušev, Alexander; Starikovičius, Vadimas: Parallel tool for solution of multiphase flow problems (2006) ioport
- Starikovičius, V.; Čiegis, R.; Jakušev, A.: Analysis of upwind and high-resolution schemes for solving convection dominated problems in porous media (2006)
- Čiegis, R.; Jakušev, A.; Krylovas, A.; Suboč, O.: Parallel algorithms for solution of nonlinear diffusion problems in image smoothing (2005)