Как использовать Intel Advisor для профилирования моего параллельного MPI-приложения?

Я работаю на удаленном сервере Linux, на котором мое приложение работает параллельно с MPI. Я хочу профилировать его и проверить, насколько хорош баланс нагрузки в каждом процессе MPI и какие части кода являются самыми тяжелыми.

Чтобы запустить приложение параллельно, я обычно запускаю его так:

mpirun -n # ${location}/myApp arg1 arg2 etc.

В машине есть модуль про Intel Advisor, который я собираюсь использовать. Команда GUIadvixe-gui не работает, поэтому я должен делать это с advixe-cl

В случае необходимости, когда я печатаю:advixe-clон возвращает мне это:

Intel(R) Advisor Command Line Tool Copyright (C) 2009-2019 Intel Corporation. All rights reserved. Usage: advixe-cl <--action> [--action-option] [--global-option] [[--] <target> [target options]] Use --help for details.

Есть идеи, как продолжить профилирование?

2 ответа

Вы должны использовать командную строку Advisor (advixe-cl), и вы должны " обернуть " вашу командную строку advixe-cl с помощью mpirun. А впоследствии вы можете копировать и просматривать полученные профили с помощью графического интерфейса - с индивидуальным "просмотром результатов" для каждого ранга.

Вы можете "обернуть" командную строку несколькими способами, например (для Intel MPI):

$ mpirun -n 1 -gtool "advixe-cl -collect survey -no-auto-finalize -project-dir /user/test/vec_project:0" /user/test/vec_samples/vec_samples

или (общий MPI с SLURM):

$ srun –n 1 –c 32 advixe-cl --collect=survey --project-dir=./adv -- ./miniFE.x

Эта тема подробно описана (включая выборочный анализ рангов или, например, особенности Cray или Intel MPI) в следующих "Поваренных книгах" Intel и статьях:

  1. Для Intel MPI: анализ приложений Intel MPI с помощью Intel Advisor
  2. Универсальный MPI, SLURM, для известной рабочей нагрузки WRF: анализ аспектов векторизации и памяти в "кулинарной книге" MPI-приложения
  3. Советник по приложениям MPI в системе Cray: "Поваренная книга" по анализу производительности в системах Cray
  4. Глава документации советника
  5. Еще одна статья

Вам необходимо указать действие в командной строке - согласно синтаксису оно не является обязательным:

$ advixe-cl <--action> [--action-options] [--global-options] [[-] target [target options]]

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

Вы можете ознакомиться с Руководством пользователя для Advisor здесь.

Другие вопросы по тегам