Skip to content

Add compound datatypes for large integers for MPI_(MIN|MAX)LOC #520

@mahermanns

Description

@mahermanns

Problem

Currently the following predefined compound datatype handles are defined in MPI 4.0 to be used in reductions with the MPI_(MIN|MAX)LOC operator.

MPI_FLOAT_INT
MPI_DOUBLE_INT
MPI_LONG_INT
MPI_2INT
MPI_SHORT_INT
MPI_LONG_DOUBLE_INT

What seems to be missing here are one or more compound types for integers larger than long.

Use Case:

In the performance analysis tool Scalasca, the analysis uses one-sided reductions (i.e., MPI_Accumulate) with the respective operators to determine the minimum/maximum timestamp for a given epoch and the location (i.e., rank) where this occurred.

Currently, the analysis is based on double as the datatype for timestamps and can therefore use MPI_DOUBLE_INT as the datatype. However, plans to move from double to uint64_t would have the problem that such reduction could not be used.

Proposal

Adding compound types for missing common integer values types MPI_UINT64_T_INT and MPI_INT64_T_INT to allow for integer types in those reductions.

Changes to the Text

NOTE PR has hanged for March 2023 Meeting!
https://github.com/mpi-forum/mpi-standard/pull/798

Impact on Implementations

Support for these datatypes in reductions

Impact on Users

Use of MPI_(MIN|MAX)LOC is enabled for commonly used large and fixed-size integers.

References and Pull Requests

Related Issues and PRs

Note: After some discussion in the tools working group, we decided to follow through with the smaller PR#648 for MPI 4.1 and design a value-index type creation routine (including type traits) for MPI 5.0.

Allow compound datatypes created by MPI_Type_create_struct that have a specific info key-value pair (a.k.a 'type trait') set: PR#655

The current proposal suggests the function MPI_Type_get_value_index to retrieve named and unnamed predefined types. PR#798

Metadata

Metadata

Assignees

Labels

[done] mpi-4.1For inclusion in the MPI 4.1 standardchap-collectiveCollective Communication Chapter Committeehad readingCompleted the formal proposal readingpassed final votePassed the final formal votepassed first votePassed the first formal votewg-toolsTools Working Group

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions