0
我需要將矩陣的某些部分從根進程發送到所有其他進程,以便它們可以對其執行計算。然後我需要接收計算並將它們聚合到根進程中。我會使用Scatter,但矩陣只能存在於根進程(作業規定)中。MPI C SendRecV矩陣乘法
我知道MPI_Sendrecv_replace或MPI_Sendrecv將是有用的函數。但是,我需要將矩陣的一部分發送給其他進程,讓它們計算,然後返回。如果我需要在發送和接收之間進行計算,我如何使用Sendrecv函數。我很難將這個概念化。
例如:
Process 0 sends to Process 1,2,3
Process 1,2,3 compute sections of matrix
Process 0 receives all of the computations
怎麼能這樣呢,如果SENDRECV功能於一身?此外,我認爲使用單獨的發送和接收操作肯定會導致死鎖(除非我費力地管理調用),因爲我將在nxn矩陣上執行此操作,並且它可能很大。
如何使用Sendrecv函數?提前致謝!