【发布时间】:2021-10-22 22:07:38
【问题描述】:
当 MPI_Send 缓冲区大小为 100 时,程序可以工作,但当它为 1000 或更大时,它会卡住。为什么?
if(id == 0){
rgb_image = stbi_load(argv[1], &width, &height, &bpp, CHANNEL_NUM);
for(int i = 0; i < size -1; i++)
MPI_Send(rgb_image,1000,MPI_UINT8_T,i,0,MPI_COMM_WORLD);
}
uint8_t *part = (uint8_t*) malloc(sizeof(uint8_t)*(1000));
if(id != size-1 && size > 1)
MPI_Recv(part,1000,MPI_UINT8_T,0,0,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
【问题讨论】:
-
很难说,但你可以尝试不发送/接收到进程 0 吗?
标签: parallel-processing operating-system mpi