arrow
Return

mpi4py.futures: MPI-Based Asynchronous Task Execution for Python

delete2023-02-01
delete5
delete
OA
AI
M
Marcin Rogowski *
D
David E. Keyes
L
Lisandro Dalcín
DOI:10.1109/TPDS.2022.3225481delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
We present mpi4py.futures, a lightweight, asynchronous task execution framework targeting the Python programming language and using the Message Passing Interface (MPI) for interprocess communication. mpi4py.futures follows the interface of the concurrent.futures package from the Python standard library and can be used as its drop-in replacement, while allowing applications to scale over multiple compute nodes. We discuss the design, implementation, and feature set of mpi4py.futures and compare its performance to other solutions on both shared and distributed memory architectures. On a shared-memory system, we show mpi4py.futures to consistently outperform Python's concurrent.futures with speedup ratios between 1.4X and 3.7X in throughput (tasks per second) and between 1.9X and 2.9X in bandwidth. On a Cray XC40 system, we compare mpi4py.futures to Dask - a well-known Python parallel computing package. Although we note more varied results, we show mpi4py.futures to outperform Dask in most scenarios.
Keywords:
MPI
Python
parallelism
master-worker
parallel programming models
distributed computing
high performance computing
task execution
multiprocessing

Journal

IEEE Transactions on Parallel and Distributed Systems cover
IEEE Transactions on Parallel and Distributed Systems
IF:
6
Papers:
5.2K
Citations:
1.1W

Organization

K
king abdullah university of science & technology
Scholars:
1.3W
Papers: 1.3W
Citations: 32