MPI_Comm_size 总是 returns 1

MPI_Comm_size always returns 1

MPI_Comm_size 命令总是 returns 单进程,当处理器计数为 4 时。我在虚拟 xUbuntu 16.04 上使用 MPI 3.2.1 和 CLion。模拟器 - VMWare。在 vm 设置中,处理器计数设置为 4,xUbuntu 中的 nproc 显示“4”。

这是 whereis mpicc 的输出:

mpicc: /usr/local/bin/mpicc

我试过使用 mpi 1.**,但它也做了同样的事情。怎么了?

这里是 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.8)
project(primes)

set(CMAKE_C_STANDARD 99)

set(SOURCE_FILES main.c)
add_executable(primes ${SOURCE_FILES})

set(CMAKE_C_COMPILER "/usr/local/bin/mpicc")

代码部分如下:

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

...

int rank, tasksCount;

MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &tasksCount);

UPD 运行 通过控制台:

kamo@kamo:~/prog/primes$ mpicc -o main.o main.c
kamo@kamo:~/prog/primes$ mpiexec -np 4 ./mail.o

什么都不给。没有任何反应,也没有任何内容写入控制台。只是没有 "kamo@kamo:~/prog/primes$" 前缀的新行。

我从一开始就尝试过,效果很好。

CLion 调试器工作不正常,因此您应该按照我的问题的 UPD 块中所述使用 mpicc + mpiexec 命令。