2013-02-26 67 views
0

我有以下3D數組。使用MPI發送3D數組部分

U[Timesteps][X][Y] 

帶有範圍

Timesteps (0 to 100) 
X (0 to 480) 
Y (0 to 480) 

我需要分割陣列跨節點發送對使用MPI處理。

我想分裂像下面這樣

過程(節點0)應該得到

U[Timesteps][X][Y] 

帶有範圍

Timesteps (0 to 100) 
X (0 to 200) 
Y (0 to 200) 

和 過程(節點1)應該得到

U[Timesteps][X][Y] 

帶有範圍

Timesteps (0 to 100) 
X (201 to 480) 
Y (201 to 480) 

同樣我可以拆分在運行時可用盡可能多的節點。 (即分裂在x和Y全步時間)

任何人都可以幫助與示例MPI代碼..我對MPI的派生數據類型的使用感到困惑我的要求。

感謝

+0

這裏缺少一些東西。 X(0至200)/ Y(201至408)'和'X(201至408)/ Y(0至200)'是什麼? – 2013-02-27 08:34:04

回答

0

經過一些通過一些MPI教程我如何發送3D陣列去。 我們需要使用MPI_TYPE_INDEXED派生數據類型