Legate NumPy: accelerated and distributed array computing

Legate NumPy: accelerated and distributed array computing
复制标题

DOI:
10.1145/3295500.3356175
复制
发表时间:
2019-11
期刊:
Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis
影响因子:
--
通讯作者:
Michael A. Bauer;M. Garland
Michael A. Bauer;M. Garland
中科院分区:
其他
文献类型:
--
作者:
Michael A. Bauer;M. Garland

文献摘要

被引文献

相似文献

Numpy是一个流行的Python库,用于执行基于阵列的数值计算。大多数程序员使用的Numpy的规范实现在单个CPU核心上运行,并同时使用多个内核进行某些操作。仅限制单个节点CPU的执行限制了可以处理的数据大小和Numpy代码的潜在速度。在这项工作中,我们介绍了Legate,这是Numpy的置换式替代品,它仅需要单行代码更改,并且可以扩展到任意数量的GPU加速节点。 Legate通过将Numpy程序转换为Legion编程模型,然后利用Legion Runtime System的可扩展性来在任意尺寸的机器上分配数据和计算。与Python的分布式Dask阵列库中编写的类似程序相比,Legate在1280 CPU上的加速度最高为10倍,在256 GPU上达到了100倍的速度。
NumPy is a popular Python library used for performing array-based numerical computations. The canonical implementation of NumPy used by most programmers runs on a single CPU core and is parallelized to use multiple cores for some operations. This restriction to a single-node CPU-only execution limits both the size of data that can be handled and the potential speed of NumPy code. In this work we introduce Legate, a drop-in replacement for NumPy that requires only a single-line code change and can scale up to an arbitrary number of GPU accelerated nodes. Legate works by translating NumPy programs to the Legion programming model and then leverages the scalability of the Legion runtime system to distribute data and computations across an arbitrary sized machine. Compared to similar programs written in the distributed Dask array library in Python, Legate achieves speed-ups of up to 10X on 1280 CPUs and 100X on 256 GPUs.