gpt4 book ai didi

memory-leaks - MPI 内存泄漏

转载 作者:行者123 更新时间:2023-12-02 17:49:16 26 4
gpt4 key购买 nike

我正在编写一些使用 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== HEAP SUMMARY:

==28271== in use at exit: 190,826 bytes in 2,745 blocks

==28271== total heap usage: 11,214 allocs, 8,469 frees, 16,487,977 bytes allocated

==28271==

==28271== LEAK SUMMARY:

==28271== definitely lost: 5,950 bytes in 55 blocks

==28271== indirectly lost: 3,562 bytes in 32 blocks

==28271== possibly lost: 0 bytes in 0 blocks

==28271== still reachable: 181,314 bytes in 2,658 blocks

==28271== suppressed: 0 bytes in 0 blocks

我不明白为什么会出现这些泄漏。也许只是我无法读取 valgrind 输出或正确使用 MPI 初始化/终结...

我正在 64 位架构的 ubuntu 下使用 OMPI 1.4.1-3,如果这有帮助的话。

非常感谢您的宝贵时间!

最佳答案

你没有做错任何事。 valgrind 的 Memcheck 误报很常见,您能做的最好的就是抑制它们。

This page该手册的内容更多地讨论了这些误报。接近尾声的一句话:

The wrappers should reduce Memcheck's false-error rate on MPI applications. Because the wrapping is done at the MPI interface, there will still potentially be a large number of errors reported in the MPI implementation below the interface. The best you can do is try to suppress them.

关于memory-leaks - MPI 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8471773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com