Как отлаживать MPI с помощью CLion?

Как отлаживать mpi программу с помощью Clion?
Исполняемый файл установлен mpirun, поэтому я не могу отлаживать как обычно, думаю, так как же это сделать? Спасибо


person Vadim Romansky    schedule 18.06.2016    source источник
comment
Вы запускаете все процессы MPI локально?   -  person Zulan    schedule 18.06.2016
comment
да, я запускаю его локально на процессоре с 4 ядрами   -  person Vadim Romansky    schedule 19.06.2016


Ответы (2)


Как уже упоминал Zulan,

  1. Добавьте эти строки перед точкой останова и перестройте приложение (из OpenMPI)

     int i = 0;
     while(0==i)
        sleep(5);
    
  2. Запустите вашу программу из терминала с помощью mpirun

$mpirun -np 4 ./Application

  1. Присоединить LLDB или GDB к локальному процессу

Выполнить-> Присоединить к процессу

  1. Программа паузы (программа будет приостановлена ​​на sleep(5))

  2. Установите i!=0 и возобновите программу

  3. Удачной отладки

Возможно, вам потребуется подключиться к другим процессам, чтобы установить i!=0 и продолжить отладку.

person ilciavo    schedule 30.10.2018
comment
Если ваша программа не работает из-за ptrace: операция не разрешена, см.: stackoverflow.com/q/19215177/9723204 - person Hawklike; 14.04.2021

Текущая версия CLion напрямую не поддерживает отладку программ MPI. Лучшее, что вы можете сделать, это присоединиться к отдельному процессу, после того как он запускается с mpirun. Возможно, вам придется отложить процессы, чтобы дать себе достаточно времени, чтобы присоединиться к ним. OpenMPI описывает несколько приемов, как это сделать.

Отладка параллельного приложения с последовательными отладчиками может быть очень утомительной. Поиск одного процесса из многих, который имеет ненормальное значение, требует много ручной работы. Как правило, вам лучше использовать параллельный отладчик, такой как DDT или totalview.

person Zulan    schedule 19.06.2016
comment
спасибо, но когда я попытался присоединить процесс, программа завершилась с ошибкой с сообщением ptrace: операция не разрешена. Отладчик отключен - person Vadim Romansky; 19.06.2016