Luc*_*ean 1 c mpi dynamic-memory-allocation
我正在学习在 C 中使用 MPI 进行编程,但当其中一个进程调用 MPI_Abort 时,我没有设法从 MPI 通信器/组中的所有进程中找到动态分配的内存(malloc/calloc)会发生什么。
不释放动态分配的内存会导致故障/不可预测的行为?这是否被视为泄漏?
MPI_Abort()类似于exit():
此例程进行“最佳尝试”以中止 组中的所有任务
comm。此函数不要求调用环境对错误代码采取任何操作。但是,Unix 或 POSIX 环境应将此作为主程序的返回错误代码进行处理。
在中止进程有效的情况下,这些进程持有的任何动态分配的内存都将释放回操作系统。动态分配不会在进程终止后继续存在。所以,
不释放动态分配的内存会导致故障/不可预测的行为?
在某种程度上。
这是否被视为泄漏?
不存在malloc()ed 或calloc()ed 操作导致的 ed 内存泄漏MPI_Abort()。内存泄漏仅与继续运行的进程相关。