Главная
Вычислительные ресурсы
C чего начать
Вопросы - ответы
Документация
Исследования
Контакты

Автор: А.О. Лацис


Влияние гипертрединга на производительность К-60.

На вычислительных узлах К-60 включен режим гипертрединга. Это означает, что ОС вычислительного узла "видит" на каждом вычислительном узле 56 логических процессоров, в то время как в действительности физических процессоров (то есть процессорных ядер) на вычислительном узле всего 28. Каждые два логических процессора, таким образом, реализуются на одном физическом, то есть на одном комплекте вычислительного оборудования.

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

Задачи, способные ускориться за счет гипертрединга, чрезвычайно редки, и пишутся людьми, хорошо разбирающимися в системных тонкостях. Поэтому предусмотренное в системе планирования "учетное" число процессоров на вычислительный узел осталось тем же, что и раньше - 28. Все числовые значения, указываемые в команде mpirun, сохраняют свой прежний смысл, если только Вы не указываете явно значение -ppn, превосходящее 28.

С другой стороны, некоторые вполне типичные задачи способны из-за режима гипертрединга несколько замедлиться (в пределах, максимум, 10%). Далее написано, как этого избежать.

Чтобы не допустить отрицательного влияния гипертрединга на Ваши задачи, следует внести в .bash_profile следующие добавления:

— строку: 
export I_MPI_PIN=on
следует добавить в любом случае;
— строку:
export I_MPI_PIN_PROCESSOR_LIST=allcores
следует добавить в случае, если Вы используете для параллельной реализации Вашей программы только MPI, и размещаете на каждом вычислительном узле не более 28 процессов (или вообще не знаете, сколько именно Вы их размещаете);
— строку:
export I_MPI_PIN_DOMAIN=\[fffffff\]
следует добавить в случае, если Вы используете MPI совместно с OpenMP.

Замечания:

  • чтобы не ошибиться при наборе добавляемых строк, скопируйте снова вариант настроечных файлов из /common/profile.versions/intel, и раскомментируйте там ту из двух альтернативных строк, какую нужно. К варианту настроечных файлов gcc_ipoib все сказанное здесь не относится;
  • не задавайте обе альтернативные строки сразу, это бессмысленно. Если сомневаетесь, какой вариант выбрать, выбирайте тот, где OpenMP. Если хотите понимать, что за всем этим стоит, читайте https://software.intel.com/sites/default/files/Reference_Manual_1.pdf, раздел "Process Pinning". Если совсем коротко: вариант без OpenMP обеспечивает прикрепление каждого MPI-процесса к конкретному физическому процессору, вариант с OpenMP - прикрепление всех MPI-процессов, находящихся на данном вычислительном узле, ко всем его физическим процессорам. Если этой информации мало - читайте https://software.intel.com/sites/default/files/Reference_Manual_1.pdf, раздел "Process Pinning";
  • во втором варианте альтернативной строки (где OpenMP) букв "f" внутри квадратных скобок должно быть 7 (семь). Обратная косая черта перед каждой квадратной скобкой - не опечатка и не ошибка форматирования. Должна быть.
 
 
 
 
 
 
 
  Тел. +7(499)220-79-72; E-mail: inform@kiam.ru