MPI处理器数量?

7

以下是我的MPI代码,我在quad core的核心i7 CPU上运行它,但问题是它显示它正在单个处理器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


你是如何运行程序的? - Foo Bah
2
你可能需要添加如何运行代码的说明 - 通常,MPI可执行文件必须使用类似于“mpirun -np 4 mympiexecutable”的命令来运行,以便在4个处理器上运行它们,但我不太了解Windows MPI版本。 - Aesin
注意:在可执行文件名之前加上“-n 4”非常重要。在我的机器上,如果它在之后,则会被忽略。 - Paul Wintz
1个回答

13

看起来你是直接运行程序。你尝试过使用mpiexec -n 2-n 4吗?


是的,我做了那个并且它运行良好,但我从一本书中复制了那个例子,书上说如果你有一个双核CPU,你会得到2作为结果。 所以在这里,我有一个四核心CPU,所以我应该得到4作为结果。 - Gabriel
如果您在不明确使用mpi包装器的情况下运行它,它将假定为单核运行。 - Foo Bah
4
假设你制作了一个名为 test.exe 的程序。如果你只运行 test,它将只使用一核心。如果你使用 mpiexec -n 4 test.exe 命令,它会启动4个实例来执行程序。 - Foo Bah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接