1

Я хочу сделать распределенное программирование с помощью python с помощью пакета mpi4py. По причинам тестирования я настроил кластер из 5 узлов через механизм контейнеров Google и изменил свой код соответствующим образом. Но теперь, какие у меня следующие шаги? Как заставить мой код работать и работать на всех 5 виртуальных машинах?Распределенное программирование в Google Cloud Engine с использованием Python (mpi4py)

Я пытался просто SSH-подключения в одну виртуальную машину из моего кластера и запустить код, но было очевидно, что код не получал распространение, но вместо этого остался на той же машине :([смотри пример ниже]

.

Код:.

from mpi4py import MPI 

size = MPI.COMM_WORLD.Get_size() 
rank = MPI.COMM_WORLD.Get_rank() 
name = MPI.Get_processor_name() 

print("Hello, World! I am process/rank {} of {} on {}.\n".format(rank, size,name)) 

Выход:

Mpiexec -n 5 питон 5_test.py

Hello, World! Я процесс/ранг 0 из 5 на gke-cluster-1-000000cd-node-mgff.

Hello, World! Я процесс/ранг 1 из 5 на gke-cluster-1-000000cd-node-mgff.

Hello, World! Я процесс/ранг 2 из 5 на gke-cluster-1-000000cd-node-mgff.

Hello, World! Я процесс/ранг 3 из 5 на gke-cluster-1-000000cd-node-mgff.

Hello, World! Я процесс/ранг 4 из 5 на gke-cluster-1-000000cd-node-mgff.

ответ

1

Итак, я понял, что я не прав, и я думаю, что я должен опубликовать ответ для кого-то, кто мог бы есть подобный вопрос.

Оказывается, я должен был прочитать документацию mpi4py лучше: D

mpirun -np 5 python 5_test.py Команды для запуска программы в один, многоядерном хосте различных процессов.

Однако я хотел распространять задачу на разных хостах. Поэтому мне нужна команда mpirun --hostfile <hostfile> python 5_test.py. И <hostfile> должен быть файл вида:

-- hostfile -- 

host1 slots=4 

host2 slots=4 

host3 slots=4 

'-------------- 


. 

Полезные ссылки: https://github.com/jbornschein/mpi4py-examples