分布式vector,不存在各procs上的部分vector通信的问题,即各部分的vector是独立的。而分布式矩阵(dsm),在各procs所持有子矩阵的边界上,需要与邻居procs通信。dsm的通信系数,在mpi_matrix里面给出了。具体到spmv 操作中:
1 通信,得到+ghost矩阵 :矩阵(边界)元素发送/接受
47 for(int i=0; i<num_neighbors; i++)
48 {
49 local_int_t n_recv = receiveLength[i];
50 MPI_Irecv(x_external, n_recv, MPI_DOUBLE, neighbors[i], MPI_COMM_WORLD);//
51 x_external += n_recv;
52