Project reference: 1801
The parallel solution of PDEs using numerical methods for unstructured meshes is based on the partitioning of the mesh. All operations, like algebraic system assembly and solution are then performed in parallel, and communications are essentially present in this second step. However, the partitioning is not necessarily adapted to both operations, in terms of load balance and communications. The present project proposes an adapted multi-partitioning where two different partitions are generated, one for the algebraic system assembly and one for the algebraic system solution through iterative solvers. The matrix assembled in the first step is communicated to the partitions dealing with the solution which, at its turn, provides the system solution. The programming strategy proposed is based on a code coupling, each instance dealing with one of the two steps. In our case, a single code – Alya, will be considered. The methodology will be benchmarked in the numerical and HPC contexts.
Coupling of algebraic system assembly and algebraic system solution through an adaptive multi-partitioning technique.
Project Mentor: Guillaume Houzeaux
Project Co-mentor: Ricard Borrell
Site Co-ordinator: Maria-Ribera Sancho
Parallel programming with MPI, OpenMP, Dynamic Load balance techniques, performance analysis, as well as basics on the finite element method and iterative solvers, and for sure, team work!
Student Prerequisites (compulsory):
Programming, numerical methods, team work, benchmarking, performance analysis.
- Week 1:Introduction to MPI, OpenMP, finite element and iterative solvers with Alya team. Training with Paraver.
- Week 2: Introduction to Alya and definition of benchmarks.
- Week 3-8: Testing of the methodology and performance analysis.
- Week 8: Report
Final Product Description:
A novel technique adapted to the different steps of general PDEs solvers by means of a multi-partitioning technique. A testing of the viability of such technique using code coupling.
Adapting the Project: Increasing the Difficulty
A priori, all the algorithms will be coded. However, scheduling strategies could be added to reduce the communication time; dynamic load balance can be further implemented in more kernels.
Adapting the Project: Decreasing the Difficulty
Reducing the size of the problem, or focussing on less benchmarks.
Documentation of Alya. MPI, OpenMP documentations. Introduction to the finite element method and iterative solvers.
Barcelona Supercomputing Centre