{"id":29572,"date":"2024-12-01T15:19:52","date_gmt":"2024-12-01T13:19:52","guid":{"rendered":"https:\/\/hgpu.org\/?p=29572"},"modified":"2024-12-01T15:19:52","modified_gmt":"2024-12-01T13:19:52","slug":"pyomp-parallel-programming-for-cpus-and-gpus-with-openmp-and-python","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=29572","title":{"rendered":"PyOMP: Parallel programming for CPUs and GPUs with OpenMP and Python"},"content":{"rendered":"<p>Python is the most popular programming language. OpenMP is the most popular parallel programming API. Projecting OpenMP into Python will help expand the HPC community. We call our Python-based OpenMP system PyOMP. In this short paper we describe PyOMP and its use for parallel programming for CPUs and GPUs. We describe its implementation through the well known Numba just-in-time (JIT) compiler and how to install PyOMP on your own systems. We provide some performance results suggesting performance on par with that from C and OpenMP, but our focus here is not detailed benchmarking. We leave that to other papers. Our goal here is to show how to use PyOMP so we can grow the PyOMP community.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python is the most popular programming language. OpenMP is the most popular parallel programming API. Projecting OpenMP into Python will help expand the HPC community. We call our Python-based OpenMP system PyOMP. In this short paper we describe PyOMP and its use for parallel programming for CPUs and GPUs. We describe its implementation through the [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,3],"tags":[451,1782,20,2066,252,176,513],"class_list":["post-29572","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-paper","tag-benchmarking","tag-computer-science","tag-nvidia","tag-nvidia-a100","tag-openmp","tag-package","tag-python"],"views":1627,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/29572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=29572"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/29572\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}