Общие рекомендации по разработке программ для Blue Gene/P

Смотрите также материалы спецкурса Н.Н.Поповой «Терафлопные вычисления».

При разработке, компиляции, сборке и запуске программ на системе IBM Blue Gene/P, установленной на факультете ВМК МГУ имени М. В. Ломоносова, вам необходимо помнить о следующем:

  • Архитектура Blue Gene предназначена для кодов, которые хорошо масштабируются до сотен и тысяч процессоров. Процессоры на Blue Gene работают на меньшей тактовой частоте, чем таковые на системах p-серии и обычных Linux-кластерах. Если ваша программа не является хорошо масштабируемой, то, вероятно, вам имеет смысл подумать над возможностью выбора другой машины.
  • На Blue Gene нет файла подкачки, используется статическая карта памяти. На одном вычислительном узле доступно 2 ГБ физической памяти С точки зрения прикладного программиста, это означает, что необходимо тщательно избегать в коде ошибок, связанных с утечкой памяти.
  • Для сборки программ используется механизм кросс-компиляции.
  • Компиляторы с префиксом bg по умолчанию используют опцию -qarch=450d, при этом задействуются оба устройства вычислений с плавающей точкой; если у вас возникают проблемы с производительностью, попробуйте явно указать ключ -qarch=450.
  • Поддерживается динамическое связывание (dynamic linking).
  • Межпроцессорные обмены реализуются только с помощью MPI.
  • В зависимости от режима исполнения, в рамках MPI-процесса может исполняться одна, две или четыре OpenMP-нити.
  • pESSL для систем Blue Gene на данный момент не выпущена.
  • В рамках одного вычислительного узла можно использовать последовательную или SMP-версию библиотеки IBM ESSL (Engineering and Scientific Subroutine Library).
  • Не поддерживается часть системных вызовов Linux, как, например, fork; полный список см. в официальной документации.
  • Пороговое значение выбора способа маршрутизации MPI-пакетов может быть выставлено через переменную окружения DCMF_EAGER при постановке задачи в очередь: mpirun ... -env "DCMF_EAGER=1000" ...
  • Blue Gene использует 32-битную адресацию, поэтому нельзя использовать ключ -q64 компилятора, однако поддерживаются 64-битные целые (например, long long).
  • Процессор вычислительного узла системы Blue Gene/P включает четыре ядра. Программа может быть запущена в трех режимах: SMP, DUAL, VN.
  • На этапе разработки используйте ключ -g, который может оказаться полезным при анализе причин аварийного завершения программы.
  • Чтобы добиться максимальной производительности, используйте компиляторы семейства IBM XL, нежели GCC.

Текст на этой странице является вольной адаптацией рекомендаций Центра поддержки научных вычислений Бостонского университета