秩數是否有任何泛化的數字?對於我的代碼,我想創建MPI :: COMM_WORLD的分層分解。假設我們使用16個線程。我使用MPI :: COMM_WORLD.Split來創建4個具有4個等級的傳播者。現在是否有MPI功能爲相應的四個組提供一些獨特的ID?將MPI等級數推廣到MPI組?
3
A
回答
5
那麼,你仍然可以參考每個進程的原始排名MPI_COMM_WORLD
。您還可以完全控制每個進程通過color
和key
參數MPI_Comm_split()
在其新通訊器中收到的排名。這是足夠的信息來創建舊隊伍和新隊伍/隊伍之間的映射。
1
如果你不喜歡@ suszterpatt的答案(我這樣做),你總是可能會濫用笛卡爾傳播者,並假裝傳播者中索引(2,3)處的流程是分層分解的第2組中的流程3。
但是不要讀這個,並帶走我推薦這種濫用的印象,這只是一個想法。
相關問題
- 1. MPI等級過程
- 2. MPI廣播二維數組
- 3. 用於python廣播的MPI
- 4. 使用MPI廣播對象
- 5. 同時MPI若干廣播
- 6. 將MKL鏈接到MPI
- 7. MPI發送數組的數組
- 8. 從OpenMP的到MPI
- 9. MPI自動類型的廣播變量
- 10. 兩個MPI廣播一個接一個
- 11. MPI虛擬圖形拓撲廣播
- 12. 在MPI中廣播更好的價值
- 13. MPI +函數指針?
- 14. 找不到cabal在Windows上找到haskell-mpi的mpi庫
- 15. MPI與自己的等級交流行爲是否明確?
- 16. MPI程序只捕獲等級爲1的消息
- 17. 使用hwloc物理ID構建MPI等級文件
- 18. 使用MPI發送3D數組部分
- 19. MPI - 發送數組的片段
- 20. 與MPI-2
- 21. MPI allreduce with barrier
- 22. MPI FOX算法
- 23. C++ MPI上SLURM
- 24. MPI多選
- 25. MPI,Sungrid vs JPPF?
- 26. .NET MPI實現?
- 27. MPI Sendrecv與MPI_ANY_SOURCE
- 28. MPI(求和)
- 29. mpi底下
- 30. 無法在MPI
你說得對,我添加到MPI_Comm_split()中的信息足以計算出我所要求的信息。但在10,000個核心的情況下做這件事並不是微不足道的。這就是我直接在MPI基礎上詢問是否有支持這樣做的原因。 – 2012-04-25 13:28:38
似乎對我來說很簡單。如果你有N * M個進程需要分成M個N組,那麼每個進程都會用'rank/N'顏色(和可選的'rank%N'鍵)調用'Split()'。這會將0..N-1排入組0,N..2 * N-1排入組1,依此類推,並保留每個組內進程的原始排序。在'j'組中排名爲'i'的進程是'MPI_COMM_WORLD'中排名爲'j * N + i'的進程。 – suszterpatt 2012-04-25 13:34:50