Using infiniband hardware gather-scatter capabilities to optimize MPI all-to-all

Ana Gainaru, Richard L. Graham, Artem Polyakov, Gilad Shainer

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

10 Scopus citations

Abstract

The MPI all-to-all algorithm is a data intensive, high-cost collective algorithm used by many scientific High Performance Computing applications. Optimizations for small data exchange use aggregation techniques, such as the Bruck algorithm, to minimize the number of messages sent, and minimize overall operation latency. This paper presents three variants of the Bruck algorithm, which differ in the way data is laid out in memory at intermediate steps of the algorithm. Mellanox's InfiniBand support for Host Channel Adapter (HCA) hardware scatter/gather is used selectively to replace CPU-based buffer packing and unpacking. Using this offload capability reduces the eight and sixteen byte all-to-all latency on 1024 MPI Processes by 9.7% and 9.1%, respectively. The optimization accounts for a decrease in the total memory handling time of 40.6% and 57.9%, respectively.

Original languageEnglish
Title of host publicationProceedings of the 23rd European MPI Users' Group Meeting, EuroMPI 2016
PublisherAssociation for Computing Machinery
Pages167-179
Number of pages13
ISBN (Electronic)9781450342346
DOIs
StatePublished - Sep 25 2016
Externally publishedYes
Event23rd European MPI Users' Group Meeting, EuroMPI 2016 - Edinburgh, United Kingdom
Duration: Sep 25 2016Sep 28 2016

Publication series

NameACM International Conference Proceeding Series
Volume25-28-September-2016

Conference

Conference23rd European MPI Users' Group Meeting, EuroMPI 2016
Country/TerritoryUnited Kingdom
CityEdinburgh
Period09/25/1609/28/16

Keywords

  • All-to-all
  • Collective communication
  • MPI
  • Network offload

Fingerprint

Dive into the research topics of 'Using infiniband hardware gather-scatter capabilities to optimize MPI all-to-all'. Together they form a unique fingerprint.

Cite this