Close

Presentation

PyOMP: Parallel Programming in Python with OpenMP
DescriptionPeople know Python. In many cases, it is their primary programming language. When they move to HPC, however, they have to translate everything into a low-level language such as C. This creates a barrier of entry to HPC. Wouldn’t it be nice if people could “keep everything in Python”?
In this tutorial we present a system for parallel programming in Python. We use OpenMP directives (identical to those used in C/Fortran) expressed as strings inside Python with statements coupled to the Numba JIT compiler. Numba drops us into LLVM with built-in OpenMP support, resulting in performance on par with that from C/OpenMP. We call our system PyOMP.
In this tutorial we present PyOMP for both the CPU and the GPU. We describe how to install PyOMP on a system and walk through the core design patterns from HPC. We run the tutorial in an interactive “demo-mode” as we write PyOMP programs together. Then, we will explore how our PyOMP programs map onto other well-known approaches to parallel programming in Python. By looking at how core patterns in PyOMP move between different programming models, we learn a great deal about those different programming models and greatly deepen our understanding of PyOMP.
Event Type
Tutorial
TimeSunday, 17 November 20241:30pm - 5pm EST
LocationB209
Tags
Applications and Application Frameworks
Parallel Programming Methods, Models, Languages and Environments
Registration Categories
TUT