- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hey Intel,
I have noticed that IntelMPI is currently missing the following functions:
- MPI_Status_f082f
- MPI_Status_f2f08
- MPI_Status_f082c
- MPI_Status_c2f08
These functions are required for our MPI wrappers, but it appears they are also required by the MPI standard since 3.0. They are required to be avliable in both the C and Fortran workspace:
I was wondering if it was possible to add these functions into IntelMPI?
コピーされたリンク
5 返答(返信)
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
I used Intel MPI 2021.21 to compile on SLES-15.5.
Reproducer:
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char** argv, char** environ)
{
int i;
int my_rank; /* Rank of process */
int p; /* Number of processors */
int source; /* Rank of sender */
int dest; /* Rank of receiver */
int tag = 50; /* Tag for messages */
char message[100]; /* Storage for the message */
MPI_Status status; /* Return status for receive */
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
MPI_Comm_size(MPI_COMM_WORLD, &p);
if (my_rank != 0) /* deliberately mismatch send-recv with 7 procs */
{
sprintf(message, "Greetings from process %d!", my_rank);
printf("sending message from (%d)\n", my_rank);
dest = 0;
/* Use strlen(message)+1 to include '\0' */
MPI_Send(message, strlen(message) + 1, MPI_CHAR, dest, tag, MPI_COMM_WORLD);
} else {
/* my_rank == 0 */
for (source = 1; source < p; source++) {
printf("waiting for message from (%d)\n", source);
MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD, &status);
printf("%s\n", message);
MPI_F08_status f08_status;
MPI_Status_c2f08(&status, &f08_status);
}
}
printf("all done...(%d)\n", my_rank);
return 0;
}For example, if compiled with OpenMPI 5.0.0 this will compile okay but for IntelMPI I would get the following:
$ mpicc -g -O0 -o repro ./repro.c
./repro.c:37:13: error: call to undeclared function 'MPI_Status_c2f08'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
37 | MPI_Status_c2f08(&status, &f08_status);
| ^
./repro.c:37:13: note: did you mean 'MPI_Status_c2f'?
/path/to/intel_installation/2024.1.0/mpi/2021.12/include/mpi.h:1648:5: note: 'MPI_Status_c2f' declared here
1648 | int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status) MPICH_API_PUBLIC;
| ^
1 error generated.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thanks for reporting that, we will likely fix it in the second next release, shipped with the oneAPI 2025.0 release.