Scientific simulations give rise to complex codes where data size and computation time become very important issues, and sometimes a scientific barrier. Thus, parallelization of scientific simulations becomes a significant work. Many time and human efforts are deployed to produce efficient parallel programs. But still, many simulations could not be parallelized because of lack of time to learn parallel programming or lack of human resources. Therefore, aiding parallelization through abstracted parallelism or implicit parallelism has become a main topic in computer science. Many implicit parallelism solutions have been proposed such as algorithmic skeletons libraries, domain-specific languages or specific libraries. In this paper is introduced a new type of solution to give a totally transparent access to parallel programming for non-computer scientists of the domain of numerical simulations. This solution is an implicit parallelism model, called Structured Implicit Parallelism on scientific Simulations (SIPSim). After a description of the SIPSim model, this paper presents the implementation of the model, as a C++ templated library called SkelGIS, for two different cases of simulations: simulations on Cartesian meshes and simulations of two physical phenomena linked through a network. For each case, the implementation of the SIPSim components are described, and a simple simulation example is given. SkelGIS is then evaluated on two real cases, one for each case, first on the resolution of shallow water equations and second on an arterial blood flow simulation. To clearly state on SkelGIS performance and its ease of programming, different experiments on both cases are evaluated.
THE SIPSIM IMPLICIT PARALLELISM MODEL AND THE SKELGIS LIBRARY
2123The data parallel version of Algorithm 1 is given in the Algorithm 2. This algorithm seems very close to the sequential one; however, it requires the decomposition of the mesh into p parts that are distributed among the available processors. In the time loop, a communication phase is performed so that each processor obtains the whole needed information to perform the new iteration. These communications may be tricky to implement for non-computer scientists.This paper presents an implicit parallelism model that proposes a systematic way to write implicit parallelism solutions for numerical simulations. The model aims at providing efficient parallel programs as the Algorithm 2, while exposing a sequential program as the Algorithm 1. In order to let as much freedom as possible to the programmer, the main time iteration loop as well as the loops on the physical border and the mesh element will not be hidden in the sequential program.
Related workThe implicit parallelism model presented in this paper, and implemented as a library, namely SkelGIS, totally hides parallelization of programs but preserves the programming freedom and the flexibility of a sequential programming style.Different kinds of implicit parallelism solutions can be found in the literature. One of the most recent ...