Я запускаю простую программу 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?