2012-04-24 66 views
2

我有mpi程序在羣集上的多個進程中分配大型數組。OpenMPI CUDA和CUDPP

每個進程計算自己的數組元素之和並將結果返回給主機。

我想對每個進程的數組元素運行並行前綴掃描。

任何想法是否可以使用CUDPP。 ?

有沒有人一起使用openmpi和cudpp?

回答

1

沒有理由不能將CUDPP和MPI組合在同一個應用程序中。它們是正交的。

您也可以考慮使用Thrust's掃描實現,如果您使用的是Fortran,請參閱this blog post以獲取一些指導。

+2

作爲CUDPP的作者之一,我強烈建議你使用[Thrust](http://thrust.github.com)。請注意,如果您希望跨MPI排名執行巨大的前綴總和,則還需要實施MPI代碼以掃描每個排名的總和,然後在每個排名內抵消每個元素的結果。 – harrism 2012-04-24 10:47:39

+0

這是一個很好的觀點,出於某種原因我假設Fortran(使用ISO綁定CUDPP)。 Thrust當然需要C++,但是如果沒問題的話,這是使用高性能原語的一種非常優雅的方式。 – Tom 2012-04-24 13:12:36

+0

@harrism:謝謝,我已經添加了答案,並與Massimiliano關於從Fortran調用Thrust的博客文章相關。 – Tom 2012-04-25 09:28:50