MPI的拓撲(虛擬拓撲和笛卡爾拓撲)

2021-08-10 07:25:53 字數 684 閱讀 3089

mpi_graph_create和mpi_cart_create函式分別用於產生通常(圖)的虛擬拓撲和笛卡爾拓撲

虛擬拓撲:

虛擬拓撲可以用圖來表示,每個程序代表乙個點,兩點之間的連線代表通訊聯通,但是注意mpi在任意兩個程序之間都可通訊,未連線的兩點之間不代表無法進行通訊。但是虛擬拓撲有個很致命的缺點,就是無法直觀的獲得程序在拓撲間的資訊。

笛卡爾拓撲:

要保證你新建的笛卡爾拓撲的節點數量和你原有的通訊組的節點數量相等,多了或者少了都會引起相應的錯誤,當reorder是true時,新的通訊組內的程序會被重新編號。

關於平移得到的相連關係,如果是非迴圈的平移,每次移動disp就意味著將有disp個程序被移出,否則這disp個程序將補於與移動方向反向的那端。

下面是乙個例子:

#include 

#include

int main( argc, argv )

int argc;

char **argv;

else

printf( "process %d got %d\n", rank, value );/*各程序列印各自得到的資料*/

} while (value >= 0);/*若讀入的資料非負,則繼續讀入並傳遞*/

mpi_finalize( );

}

拓撲排序的DFS和BFS

博主以前有乙個疑問,dfs和bfs各自的適用範圍是?我想你今天看了這篇文章之後會有乙個判斷!風格被我改為了c void topsort vector g topnum v counter 第counter 1個被遍歷到的 for int i iif g v i indgree i 用一句話來概括這個...

拓撲排序的原理和實現

在圖論中,由乙個有向無環圖組成的序列,只要滿足下面兩種情況則稱為拓撲排序 可以從這副圖中發現,如果按照dfs的思想,那麼其訪問結點的結果為 5,2,3,1,0,4,但是如果是拓撲排序的話,訪問結點的結果為5,4,2,0,1,3,類似於多叉樹的bfs 拓撲排序可用來解決什麼問題呢?比如說課程排序,編譯...

拓撲排序的DFS和BFS

博主以前有乙個疑問,dfs和bfs各自的適用範圍是?我想你今天看了這篇文章之後會有乙個判斷!風格被我改為了c void topsort vector g topnum v counter 第counter 1個被遍歷到的 for int i iif g v i indgree i 用一句話來概括這個...