我是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)