我正在處理一個包含多個從節點和一個主節點的項目。在某些時候,我需要從不同的從節點收集數據(主節點也可以作爲從節點)來掌握節點。數據可以是任何類型,但假設它是unsigned int。這是數據的外觀上從節點:使用MPI和C++從不同節點收集數據
NODE0:| chunk01 | chunk02 | chunk03 | chunk04 | ....
節點1:| chunk11 | chunk12 | chunk13 | chunk14 | ....
...
節點N:| chunkn1 | chunkn2 | chunkn3 | chunkn4 | ....
數據應全部聚集到NODE0,看起來像這樣:
NODE0:| chunk01 |塊11 | chunk21 | .... | chunkn1 | chunk02 | chunk12 | ... | chunkn2 | ... | chunknm |
這意味着我們從每個節點串連在一起,從每個節點的第一塊在一起,那麼第二塊...
我不知道如何使用MPI_Gatherv來實現這一點,因爲每個chunkij有不同的大小,也每個節點只知道自己的塊大小和開始索引,而不知道其他節點的信息。
我對MPI並不是很熟悉,所以我想知道有沒有API可以將不同大小的數據從各個節點收集到一個節點?
塊是如何存儲的? –
平原1D陣列。使用指針。 – gpunerd
有時我很想念像'MPI_Gatherw'這樣的手術...... –