Я попытался запустить пример "Привет, мир" из , завернув с помощью swig с небольшой модификацией.
У меня проблема с компиляцией кода.
файл : helloworld.hpp
#include "mpi.h"
void sayhello(MPI_Comm comm)
{
int size, rank;
MPI_Comm_size(comm, &size);
MPI_Comm_rank(comm, &rank);
printf("Hello, World! "
"I am process %d of %d.\n",
rank, size);
}
файл: helloworld.i
%module helloworld
%{
#include "helloworld.hpp"
%}
%include /usr/local/lib/python3.6/dist-packages/mpi4py/include/mpi4py/mpi4py.i
%mpi4py_typemap(Comm, MPI_Comm);
%include "helloworld.hpp"
python скрипт:
from mpi4py import MPI
import helloworld
helloworld.sayhello(MPI.COMM_WORLD)
# Hello, World! I am process 0 of 1.
компиляция: (обновлено)
swig -c++ -python helloworld.i
mpiCC -O2 -fPIC -c helloworld_wrap.cxx -I /usr/include/python3.6 -I /usr/local/lib/python3.6/dist-packages/mpi4py/include
mpiCC -shared helloworld_wrap.o -o _helloworld.so
вывод:
$ mpirun -n 4 python3 runme.py
Hello, World! I am process 0 of 4.
Hello, World! I am process 1 of 4.
Hello, World! I am process 2 of 4.
Hello, World! I am process 3 of 4.
Устранена ошибка компиляции.