## Parsol

swMATH ID: | 684 |

Software Authors: | Jakusšev, Alexander; Čiegis, Raimondas; Laukaitytė, Inga; Trofimov, Vyacheslav |

Description: | 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. |

Homepage: | http://techmat.vgtu.lt/~alexj/ParSol/ |

Programming Languages: | C++ |

Related Software: | PETSc; BALaser; Diffpack; ParaView; MITK; FREEFLOW; CLAWPACK; PFQ; Global Arrays; EXPDE |

Cited in: | 19 Publications |

all
top 5

### Cited by 33 Authors

### Cited in 5 Serials

11 | Mathematical Modelling and Analysis |

2 | Numerical Functional Analysis and Optimization |

1 | Mathematical and Computer Modelling |

1 | Informatica (Vilnius) |

1 | Computational Methods in Applied Mathematics |

all
top 5