High-Productivity Parallelism with Python Plus Packages (but without a Cluster)

dc.contributor.authorBartlett, John
dc.contributor.authorStorti, Duane
dc.contributor.authorChris, Uchytil
dc.date.accessioned2021-05-19T20:42:26Z
dc.date.available2021-05-19T20:42:26Z
dc.date.issued2021
dc.description.abstractWe present two computing projects, peridynamics simulation and numerical integration on implicit domains, for which we realized high performance implementations using Python with appropriate packages. The problems are sufficiently compute-intensive that a straightforward serial implementation is prohibitively slow. While conventional wisdom suggests moving such problems onto a computing cluster, we very directly produced high-performance parallel implementations that effectively perform the computing tasks on a single GPU. For the peridynamics application, the only package needed in addition to Numpy is Numba whose just-in-time compiler allows us to write kernel functions in Python and compile them to run in parallel on a CUDA-enabled GPU. Our approach to numerical integration on implicit domains invokes two additional packages to support interval arithmetic and dynamic parallelism to enable tree-structured recursive refinement. Use of Python (with only kernels requiring dynamic parallelism written in C) enabled rapid development of concise code that successfully achieves significant performance enhancement.en_US
dc.identifier.urihttp://hdl.handle.net/1773/46935
dc.language.isoen_USen_US
dc.subjectParallel Computingen_US
dc.subjectGPUen_US
dc.subjectPythonen_US
dc.titleHigh-Productivity Parallelism with Python Plus Packages (but without a Cluster)en_US
dc.typeArticleen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
CISESI-2021-04-0032.R1_Storti.pdf
Size:
2.16 MB
Format:
Adobe Portable Document Format
Description:
Main Article

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.6 KB
Format:
Item-specific license agreed upon to submission
Description: