2014-03-31 66 views
0

我想在MPI中执行一个实现,我在同一台机器上(本地主机)调用多个从站(最多4个),并将我for循环的计算分布在从站之间。 MPI适合我当前的应用程序,我不能采用openMP路线。 涉及的变量大约是50,全部都是一维数组。 将50个变量发送到主进程的最佳方式是什么?我应该发送还是接收所有变量,还是应该将它们打包在一个2D数组中,并将此数组发送给主数据? 我正在寻找一种高效且计算便宜的方法。在MPI中传递多个变量

谢谢

回答

0

像往常一样:这取决于。如果您的单个阵列足够大,延迟变得微不足道,那么单独发送每个阵列就可以了。否则,通过将所有这些数组收集到一个数组中来增加消息的大小会更好。 如果你的变量是不同类型的,你可以使用MPI数据类型来描述数据的布局。

此外,如果您需要从多个进程收集此数据,使用MPI_Gather或其变体之一可能是一个好主意。 也可能是,在您的情况下,一个可行的选择是利用MPI提供的单侧通信工具。