为线程提供工作 - MPI

时间:2012-04-09 20:59:26

标签: c mpi

我将一个值传递给用C编写的MPI程序。所以,如果我传入值为5,我想将数字5给第一个线程,第四个给第二个线程等等。如何我这样做了?

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

1 个答案:

答案 0 :(得分:2)

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

  1. 将值(例如5)读入某个变量
  2. MPI_INIT
  3. 使用MPI_Comm_rank
  4. 获取MPI流程的排名
  5. 在循环中,根据进程等级为某个变量赋值
  6. 对步骤4中初始化的变量调用MPI_Reduce。
  7. MPI_Finalize
  8. 根据要求从单个/多个流程打印
  9. 即使我认为你实际上意味着进程,而不是线程(如评论中已经指出的suszterpatt)。