Как отлаживать mpi программу с помощью Clion?
Исполняемый файл установлен mpirun, поэтому я не могу отлаживать как обычно, думаю, так как же это сделать? Спасибо
Как отлаживать MPI с помощью CLion?
Ответы (2)
Как уже упоминал Zulan,
Добавьте эти строки перед точкой останова и перестройте приложение (из OpenMPI)
int i = 0; while(0==i) sleep(5);
Запустите вашу программу из терминала с помощью
mpirun
$mpirun -np 4 ./Application
- Присоединить LLDB или GDB к локальному процессу
Выполнить-> Присоединить к процессу
Программа паузы (программа будет приостановлена на
sleep(5)
)Установите
i!=0
и возобновите программуУдачной отладки
Возможно, вам потребуется подключиться к другим процессам, чтобы установить i!=0
и продолжить отладку.
Текущая версия CLion напрямую не поддерживает отладку программ MPI. Лучшее, что вы можете сделать, это присоединиться к отдельному процессу, после того как он запускается с mpirun
. Возможно, вам придется отложить процессы, чтобы дать себе достаточно времени, чтобы присоединиться к ним. OpenMPI описывает несколько приемов, как это сделать.
Отладка параллельного приложения с последовательными отладчиками может быть очень утомительной. Поиск одного процесса из многих, который имеет ненормальное значение, требует много ручной работы. Как правило, вам лучше использовать параллельный отладчик, такой как DDT или totalview.