Основные реализации: MPICH и OpenMPI, ещё на кластерах бывает MVAPICH, Intel MPI. Скорее всего, обе реализации есть в пакетах используемого вами дистрибутива Linux. Можно выбрать любую.
# Debian / Ubuntu
apt-get install openmpi libopenmpi-dev
# Fedora / CentOS
yum install openmpi
# Если не находит mpicc
export PATH=/usr/lib64/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH
# Debian / Ubuntu
apt-get install mpich libmpich-dev
# Fedora / CentOS
yum install mpich
mpirun -np 4 xterm -e gdb --args ./my-program -f 123 -x 456
mpirun -n 4
xterm -e
konsole -e
),
gdb --args
./my-program -f 123 -x 456
Команда откроет по терминалу с GDB на процесс. В каждом из отладчиков затем нужно набрать r
для запуска программы и далее — обычная работа с отладчиком.
mpigdb
mpirun -np 4 -gdb ./my-program -f 123 -x 456
Запускает 4 процесса с gdb и предоставляет единый интерфейс для управления отладчиками.
http://docstore.mik.ua/manuals/ru/mpich_guide/mpich_userguide_site/node30.html
Дополнительные команды:
z 0
z
Если управление у всех отладчиков, любая команда транслируется на все процессы.
Ctrl+C
— если управление у отладчика одного из процессов, но процесс ожидает завершения MPI-пересылки, показать меню переключения процессов.
http://maxxk.github.io/programming-semester-6/MPI-cheatsheet