Разделённое глобальное адресное пространство

Разделённое глоба́льное а́дресное простра́нство (англ. partitioned global address space; сокр. PGAS) — одна из перспективных моделей параллельного программирования (параллельных вычислений), в которой вся память параллельного вычислительного комплекса (глобальная память) является адресуемой и разделена на логические разделы, каждый из которых локален для какого-то процесса или потока[1].

Новшеством PGAS стало то, что разделы разделяемого адресного пространства могут иметь привязку к определённому процессу или потоку, таким образом используя принцип компактности (локальности) ссылок. PGAS создана чтобы объединить преимущества стиля программирования SPMD для систем с распределенной памятью (например, используемого в интерфейсе MPI) с семантикой обращения к памяти из систем с общей памятью. Подход PGAS более реалистичен чем традиционная модель плоской общей памяти, поскольку в PGAS можно использовать информацию о стоимости доступа к различным разделам памяти (локальные разделы PGAS соответствуют локальной памяти узла, на котором исполняется процесс, стоимость доступа к ней минимальна).

PGAS-модель является основой для языков параллельного программирования Unified Parallel C, Co-array Fortran, Titanium, Fortress, Chapel и X10, Global Arrays. Две библиотеки, используемые при реализации PGAS: GASNet и SHMEM.

Вариация модели PGAS под названием asynchronous partitioned global address space (APGAS) добавляет возможность создания асинхронных задач, как локальную, так и удаленную.[2] Два языка, реализующие APGAS: Chapel и X10.

Дополнительные источники

Примечания

  1. Cristian Coarfӑ; Yuri Dotsenko; John Mellor-Crummey, «An Evaluation of Global Address Space Languages: Co-Array Fortran and Unified Parallel C» Архивная копия от 24 ноября 2013 на Wayback Machine
  2. Tim Stitt, «An Introduction to the Partitioned Global Address Space (PGAS) Programming Model» Архивная копия от 15 ноября 2013 на Wayback Machine