- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
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?
Link copiado
5 Respostas
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
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.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Thanks for reporting that, we will likely fix it in the second next release, shipped with the oneAPI 2025.0 release.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado

Responder
Opções do tópico
- Subscrever fonte RSS
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico para o utilizador atual
- Marcador
- Subscrever
- Página amigável para impressora