Improving performance of parallel OpenMP programs
Speaker: Artur Podobas
Introduced in early 2000, general purpose processors with multiple "cores" have come to exist in all shape and forms in our daily life.
These "multi-core" processors came to existence due to the power- limits of their single counterpart. With transistor dimension shrinking and frequency increasing it was no longer feasible to continue the long trend of improving the traditional, single-core processor.
Programmers were not prepared for this transition. Parallel programming involved performance-throttling side-effects such as load-(im)balance, false-sharing and performance portability, which had to be addressed by the clueless average programmer-- and the vendor-promised performance improvement was not easily gained.
Fortunately, decades of high-performance computing paradigms helping us to simplify the work of programming on a multiprocessing, shared-memory system. One of these paradigms is the task-parallel model, and its most prominent implementation is OpenMP.
In this seminar I will give an overview of the research I performed through my PhD studies with respect to performance in the task-parallel OpenMP model. A short introduction to OpenMP will be given together with existing problems in run-time system, how to exploit heterogeneity and finally the possibility to generate OpenMP-specific accelerators that can be synthesized and placed on FPGAs to increase performance.