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 条
  • [21] NICI Python']Python Data Reduction
    Zarate, Nelson
    Artigua, Etienne
    Hartung, Markus
    Labrie, Kathleen
    ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS XIX, 2010, 434 : 481 - +
  • [22] Introduction to data science with Python']Python
    Monteiro, M.
    EUROPEAN JOURNAL OF CLINICAL INVESTIGATION, 2021, 51 : 14 - 14
  • [23] Modules to teach parallel and distributed computing using MPI for Python']Python and Disco
    Ortiz-Ubarri, Jose
    Arce-Nazario, Rafael
    Orozco, Edusmildo
    2016 IEEE 30TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW), 2016, : 958 - 962
  • [24] Geographic Data Science With Python']Python
    Podgorski, Krzysztof
    INTERNATIONAL STATISTICAL REVIEW, 2024, 92 (01) : 134 - 135
  • [25] Foundations of Data Science with Python']Python
    Wang, Qing
    AMERICAN STATISTICIAN, 2025,
  • [26] Compiler Optimizations for Non-contiguous Remote Data Movement
    Schneider, Timo
    Gerstenberger, Robert
    Hoefler, Torsten
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2013, 2014, 8664 : 307 - 321
  • [27] Data Engineering for HPC with Python']Python
    Abeykoon, Vibhatha
    Perera, Niranda
    Widanage, Chathura
    Kamburugamuve, Supun
    Kanewalat, Thejaka Amila
    Maithree, Hasara
    Wickramasinghe, Pulasthi
    Uyar, Ahmet
    Fox, Geoffrey
    PROCEEDINGS OF PYHPC 2020: 2020 IEEE/ACM 9TH WORKSHOP ON PYTHON FOR HIGH-PERFORMANCE AND SCIENTIFIC COMPUTING (PYHPC), 2020, : 13 - 21
  • [28] Evaluating the Viability of LogGP for Modeling MPI Performance with Non-contiguous Datatypes on Modern Architectures
    Bacon, Nicholas
    Bridges, Patrick G.
    Levy, Scott
    Ferreira, Kurt
    Bienz, Amanda
    PROCEEDINGS OF THE 2023 30TH EUROPEAN MPI USERS' GROUP MEETING, EUROMPL 2023, 2023,
  • [29] On contiguous and non-contiguous parallel task scheduling
    Bladek, Iwo
    Drozdowski, Maciej
    Guinand, Frederic
    Schepler, Xavier
    JOURNAL OF SCHEDULING, 2015, 18 (05) : 487 - 495
  • [30] On contiguous and non-contiguous parallel task scheduling
    Iwo Błądek
    Maciej Drozdowski
    Frédéric Guinand
    Xavier Schepler
    Journal of Scheduling, 2015, 18 : 487 - 495