Speaker
Abstract content <br> (Max 300 words)<br><a href="http://events.saip.org.za/getFile.py/access?resId=0&materialId=0&confId=34" target="_blank">Formatting &<br>Special chars</a>
Efficient implementation of numerical methods is one of the most important aspects of computational physics. Especially simulations that are computationally expensive or run for a long time benefit from the use of modern HPC systems. To fully exploit the potential of these systems, parallelization of the code is necessary. Developing a parallel code, however, is usually a difficult task for the developer.
The partitioned global address space (PGAS) approach is a programming model that promises to simplify the process of parallel programming as compared to the widely used MPI model.
In this study we have used unified parallel C (UPC), an extension to the C programming language that implements the PGAS paradigm, to evaluate the ease of development as well as the efficiency of this programming model for two different case studies representative for a wide variety of problems commonly found in computational physics applications:
On the one hand, we implemented a Godunov solver for the two dimensional Euler equations of gas dynamics. This case is a compute bound problem due to the Riemann solver needed to compute the flux at the cell interfaces but employs a fairly straight forward data structure.
On the other hand, we have investigated a sparse matrix vector multiplication (SPMV) problem resulting from solving the diffusion equation using cell-centered finite volumes. This problem uses a highly irregular mesh in order to allow for the simulation of complicated structures (e.g., the human heart). This case is memory bound and uses a non-trivial data structure.