Я пишу код, использующий MPI, и я продолжал замечать некоторые утечки памяти при запуске его с valgrind. Пытаясь определить, где проблема была в том, что я получил этот простой (и совершенно бесполезный) main:
#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 блоках
I d Не понимаю, почему происходят эти утечки. Может быть, я просто не могу прочитать вывод valgrind или правильно использовать инициализацию / финализацию MPI ...
Я использую OMPI 1.4.1-3 под ubuntu на 64-битной архитектуре, если это может помочь.
Спасибо за уделенное время!