MPI将列聚集到更大的矩阵中

时间:2017-12-01 00:45:26

标签: matrix mpi openmpi

让我说3个不同的线程上有3个不同的矩阵:

a1 a2       a3 a4       a5 a6
b1 b2       b3 b4       b5 b6
c1 c2       c3 c4       c5 c6
d1 d2       d3 d4       d5 d6
e1 e2       e3 e4       e5 e6
f1 f2       f3 f4       f5 f6

我想通过将MPI_Gather用于这个矩阵来收集它们

a1 a2 a3 a4 a5 a6
b1 b2 b3 b4 b5 b6
c1 c2 c3 c4 c5 c6
d1 d2 d3 d4 d5 d6
e1 e2 e3 e4 e5 e6
f1 f2 f3 f4 f5 f6

我正在使用

MPI_Gather(&oldMatrix,N/size,columnType,&newMatrix,N/size,gatherColType,0,MPI_COMM_WORLD);

coltype是:

 MPI_Type_vector(N,    
               1,                  
               N/size,         
               MPI_FLOAT,       
                 &column);
 MPI_Type_commit(&column);
 MPI_Type_create_resized(column, 0, 1*sizeof(float), &columnType);
 MPI_Type_commit(&columnType);  

但是,我不知道应该如何创建gatherColType(如果需要)。你能帮帮我吗?

注意:N是矩阵大小,大小是线程数(即此问题中为3)

0 个答案:

没有答案