【问题标题】:Giving jobs to threads - MPI给线程分配工作 - MPI
【发布时间】:2012-04-10 08:28:09
【问题描述】:

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

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

【问题讨论】:

  • 您的意思可能是进程而不是线程?这是 MPI 中的一个重要区别。

标签: c mpi


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2017-08-03
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多