提问人:nicku 提问时间:12/1/2022 更新时间:12/1/2022 访问量:25
动态分配空间导致 MPI 程序出错
Dynamically allocating space causing error in MPI program
问:
这里有一个 MPI 程序来计算两个矩阵的乘积: https://gist.githubusercontent.com/kmkurn/39ca673bb37946055b38/raw/20ed8f7a7c078b82d12b9f7ef1390b9e9c67d626/mpi_mm.c
我使用了这个确切的代码,但不是将矩阵的大小指定为常量,而是将它们作为输入参数。所以我在 main 中添加了以下代码:
int N = atoi(argv[1]);
int M = atoi(argv[2]);
double(*a)[M] = malloc(sizeof(double[N][M]));
double(*b)[1] = malloc(sizeof(double[M][1]));
double(*c)[1] = malloc(sizeof(double[N][1]));
int NRA = N;
int NCA = M;
int NCB = 1;
编译它并运行它并得到以下错误:mpicc
mpiexec -n 4 ./a.out
=================================================================================== = 您的一个申请流程终止不当 = PID 4960 在桌面NHT8PTC上运行 = 退出代码:11 = 清理剩余进程 = 您可以忽略以下清理消息 ===================================================================================应用程序因退出字符串而终止: 分段错误 (信号11)这通常是指应用程序存在问题。 有关调试建议,请参阅FAQ页面
这可能是什么原因?我不确定仅动态初始化矩阵会出什么问题。
答: 暂无答案
评论