MPI_Abort 和动态分配的内存

MPI_Abort and dynamically allocated memory

我正在学习用 C 语言在 MPI 中编程,但我没能找到来自 MPI communicator/group 的所有进程中动态分配的内存 (malloc/calloc) 发生了什么,当以下情况之一发生时进程调用 MPI_Abort.

不释放动态分配的内存会导致 malfunctions/unpredictable 行为?这是否被视为泄漏?

MPI_Abort() 类似于 exit():

This routine makes a "best attempt" to abort all tasks in the group of comm. This function does not require that the invoking environment take any action with the error code. However, a Unix or POSIX environment should handle this as a return errorcode from the main program.

(MPI 3.1 specification)

在有效中止进程的情况下,这些进程持有的任何动态分配的内存都会释放回 OS。动态分配不会在进程终止后继续存在。所以,

Not freeing the dynamically allocated memory can cause malfunctions/unpredictable behaviors?

在某种程度上。

Is this considered as a leak?

malloc()ed 或 calloc()ed 的内存没有因 MPI_Abort() 的操作而泄漏。内存泄漏仅在继续 运行.

的进程上下文中相关