Simplifying non-contiguous data transfer with MPI for Python.
Saved in:
| 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.
Login for full access.
|
|
| 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 |