繁体   English   中英

MPI_Free_mem使用OpenMPI失败,出现分段错误

[英]MPI_Free_mem fails with a segmentation fault using OpenMPI

我在Intel Ubuntu系统上将OpenMPI与Intel C ++编译器一起使用。 每当我尝试分别用MPI_Alloc_memMPI_Free_mem调用替换new[]delete[]调用时,总是会遇到分段错误。

MPI_Alloc_mem调用返回MPI_SUCCESS 在调用MPI_Free_mem时发生分段错误。 MPI_Alloc_mem调用带有MPI_INFO_NULL 我分别在MPI_Alloc_memMPI_Free_mem显式转换了void**void*参数。

我不知道为什么会这样。 我将不胜感激任何建议。

首先,除非您要使用MPI-2单面通信,否则绝对不需要用MPI调用替换C ++内存管理运算符。

其次,在C / C ++中MPI_ALLOC_MEMMPI_FREE_MEM的正确用法如下:

int *arr;

MPI_Alloc_mem(sizeof(int)*1000, MPI_INFO_NULL, &arr); // <-- here arr by address
...
MPI_Free_mem(arr);                                    // <-- here arr by value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM