Как написать библиотеку MPI для профилирования - PullRequest
0 голосов
/ 12 марта 2019

Я хочу, скажем, написать строку перед всеми вызовами MPI_Sends, вызываемыми в программе, написанной на C. Для этого я хочу написать библиотеку профилирования.Я написал этот код в mylib.c

#include <stdio.h>
#include <mpi.h>

int MPI_Send(void *buf, int count, MPI_Datatype type, int to, int tag, MPI_Comm comm)
{
    printf("Some string");
    return PMPI_Send(buf, count, type, to, tag, comm);
}

Если я запускаю mpicc -fPIC mylib.c -o mylib.o, я получаю сообщение об ошибке - error: conflicting types for ‘MPI_Send’ Как правильно написать этот код и как мне скомпилировать и связать его с моей программой mpi

1 Ответ

1 голос
/ 12 марта 2019

Вам необходимо объявить вашу функцию с такой подписью:

int MPI_Send(const void* buf, int count, MPI_Datatype type, 
             int to, int tag, MPI_Comm comm) { ... }

Первый параметр - const.void* != const void*.Это то, что вам не хватает.Проверьте здесь, например: https://www.mpich.org/static/docs/latest/www3/MPI_Send.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...