我想問問有沒有人知道boost :: mpi初學者的文檔? (我已經從Internet站點閱讀Boost.MPI文檔)。使用Boost爲MPI設計共享內存
有一點關於我的系統,我有一個約90節的碎石,每個節有兩個CPU,兩個核心(4個核心在一起)和4Gb RAM。
我想定義每個結的共享內存,並且存儲矢量std::vector<bool> occupation;
。然後每個進程需要根據他的rank()
號碼來計算一些東西。
現在,所有的多進程需要等到所有內核完成計算,然後發送一個載體,std::vector<uint32_t> remove;
,主處理(rank() == 0
)將更新載體occupation
,然後發送到所有結新occupation
向量。
這可能是它最好使用簡單的mpi.h
而不是boost::mpi
。
我想聽聽您的意見,因爲我沒有這方面的MPI經驗。
感謝您的回答。讓我們假設'佔領'是'2^30'布爾元素的大小,那麼每個過程都需要1Gb,在那裏我只需要一個所有4個核心的「職業」向量......這就是我的原因問題 – Eagle 2011-03-24 23:15:33
解決這個問題的一種方法是在節點之間使用MPI,並在節點內部使用OpenMP等線程方法;那麼每個節點只需要一個副本,如果每個節點都有4Gb,那麼這很好。否則,是否有一些計算結構 - 不需要同時需要所有職業的所有任務? – 2011-03-24 23:37:01
「職業」是程序的中心,大部分計算都需要在計算過程中訪問這個向量。我搜索了一下網絡,而我正在尋找的是混合編程? (MPI和OpenMP的組合) – Eagle 2011-03-24 23:49:55