Simplifying non-contiguous data transfer with MPI for Python.

Saved in:
Bibliographic Details
Title: Simplifying non-contiguous data transfer with MPI for Python.
Authors: Nölp, Klaus1 (AUTHOR) klaus.noelp@fernuni-hagen.de, Oden, Lena1 (AUTHOR) lena.oden@fernuni-hagen.de
Source: Journal of Supercomputing. Nov2023, Vol. 79 Issue 17, p20019-20040. 22p.
Subjects: Pythons, Scientific computing, Parallel programming
Abstract: 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. [ABSTRACT FROM AUTHOR]
Copyright of Journal of Supercomputing is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 172445267
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Simplifying non-contiguous data transfer with MPI for Python.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Nölp%2C+Klaus%22">Nölp, Klaus</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> klaus.noelp@fernuni-hagen.de</i><br /><searchLink fieldCode="AR" term="%22Oden%2C+Lena%22">Oden, Lena</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> lena.oden@fernuni-hagen.de</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Journal+of+Supercomputing%22">Journal of Supercomputing</searchLink>. Nov2023, Vol. 79 Issue 17, p20019-20040. 22p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Pythons%22">Pythons</searchLink><br /><searchLink fieldCode="DE" term="%22Scientific+computing%22">Scientific computing</searchLink><br /><searchLink fieldCode="DE" term="%22Parallel+programming%22">Parallel programming</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: 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. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Journal of Supercomputing is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=172445267
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1007/s11227-023-05398-7
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 22
        StartPage: 20019
    Subjects:
      – SubjectFull: Pythons
        Type: general
      – SubjectFull: Scientific computing
        Type: general
      – SubjectFull: Parallel programming
        Type: general
    Titles:
      – TitleFull: Simplifying non-contiguous data transfer with MPI for Python.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Nölp, Klaus
      – PersonEntity:
          Name:
            NameFull: Oden, Lena
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 15
              M: 11
              Text: Nov2023
              Type: published
              Y: 2023
          Identifiers:
            – Type: issn-print
              Value: 09208542
          Numbering:
            – Type: volume
              Value: 79
            – Type: issue
              Value: 17
          Titles:
            – TitleFull: Journal of Supercomputing
              Type: main
ResultId 1