0

我正在将一个值传递给我用 C 编写的 MPI 程序。因此,如果我传递一个值 5,我想将数字 5 分配给线程 1,将数字 4 分配给线程 2 等等。我该怎么做?

最后,我有一个 MPI reduce,它是所有这些值的乘积(5 * 4 * 3 ...),所以我真的不需要在线程中做任何事情,但我只需要向每个值传递不同的值线。

4

1 回答 1

2

这听起来像是一个作业,所以我只会写出伪代码。

  1. 将值(例如 5)读入某个变量
  2. MPI_初始化
  3. 使用 MPI_Comm_rank 获取 MPI 进程的等级
  4. 在循环中,根据进程的等级为某个变量赋值
  5. 在步骤 4 中初始化的变量上调用 MPI_Reduce。
  6. MPI_Finalize
  7. 根据要求从单个/多个进程打印

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

于 2012-04-09T21:55:04.123 回答