Параллельные парадигмы на Blue Gene/P

Высокопроизводительные вычисления

В контексте системы Blue Gene/P, про расчеты, использующие

обычно говорят, как про высокопроизводительные вычисления (high-performance computing, HPC).

Суперкомпьютер Blue Gene/P представляет собой систему с распределенной памятью и использует явную передачу сообщений для обмена данными между процессами, которые запущены на различных вычислительных узлах. Оперативная память на узлах является разделяемой, поэтому возможно использовать интерфейс OpenMP и потоковые библиотеки.

Механизм передачи сообщений MPI

В качестве протокола передачи сообщений на системе Blue Gene/P применяется MPI. В настоящий момент поддерживаются версии MPI-1.2 и MPI-2, однако механизм управления процессами использовать нельзя. Реализация MPI для Blue Gene/P основана на реализации, выполненной в Национальной лаборатории Argonne, при этом были внесены следующие изменения:

  • реализована поддержка коммуникационных сетей системы Blue Gene/P:
    • сети трехмерного тора для операций «точка-точка»
    • дерева коллективных операций
    • сети глобальных прерываний для барьерных операций
  • оптимизированы уже имеющиеся функции работы с декартовой топологией:
    • MPI_Dims_create()
    • MPI_Cart_create()
    • MPI_Dim_map()
  • добавлены расширяющие MPI функции MPIX, отражающие специфику системы:
    • int MPIX_Cart_comm_create (MPI_Comm *cart_comm);
    • int MPIX_Pset_same_comm_create (MPI_Comm *pset_comm);
    • int MPIX_Pset_diff_comm_create (MPI_Comm *pset_comm);

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

Симметричный мультипроцессинг на основе OpenMP

На системе Blue Gene/P в SMP- и DUAL-режимах можно использоваться механизм OpenMP для распараллеливания в условиях общей памяти вычислительного узла.

Интерфейс OpenMP можно использовать совместно с MPI: вычислительные узлы обмениваются данными с помощью MPI, а в рамках процессора распараллеливание осуществляется на основе OpenMP. Доступны компиляторы для C/C++ и Фортрана:

  • bgxlc_r
  • bgcc_r
  • bgxlf_r

Чтобы задействовать OpenMP-распараллеливание, необходимо указать компилятору ключ -qsmp=omp.

Текст составлен на основе материала главы 7, «Parallel paradigms», 2-го издания книги «IBM System Blue Gene Solution: Blue Gene/P Application Development»