открыть mpi недостаточно слотов доступно - PullRequest
0 голосов
/ 28 сентября 2018

Я запускаю простую программу hello world, написанную на C, на mpi, и у меня проблема в том, что я не могу выполнить 10 процессов для этой простой программы.

#include <stdio.h>
#include "mpi.h"

int main(int argc, char *argv[])
{
    int rank; //rank of the process
    int size; //number of processes

    MPI_Init(&argc,&argv); //inititate MPI environment
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&size);

    printf("Hello world from process %d of %d\n",rank,size);
    MPI_Finalize();
    return 0;
}

iзапустите его на терминале с помощью:

mpicc -o hello helloworld.c
mpirun --oversubscribe -np 10 hello

Вывод:

Hello world from process 0 of 10
Hello world from process 2 of 10
Hello world from process 3 of 10
Hello world from process 9 of 10
Hello world from process 7 of 10
Hello world from process 1 of 10
Hello world from process 6 of 10
Hello world from process 5 of 10
Hello world from process 4 of 10
Hello world from process 8 of 10
----------------------------------------------------------------------- 
---
A system call failed during shared memory initialization that should
not have.  It is likely that your MPI job will now either abort or
experience performance degradation.

Я понял, что максимум, на который я могу пойти с переподпиской на моем двухъядерном Mac, равен 5, который не выдает предупреждение каквыше, но больше, чем это дает мне ошибку, и я не уверен, почему.

Буду признателен за помощь в этом.Если да, то как мне переустановить открытый mpi?

1 Ответ

0 голосов
/ 03 октября 2018

Эта ошибка отслеживается на https://github.com/open-mpi/ompi/issues/5798

. Между тем, вы можете

mpirun --mca btl_vader_backing_directory /tmp ...

или

export OMPI_MCA_btl_vader_backing_directory=/tmp
mpirun ...
...