Для использования mpi4py стандартным подходом является использование mpiexec
для запуска программы, использующей несколько процессов MPI. Например mpiexec -n 4 python3.5 myprog.py
.
Теперь это затрудняет отладку, потому что нельзя напрямую использовать интерпретатор Python плюс, возможно, отладчик IDE, использующий интерпретатор Python. Однако отладка многопоточного приложения не является проблемой.
Итак, моя идея была бы такой: Вместо того, чтобы использовать mpiexec для запуска процессов, у меня есть скрипт Python, который будет запускать несколько потоков, каждый из которых будет действовать как процесс MPI, и все это происходит в интерпретаторе Python. Таким образом, использование mpiexec
не было бы необходимым, и я мог бы отлаживать свое приложение, как и любую другую многопоточную программу Python. Возможно ли это и как?
(В общем, я был бы очень рад найти несколько хороших коллекций примеров или руководств по mpi4py, их не очень много.)