MPI单面通信,低内存远程内存访问

时间:2016-01-04 10:10:58

标签: mpi

我有一个矩阵A和一堆矢量(b0..bn),我想将它们相乘以产生矢量c0..cn。 使用std方法,使用MPI将在每个进程上制作矩阵A的副本,并相应地在进程之间分配向量。

例如,10个过程(MPI_Ranks)中有100个向量b0..b99

rank0:
c0=A.b0 ,c1=A.b1, ... c9=A.b9
rank1:
c10=A.b10,c11=A.b11 ... c19=A.b19
...
rank9
c90=A.b90,c91=A.b91 ... c99=A.b99

我的问题是,A真的很大而稀疏,制作10个或更多副本将是一个坏主意或不切实际,只是它不适合(假设我有一个四核,即在我的主机我将不得不复制A四时,当一份副本几乎不适合时。)

是否可以使用MPI单向通信使A在进程0中,其他9个处理器只使用RMA读取A并仍然生成c0..c99?喜欢

rank0:
c0=A.b0 ,c1=A.b1, ... c9=A.b9

rank1:
c10=(remote A in Rank 0).b10, c11=(remote A in Rank 0).b11 ... c19= (remote A in Rank 0).b19
...
rank9
c90=(remote A in Rank 0).b90,c91=(remote A in Rank 0).b91 ... c99=(remote A in Rank 0).b99

0 个答案:

没有答案