2012-04-09 64 views
0

我传递一个值到我的MPI程序中编写的C.所以如果我传递一个5的值,我想给5号线程号码1,号码4线程2号等。我该怎么做?作业线程 - MPI

最后,我有一个MPI减少,所有这些值的产物(5 * 4 * 3 ...),所以我并不需要在线程中做任何事情,但我只需要通过每个线程的值不同。

+2

你可能是指进程而不是线程?这是MPI中的一个重要区别。 – suszterpatt 2012-04-09 21:24:18

回答

2

这听起来像一个任务,所以我只会写出伪代码。

  1. 读值(5例如)成一些变量
  2. MPI_INIT
  3. 获取MPI过程的使用MPI_Comm_rank
  4. 在循环秩,基于过程
  5. 的秩值赋值给一些变量
  6. 调用MPI_Reduce上从基于要求单个/多个进程在步骤初始化4.
  7. MPI_Finalize
  8. 打印可变

即使我认为你实际上是指进程,而不是线程(正如suszterpatt已经在评论中指出的那样)。