Parallel Solvers Using PETSc For Nonlinear Conduction Problems In Higher Dimensions - Rosli, Muhammad Hisyamuddin (Universiti Sains Malaysia, 2018)
The Portable, Extensible, Toolkit for Scientific Computation (PETSc) library package is a popular computational tool among researchers that provides the capability of implementing parallel schemes in solving various kinds of finite element analysis through the use of its many routines and libraries that can be manipulated through runtime options. PETSc, as is claimed, allows a migration of existing scientific code from a sequential structure into a scalable, parallel paradigm structure in a convenient manner. The main focus of this project is to evaluate the parallel performance of finite element code through the use of PETSc. Performance comparisons between different types of parallel solver are also done in this study. Different levels of parallel optimisation are also studied. The test platform consists of an Intel Xeon X5650 processor which has 6 physical cores (12 logical cores) and 24GB RAM and the FEM code is built with GCC compiler version 4.4 and OpenMPI 3.0. The results from this project show a considerably good parallel performance compared to the serial performance. For instance, most of the parallel computation simulations could gain at least 3 times speedup compared to the serial computation. Apart from this, the implementation of build-time optimisation option does not necessarily increase the parallel performance of the code. In this study, the use of different parallel solvers, in this case, the incomplete LU (ILU) and multigrid (MG) solvers, also shows difference in the parallel performance. In brief, this work shows that the performance of the parallel computation is considerably better than serial computation performance. However, there is much room for improvement of the scalability of the parallel computation speedups since the most speedups start to scale poorly when more number of cores used. Moreover, this work hints that some tunings of the compiler should be taken to enhance the optimised versions of the parallel solver.