Simplifying non-contiguous data transfer with MPI for Python']Python

被引:1
|
作者
Noelp, Klaus [1 ]
Oden, Lena [1 ]
机构
[1] Fernuniv, Tech Comp Sci, Hagen, Germany
来源
JOURNAL OF SUPERCOMPUTING | 2023年 / 79卷 / 17期
关键词
mpi4py; Strided memory; Derived datatypes; High-performance computing; Parallel programming;
D O I
10.1007/s11227-023-05398-7
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Python is becoming increasingly popular in scientific computing. The package MPI for Python (mpi4py) allows writing efficient parallel programs that scale across multiple nodes. However, it does not support non-contiguous data via slices, which is a well-known feature of NumPy. In this work, we therefore evaluate several methods to support the direct transfer of non-contiguous arrays in mpi4py. This significantly simplifies the code, while the performance basically stays the same. In a PingPong-, Stencil- and Lattice-Boltzmann-Benchmark, we compare the common manual copying, a NumPy-Copy design and a design that is based on MPI derived datatypes. In one case, the MPI derived datatype design could achieve a speedup of 15% in a Stencil-Benchmark on four compute nodes. Our designs are superior to naive manual copies, but for maximum performance manual copies with pre-allocated buffers or MPI persistent communication will be a better choice.
引用
收藏
页码:20019 / 20040
页数:22
相关论文
共 50 条
  • [31] naplib-python']python: Neural acoustic data processing and analysis tools in python']python
    Mischler, Gavin
    Raghavan, Vinay
    Keshishian, Menoua
    Mesgarani, Nima
    SOFTWARE IMPACTS, 2023, 17
  • [32] Python']PythonFOAM: In-situ data analyses with OpenFOAM and Python']Python
    Maulik, Romit
    Fytanidis, Dimitrios K.
    Lusch, Bethany
    Vishwanath, Venkatram
    Patel, Saumil
    JOURNAL OF COMPUTATIONAL SCIENCE, 2022, 62
  • [33] Stimfit: quantifying electrophysiological data with Python']Python
    Guzman, Segundo J.
    Schlogl, Alois
    Schmidt-Hieber, Christoph
    FRONTIERS IN NEUROINFORMATICS, 2014, 8
  • [34] Geophysical data analysis using Python']Python
    Sáenz, J
    Zubillaga, J
    Fernández, J
    COMPUTERS & GEOSCIENCES, 2002, 28 (04) : 457 - 465
  • [35] Python']Python and R for the Modern Data Scientist
    Lortie, Christopher J.
    JOURNAL OF STATISTICAL SOFTWARE, 2022, 103 (BR2): : 1 - 4
  • [36] Tasrif: processing wearable data in Python']Python
    Al Homaid, Abdulaziz
    Hashim, Syed
    Abubaker, Fadhil
    Abbas, Ummar
    Farooq, Faisal
    Palotti, Joao
    2022 IEEE INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING AND COMMUNICATIONS WORKSHOPS AND OTHER AFFILIATED EVENTS (PERCOM WORKSHOPS), 2022,
  • [37] Python']Python shared atomic data types
    Ren, Xiquan
    SOFTWARE-PRACTICE & EXPERIENCE, 2023, 53 (12): : 2393 - 2407
  • [38] Python']Python Scripting for CIAO Data Analysis
    Galle, Elizabeth C.
    Anderson, Craig S.
    Bonaventura, Nina R.
    Burke, D. J.
    Fruscione, Antonella
    Lee, Nicholas P.
    McDowell, Jonathan C.
    ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS XX, 2011, 442 : 131 - 134
  • [39] Orange: Data Mining Toolbox in Python']Python
    Demsar, Janez
    Curk, Tomaz
    Erjavec, Ales
    Gorup, Crt
    Hocevar, Tomaz
    Milutinovic, Mitar
    Mozina, Martin
    Polajnar, Matija
    Toplak, Marko
    Staric, Anze
    Stajdohar, Miha
    Umek, Lan
    Zagar, Lan
    Zbontar, Jure
    Zitnik, Marinka
    Zupan, Blaz
    JOURNAL OF MACHINE LEARNING RESEARCH, 2013, 14 : 2349 - 2353
  • [40] Data Functionalization for Gas Chromatography in Python']Python
    Green, Michael
    Chen, Xiaobo
    JOURNAL OF CHEMICAL EDUCATION, 2020, 97 (04) : 1172 - 1175