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

Разделённое глоба́льное а́дресное простра́нство (англ. 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.

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

Примечания править