我是MPI编程的新手!我试图测量处理器之间的点对点通信带宽以实现实用性.但是现在我遇到了分段错误!我不明白为什么会这样.我也在ubuntu上尝试了valgrind,但不知道.所以也许有人可以帮助我:D
感谢快速响应,但这并没有改变问题:(我只是更新了错误!
这里是源代码
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int myrank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
int *arraySend = (int *)malloc(25000*sizeof(int));
int *arrayRecv = (int *)malloc(25000*sizeof(int));
double startTime = 0.0, endTime = 0.0;
MPI_Status status,statusSend, statusRecv;
MPI_Request requestSend, requestRecv;
if(size != 2){
if(myrank == 0){
printf("only two processors!\n");
MPI_Finalize();
return 0;
}
}
if(myrank == 0){
startTime = MPI_Wtime();
MPI_Send(&arraySend, 25000, MPI_INT, 1, 0,MPI_COMM_WORLD);
}else{
MPI_Recv(&arrayRecv, 25000, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
} …
Run Code Online (Sandbox Code Playgroud) 我是并行计算世界的新手.你能告诉我是否有可能运行c ++代码在我的笔记本电脑中使用双核心的MPI例程,或者有没有任何模拟器/模拟器这样做?
我只是不知道使用 GDB 运行多个进程的命令。以下不起作用。
r -np 64 ./a.out -gdb
Run Code Online (Sandbox Code Playgroud)
抱歉,这看起来很简单。但是我在网上没有找到很多关于使用 gdb 在 MPI 中调试的有用文档。