在为MPI_Scatter运行测试代码时,我会有一种奇怪的行为。程序似乎运行良好,但如果节点数大于4个,则返回分段错误。我使用mpicxx编译,并使用mpirun -n N ./a.o运行。[0],&start_send[0],MPI_DOUBLE,&small_vec[0],data_per_PE+remainder,MPI_DOUBLE,0,MPI_COMM_WORLD);
MPI_Scatter
并行化的算法很简单。根目录分散了MPI_comm_world中的列表。然后,每个节点对它的子数组执行qsort()函数。我猜想也许子数组的大小不是很精确。因为它只是简单地将列表的大小除以comm_size。因此,很可能存在分段故障。然而,我给出了列表1000的大小和处理器的数量4。除法的结果是250。processor %d and the unsorted array is:",rank);