【问题标题】:MPI Number of processors?MPI 处理器数量?
【发布时间】:2023-03-03 06:44:25
【问题描述】:

以下是我在 MPI 中的代码,我在核心 i7 CPU(四核)上运行它,但问题是它显示它在 1 个处理器 CPU 下运行,它必须是 4 个。

int main(int argc, char *argv[])
{
    int rank, size;

    MPI_Init(&argc, &argv);

    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_Comm_size(MPI_COMM_WORLD, &size);

    printf("Hello world! I am %d of %d\n", rank, size);

    MPI_Finalize();

    return 0;
}

我想知道问题出在 MPI 库还是其他方面?

这是它显示给我的结果:

Hello world! I am 0 of 1

附加信息: Windows 7 - 专业 x64

【问题讨论】:

  • 程序运行得怎么样?
  • 您可能想要添加运行代码的方式 - 例如,必须使用像 mpirun -np 4 mympiexecutable 这样的命令运行 MPI 可执行文件才能让它们在 4 个处理器上运行,但我不知道并不真正了解 Windows MPI 版本。
  • 注意:将“-n 4”放在可执行文件的名称之前很重要。在我的机器上,如果是之后,那么它会被忽略。

标签: mpi processors


【解决方案1】:

从表面上看,您似乎正在直接运行该程序。您是否尝试过使用mpiexec -n 2-n 4

【讨论】:

  • 是的,我做到了,而且效果很好,但是我从一本书中复制了这个例子,书中说如果你有一个双核 CPU,你会得到 2 的结果。所以这里我有一个四核 CPU,所以我应该得到 4 个结果。
  • 如果您在没有明确使用 mpi 包装器的情况下运行它,它将在假设单核的情况下运行。
  • @Gabriel 假设你制作了test.exe。然后,如果您只运行test,它将使用 1 个核心。如果你使用 mpiexec -n 4 test.exe 那么它会知道使用 4 个实例。
猜你喜欢
  • 2021-08-23
  • 2012-04-16
  • 2015-09-25
  • 2023-03-25
  • 2013-07-06
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 2015-12-14
相关资源
最近更新 更多