Adios2: Docs: MPI Standard

Created on 15 May 2019  路  3Comments  路  Source: ornladios/ADIOS2

Just because I didn't find it in the docs: what's the minimum MPI standard/API interface you expect? MPI 2.3+?

I was recently installing against OpenMPI 1.6.5 on a legacy CI script (MPI 2.1 on Ubuntu "Trusty") and just saw it didn't pass

adios2/engine/insitumpi/InSituMPIReader.cpp:456:9:
error: no matching function for call to 'MPI_Isend'
note: candidate function not viable: no known conversion from 'const char *' to 'void *' for 1st argument OMPI_DECLSPEC  int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, ...

Of course, there is no reason to support such ancient MPI's but we might want to document and enforce this check within CMake.

enhancement

All 3 comments

Hi @ax3l thanks for the suggestion. This is related to #1354 and a bug in older MPI implementations (Ubuntu 14) not meeting the standard. Let us find out more how far back this goes and agree on how to proceed. Thanks!

@ax3l
v1.7 should be the minimum:
const void* : https://www.open-mpi.org/doc/v1.7/man3/MPI_Isend.3.php
void* : https://www.open-mpi.org/doc/v1.6/man3/MPI_Isend.3.php

Will take a look if cmake can do this check as you suggested. Thanks!

Otherwise there is a public C define in mpi.h which one can check, maybe as a cmake test.

Was this page helpful?
0 / 5 - 0 ratings