PyExaFMM: An Exercise in Designing High-Performance Software With Python and Numba

PyExaFMM: An Exercise in Designing High-Performance Software With Python and Numba
复制标题

PyExaFMM:使用 Python 和 Numba 设计高性能软件的练习

DOI:
10.1109/mcse.2023.3258288
复制
发表时间:
2022
影响因子:
2.1
通讯作者:
Kailasa S
Kailasa S
中科院分区:
计算机科学4区
文献类型:
--
作者:
Kailasa S

文献摘要

参考文献

相似文献

Numba是一个改变游戏规则的编译器,用于使用Python进行高性能计算。它生成在单线程Python解释器之外运行的机器代码,并充分利用现代CPU的资源。这意味着支持并行多线程和自动向量化(如果可用),就像C++或Fortran等编译语言一样。在本文中,我们记录了我们开发PyExaFMM的经验,PyExaFMM是快速多极子方法的多线程Numba实现,是一种具有非线性数据结构和大量数据组织的算法。我们发现,为复杂算法设计高性能的Numba代码可能与用编译语言编写代码一样具有挑战性。
Numba is a game-changing compiler for high-performance computing with Python. It produces machine code that runs outside of the single-threaded Python interpreter, and that fully utilizes the resources of modern CPUs. This means support for parallel multithreading and auto-vectorization if available, as with compiled languages such as C++ or Fortran. In this article, we document our experience developing PyExaFMM, a multithreaded Numba implementation of the fast multipole method, an algorithm with a nonlinear data structure and a large amount of data organization. We find that designing performant Numba code for complex algorithms can be as challenging as writing in a compiled language.
ExaFMM:具有 C 和 Python 接口的高性能快速多极方法库
DOI: --
发表时间: 2021
影响因子: --
作者:
Tingyu Wang;Rio Yokota;L. Barba
通讯作者: L. Barba