Я пишу некоторый код, который использует MPI, и я продолжал замечать некоторые утечки памяти при запуске его с valgrind. Пытаясь определить, где была проблема, я закончил с этой простой (и совершенно бесполезной) основной:
#include "/usr/include/mpi/mpi.h"
int main(int argc,char** argv)
{
MPI_Init(&argc, &argv);
MPI_Finalize();
return 0;
}
Как видите, этот код ничего не делает и не должен создавать никаких проблем. Однако, когда я запускаю код с помощью valgrind (как в последовательном, так и в параллельном случае), я получаю следующую сводку:
== 28271 == РЕЗЮМЕ КАРТЫ:
== 28271 == используется на выходе: 190 826 байт в 2745 блоках
== 28271 == общее использование кучи: 11 214 распределений, 8 469 освобождений, 16 487 977 байт
== 28271 ==
== 28271 == РЕЗЮМЕ УТЕЧКИ:
== 28271 == определенно потеряно: 5,950 байт в 55 блоках
== 28271 == косвенно потеряно: 3562 байта в 32 блоках
== 28271 == возможно потеряно: 0 байтов в 0 блоках
== 28271 == все еще достижимо: 181 314 байт в 2658 блоках
== 28271 == подавлено: 0 байтов в 0 блоках
Я не понимаю, почему происходят эти утечки. Возможно, я просто не могу прочитать вывод valgrind или правильно использовать инициализацию / финализацию MPI ...
Я использую OMPI 1.4.1-3 под Ubuntu на 64-битной архитектуре, если это может помочь.
Большое спасибо за ваше время!