Как использовать 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 и статьях:
- Для Intel MPI: анализ приложений Intel MPI с помощью Intel Advisor
- Универсальный MPI, SLURM, для известной рабочей нагрузки WRF: анализ аспектов векторизации и памяти в "кулинарной книге" MPI-приложения
- Советник по приложениям MPI в системе Cray: "Поваренная книга" по анализу производительности в системах Cray
- Глава документации советника
- Еще одна статья
Вам необходимо указать действие в командной строке - согласно синтаксису оно не является обязательным:
$ advixe-cl <--action> [--action-options] [--global-options] [[-] target [target options]]
Где действие будет заключаться в сборе или сообщении. И каждая команда имеет ровно одно действие. Например, вы не можете использовать одновременно действия сбора и отчета в одной команде.
Вы можете ознакомиться с Руководством пользователя для Advisor здесь.