2013-07-26 39 views
0

的部件予有Fortran中定義陣列如下:MPI_REDUCE上陣列

integer,dimension(100)::a 
integer,dimension(100)::partial_sum_a 

我想使用MPI_REDUCE從索引510(總結的a只的值即(5),.. 。,a(10))。我會怎麼做?請問使用:

MPI_Reduce(a(5:),partial_sum_a(5:),6,...) 

好嗎?或者我必須使用MPI_TYPE_VECTOR?

回答

0

是的,如果一個數組片具有多個元素也是一個數組,那麼MPI_Reduce的常用用法就可以工作。顯然,您需要確保MPI_Reduce調用中的所有參數都是正確的,即count與發送緩衝區中的元素數量相匹配。大多數情況下,您可以更快速地嘗試這些事情,而不是讓您從人們的答案中獲得答案互聯網。

+0

因此不需要MPI_TYPE_VECTOR? – tiki

+0

我在沒有使用'MPI_TYPE_VECTOR'的情況下對數組切片使用了'MPI_Reduce'。 – milancurcic

+0

我確實使用了用於小數組的切片,這很好,但是當我爲較大的數組做時,它的行爲非常奇怪,即不像預期的那樣。 – tiki