MPI_Dist_graph_create_adjacent函式
傳回附加分散式圖形拓撲資訊之新通訊器的控制碼。
語法
int WINAPI MPI_Dist_graph_create_adjacent(
_In_ MPI_Comm comm_old,
_In_range_(>=,0) int indegree,
_In_reads_opt const int sources[],
_In_reads_opt const int sourceweights[],
_In_range_(>=,0) int outdegree,
_In_reads_opt const int destinations[],
_In_reads_opt const int destweights[],
_In_ MPI_Info info,
_In_range_(0,1) int reorder,
_Out_ MPI_Comm *comm_dist_graph
);
參數
comm_old [in]
沒有拓撲資訊的通訊器控制碼, (處理) 。indegree
來源和sourceweights陣列的大小 (非負整數) 。sources[]
呼叫進程是非負整數陣列的目的地 (陣列) 的處理常式排名。sourceweights[]
對應邊緣的加權至呼叫進程, (非負整數陣列) 。outdegree
目的地和destweights陣列的大小, (非負整數) 。destinations[]
呼叫進程是非負整數) 之來源 (陣列的進程排名。destweights[]
從呼叫進程外,對應邊緣的加權 (非負整數陣列) 。資訊 [in]
優化或解譯權數 (處理) 的提示。 目前使用 MPI_INFO_Null ,因為此變數未在內部使用。排序
順位可能會重新排序 (true) 或未 (false) (邏輯) 。 目前未在內部使用。comm_dist_graph [out]
具有附加 (處理) 分散式圖形拓撲資訊的通訊器控制碼。
傳回值
傳回成功時 MPI_SUCCESS 。 否則,傳回值是錯誤碼。
在 Fortran 中,傳回值會儲存在 IERROR 參數中。
Fortran
MPI_DIST_GRAPH_CREATE_ADJACENT (COMM_OLD, INDEGREE, SOURCES, SOURCEWEIGHTS,
OUTDEGREE, DESTINATIONS, DESTWEIGHTS, INFO, REORDER,
COMM_DIST_GRAPH, IERROR)
INTEGER COMM_OLD, INDEGREE, SOURCES (*), SOURCEWEIGHTS (*), OUTDEGREE,
DESTINATIONS (*), DESTWEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
LOGICAL REORDER
備註
comm_old通訊器中的每個進程都會傳遞虛擬分散式圖表拓撲中傳入和傳出邊緣的所有資訊。 如果圖表加權,呼叫進程必須確定圖形的每個邊緣都會在來源和目的地進程中以相同的權數來描述。 如果給定的來源目的地配對有多個邊緣,則這些邊緣的加權順序並不重要。
完整的通訊拓撲是 comm_old中所有進程來源陣列中顯示的所有邊緣的組合,必須與 目的地 陣列中顯示的所有邊緣組合相同。 來源和目的地排名必須是處理 comm_old的排名。 這允許通訊圖表的完整分散式規格。 隔離的進程,也就是分散式拓撲中沒有連入或傳出邊緣的進程,因此允許以零為零的 縮排 或 輸出 邊緣。
新建立的 communicator 中的進程數目 comm_dist_graph,與 comm_old中的進程數目相同。 此函式的呼叫是共同的。
如果圖表是加權圖表,則加權會使用 sourceweights 和 destweights 陣列指定為非負整數。 應用程式必須同時指定sourceweights和destweights陣列的MPI_UNWEIGHTED,以指出所有邊緣實際上都具有相同的 (沒有) 權數。 為部分但並非所有 comm_old 程式提供 MPI_UNWEIGHTED錯誤。 這種情況下的行為不保證。 如果圖表是加權的,但進程是不確定或輸出為零,則MPI_WEIGHTS_EMPTY或任何任意陣列可能會由該程式傳遞至sourceweights 或 destweights。
規格需求
產品 |
Microsoft MPI v6 |
標頭 |
Mpi.h;Mpif.h |
媒體櫃 |
Msmpi.lib |
DLL |
Msmpi.dll |