stringtranslate.com

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

В информатике глобальное адресное пространство с разделением ( PGAS ) — это парадигма параллельной модели программирования . PGAS описывается коммуникационными операциями, включающими абстракцию глобального адресного пространства памяти , которая логически разделена, где часть является локальной для каждого процесса, потока или элемента обработки . [1] [2] Новизна PGAS заключается в том, что части общего пространства памяти могут иметь сродство к определенному процессу, тем самым используя локальность ссылок для повышения производительности. Модель памяти PGAS представлена ​​в различных языках и библиотеках параллельного программирования, включая: Coarray Fortran , Unified Parallel C , Split-C, Fortress , Chapel , X10 , UPC++, Coarray C++, Global Arrays , DASH и SHMEM . Парадигма PGAS теперь является неотъемлемой частью языка Fortran , начиная с Fortran 2008 , который стандартизировал coarrays.

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

Вариант парадигмы PGAS, асинхронное секционированное глобальное адресное пространство ( APGAS ), дополняет модель программирования возможностями как для локального, так и для удаленного создания асинхронных задач. [3] Двумя языками программирования, которые используют эту модель, являются Chapel и X10 .

Примеры

Смотрите также

Внешние ссылки

Ссылки

  1. ^ Алмаси, Джордж. «Языки PGAS (Разделенное глобальное адресное пространство)», Энциклопедия параллельных вычислений, Springer, (2011): 1539-1545. https://doi.org/10.1007/978-0-387-09766-4_210
  2. ^ Кристиан Коарфэ; Юрий Доценко; Джон Меллор-Крамми, «Оценка языков глобального адресного пространства: Co-Array Fortran и Unified Parallel C»
  3. ^ Тим Ститт, «Введение в модель программирования с использованием разделенного глобального адресного пространства (PGAS)»
  4. ^ Numrich, RW, Reid, J., Co-array Fortran для параллельного программирования. ACM SIGPLAN Fortran Forum 17(2), 1–31 (1998).
  5. ^ J. Reid: Coarrays в следующем стандарте Fortran. SIGPLAN Fortran Forum 29(2), 10–27 (июль 2010 г.)
  6. ^ GCC wiki, Поддержка Coarray в gfortran, как указано в стандарте Fortran 2008
  7. ^ W. Chen, D. Bonachea, J. Duell, P. Husbands, C. Iancu, K. Yelick. Анализ производительности компилятора Berkeley UPC. 17-я ежегодная международная конференция по суперкомпьютерам (ICS), 2003. https://doi.org/10.1145/782814.782825
  8. ^ Тарек Эль-Газави, Уильям Карлсон, Томас Стерлинг и Кэтрин Йелик. UPC: распределенное программирование общей памяти. John Wiley & Sons, 2005.
  9. ^ Консорциум UPC, Спецификации языка и библиотеки UPC, v1.3, Технический отчет Национальной лаборатории Лоуренса в Беркли LBNL-6623E, ноябрь 2013 г. https://doi.org/10.2172/1134233
  10. ^ Брэдфорд Л. Чемберлен, Чапел, Модели программирования для параллельных вычислений, под редакцией Павана Баладжи, MIT Press, ноябрь 2015 г.
  11. ^ Джон Бачан, Скотт Б. Баден, Стивен Хофмейр, Матиас Жаклин, Амир Камил, Дэн Боначеа, Пол Х. Харгроув, Хадия Ахмед. «UPC++: высокопроизводительная коммуникационная структура для асинхронных вычислений», на 33-м Международном симпозиуме IEEE по параллельной и распределенной обработке (IPDPS'19), 20–24 мая 2019 г. https://doi.org/10.25344/S4V88H
  12. ^ TA Johnson: Coarray C++. Труды 7-й Международной конференции по моделям программирования PGAS. стр. 54–66. PGAS'13 (2013),
  13. ^ Nieplocha, Jaroslaw; Harrison, Robert J.; Littlefield, Richard J. (1996). Глобальные массивы: модель программирования доступа к неоднородной памяти для высокопроизводительных компьютеров. Журнал суперкомпьютеров. 10 (2): 169–189.
  14. ^ K. Furlinger, C. Glass, A. Knupfer, J. Tao, D. Hunich и др. DASH: структуры данных и алгоритмы с поддержкой иерархической локальности. Семинары по параллельной обработке Euro-Par (2014).
  15. ^ P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra и др. X10: объектно-ориентированный подход к неоднородным кластерным вычислениям. Труды 20-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям (OOPSLA'05) (2005).
  16. ^ Кэтрин Йелик, Пол Хилфингер, Сьюзан Грэм, Дэн Боначеа, Джимми Су, Амир Камил, Каушик Датта, Филипп Колелла и Тонг Вэнь, «Параллельные языки и компиляторы: взгляд с точки зрения Titanium Experience», Международный журнал высокопроизводительных вычислительных приложений, 1 августа 2007 г., 21(3):266-290
  17. ^ Кэтрин Йелик, Сьюзан Грэм, Пол Хилфингер, Дэн Боначеа, Джимми Су, Амир Камил, Каушик Датта, Филипп Колелла, Тонг Вэнь, «Титан», Энциклопедия параллельных вычислений, под редакцией Дэвида Падуа, (Springer: 2011) Страницы: 2049-2055
  18. ^ Каллер, Д. Э., Дюссо, А., Голдштейн, С. К., Кришнамурти, А., Люметта, С., Фон Эйкен, Т. и Йелик, К. Параллельное программирование в Split-C. В Supercomputing'93: Труды конференции ACM/IEEE 1993 года по суперкомпьютерам (стр. 262-273). IEEE.
  19. ^ Боначеа Д., Харгроув П. GASNet-EX: Высокопроизводительная, портативная коммуникационная библиотека для Exascale Proceedings of Languages ​​and Compilers for Parallel Computing (LCPC'18). Октябрь 2018 г. https://doi.org/10.25344/S4QP4W