Implementing a Component Based Parallel Distributed Finite Element Solver

Parallel computing is becoming more and more important in modern Finite Element Software. As problems grow larger, computation on a single processor may not be fast enough. To overcome this problem, one can utilize parallel programming using e.g SMP-machines or clusters. Furthermore, when local compute resources are scarce, it can be quite convenient to take advantage of non-local resources for performing the calculations. This thesis is a collaboration between the Division of Structural Mechanics, LTH and StruSoft AB in Malm¨o/Budapest. The aim is to address the issues above, specifically looking at the structural analysis program FEM-Design developed by StruSoft. There are several ways to parallelize code, focus will be on OpenMP, PETSc and Intel MKL. These methods have been studied in order to conclude which one is the most suitable for existing Finite Element applications. In the end Intel MKL was chosen and implemented. Regarding the distributed computations, a realistic client/server application was developedusing the Internet Communications Engine (Ice). The parallel properties of the implementation was studied and also, during a visit to the StruSoft Budapest branch, the implementation was integrated into FEM-Design. The results were astonishing, reaching speedups of a factor up to 360 compared to the original solver. Also, the scaling was almost linear for the implemented solver.