Разделенное глобальное адресное пространство
В информатике разделенное глобальное адресное пространство ( PGAS ) представляет собой парадигму модели параллельного программирования . Типичным примером PGAS являются коммуникационные операции, включающие абстракцию адресного пространства глобальной памяти , которая логически разделена, где часть является локальной для каждого процесса, потока или обрабатывающего элемента . [ 1 ] [ 2 ] Новизна PGAS заключается в том, что части общего пространства памяти могут быть привязаны к конкретному процессу, тем самым используя локальность ссылок для повышения производительности. Модель памяти PGAS представлена в различных языках параллельного программирования и библиотеках, включая: Coarray Fortran , Unified Parallel C , Split-C , Fortress , Chapel , X10 , UPC++ , Coarray C++ , Global Arrays , DASH и SHMEM . Парадигма PGAS теперь является интегрированной частью языка Фортран , начиная с Фортрана 2008 года, который стандартизировал массивы.
Различные языки и библиотеки, предлагающие модель памяти PGAS, сильно различаются в других деталях, таких как базовый язык программирования и механизмы, используемые для выражения параллелизма. Многие системы PGAS сочетают в себе преимущества стиля программирования SPMD для систем с распределенной памятью (используемого MPI ) с семантикой ссылок на данные систем с общей памятью. В отличие от передачи сообщений , модели программирования PGAS часто предлагают операции односторонней связи, такие как удаленный доступ к памяти (RMA), при котором один обрабатывающий элемент может напрямую обращаться к памяти с привязкой к другому (потенциально удаленному) процессу без явного семантического участия со стороны другого процесса. пассивный целевой процесс. PGAS обеспечивает большую эффективность и масштабируемость, чем традиционные подходы с общей памятью и плоским адресным пространством, поскольку локальность данных , специфичная для оборудования, может быть явно раскрыта при семантическом разделении адресного пространства.
Вариант парадигмы PGAS, асинхронное секционированное глобальное адресное пространство ( APGAS ) дополняет модель программирования средствами для локального и удаленного создания асинхронных задач. [ 3 ] Два языка программирования, использующие эту модель, — Chapel и X10 .
Примеры
[ редактировать ]- Коаррей Фортран [ 4 ] [ 5 ] теперь интегрированная часть языка Фортрана 2008 г. [ 6 ]
- Унифицированный параллельный C [ 7 ] [ 8 ] [ 9 ] явно параллельный диалект SPMD языка программирования ISO C.
- Часовня [ 10 ] параллельный язык, первоначально разработанный Крэем в рамках проекта DARPA HPCS.
- УПК++ , [ 11 ] Библиотека шаблонов C++ , обеспечивающая операции связи PGAS, предназначенные для поддержки высокопроизводительных вычислений на экзафлопсных суперкомпьютерах, включая удаленный доступ к памяти (RMA) и удаленный вызов процедур (RPC).
- Коаррей С++ [ 12 ] библиотека C++, разработанная Cray, обеспечивающая близкий аналог функциональности Coarray в Фортране.
- Глобальные массивы [ 13 ] библиотека, поддерживающая параллельные научные вычисления на распределенных массивах
- БРОСАТЬСЯ [ 14 ] библиотека шаблонов C++ для распределенных структур данных с поддержкой иерархической локальности.
- SHMEM - семейство библиотек, поддерживающих параллельные научные вычисления на распределенных массивах.
- х10 [ 15 ] параллельный язык, разработанный IBM в рамках проекта DARPA HPCS.
- Fortress — параллельный язык, разработанный Sun Microsystems в рамках проекта DARPA HPCS.
- Титан [ 16 ] [ 17 ] явно параллельный диалект Java, разработанный в Калифорнийском университете в Беркли для поддержки высокопроизводительных научных вычислений на крупномасштабных мультипроцессорах.
- Сплит-С [ 18 ] параллельное расширение языка программирования C , которое поддерживает эффективный доступ к глобальному адресному пространству.
- Архитектура Adapteva Epiphany представляет собой многоядерную сеть на процессоре с блокнотной памятью , адресуемой между ядрами.
См. также
[ редактировать ]- Параллелизм
- Неблокирующая синхронизация
- Неравномерный доступ к памяти (NUMA)
- Архитектура кэш-памяти (COMA)
Внешние ссылки
[ редактировать ]- Официальный сайт
- Введение в модель разделенного глобального адресного пространства
- Программирование в модели разделенного глобального адресного пространства. Архивировано 12 июня 2010 г. в Wayback Machine (2003 г.).
- Система связи GASNet - предоставляет программную инфраструктуру для языков PGAS в высокопроизводительных сетях. [ 19 ]
Ссылки
[ редактировать ]- ^ Алмаси, Джордж. «Языки PGAS (разделенного глобального адресного пространства)». , Энциклопедия параллельных вычислений, Springer, (2011): 1539–1545. https://doi.org/10.1007/978-0-387-09766-4_210
- ^ Кристиан Коарфа; Юрий Доценко; Джон Меллор-Крамми, «Оценка языков глобального адресного пространства: совместный массив Fortran и унифицированный параллельный C»
- ^ Тим Ститт, «Введение в модель программирования разделенного глобального адресного пространства (PGAS)»
- ^ Нумрич, Р.В., Рид, Дж., Со-массив Фортрана для параллельного программирования . ACM SIGPLAN Fortran Forum 17 (2), 1–31 (1998).
- ^ Дж. Рид: Coarrays в следующем стандарте Фортрана . SIGPLAN Fortran Forum 29 (2), 10–27 (июль 2010 г.)
- ^ GCC вики, поддержка Coarray в gfortran, как указано в стандарте Fortran 2008.
- ^ В. Чен, Д. Бонача, Дж. Дуэлл, П. Хасбэндс, К. Янку, К. Йелик. Анализ производительности компилятора UPC Беркли, 17-я ежегодная международная конференция по суперкомпьютерам (ICS), 2003 г. https://doi.org/10.1145/782814.782825.
- ^ Тарек Эль-Газави, Уильям Карлсон, Томас Стерлинг и Кэтрин Йелик. UPC: программирование с распределенной общей памятью . Джон Уайли и сыновья, 2005.
- ^ Консорциум UPC, Спецификации языка и библиотеки UPC, v1.3 , Технический отчет Национальной лаборатории Лоуренса Беркли LBNL-6623E, ноябрь 2013 г. https://doi.org/10.2172/1134233
- ^ Брэдфорд Л. Чемберлен, Часовня , Модели программирования для параллельных вычислений , под редакцией Павана Баладжи, MIT Press, ноябрь 2015 г.
- ^ Джон Бачан, Скотт Б. Баден, Стивен Хофмейр, Матиас Жаклин, Амир Камил, Дэн Боначеа, Пол Х. Харгроув, Хадия Ахмед. « UPC++: высокопроизводительная коммуникационная платформа для асинхронных вычислений », На 33-м Международном симпозиуме IEEE по параллельной и распределенной обработке (IPDPS'19), 20–24 мая 2019 г. https://doi.org/10.25344/S4V88H
- ^ Т.А. Джонсон: Coarray C++ . Материалы 7-го Международная конференция по моделям программирования PGAS. стр. 54–66. ПГАС'13 (2013),
- ^ Неплоча, Ярослав; Харрисон, Роберт Дж.; Литтлфилд, Ричард Дж. (1996). Глобальные массивы: модель программирования неоднородного доступа к памяти для высокопроизводительных компьютеров . Журнал суперкомпьютеров. 10 (2): 169–189.
- ^ К. Фёрлингер, К. Гласс, А. Кнупфер, Дж. Тао, Д. Хунич и др. DASH: Структуры данных и алгоритмы с поддержкой иерархической локальности . Семинары по параллельной обработке Euro-Par (2014).
- ^ П. Чарльз, К. Гротхофф, В. Сарасват, К. Донава, А. Кильстра и др. X10: объектно-ориентированный подход к неоднородным кластерным вычислениям . Материалы 20-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям (OOPSLA'05) (2005).
- ^ Кэтрин Йелик, Пол Хилфингер, Сьюзен Грэм, Дэн Боначеа, Джимми Су, Амир Камил, Каушик Датта, Филип Колелла и Тонг Вен, «Параллельные языки и компиляторы: взгляд из опыта Titanium» , Международный журнал приложений для высокопроизводительных вычислений , 1 августа 2007 г., 21(3):266-290
- ^ Кэтрин Йелик, Сьюзан Грэм, Пол Хилфингер, Дэн Боначеа, Джимми Су, Амир Камил, Каушик Датта, Филипп Колелла, Тонг Вен, «Титан» , Энциклопедия параллельных вычислений , под редакцией Дэвида Падуа, (Springer: 2011) Страниц: 2049 -2055
- ^ Каллер, Д.Э., Дюссо, А., Гольдштейн, С.К., Кришнамурти, А., Луметта, С., Фон Эйкен, Т., и Йелик, К. Параллельное программирование в Split-C . В Supercomputing'93: Материалы конференции ACM/IEEE 1993 года по суперкомпьютерам (стр. 262–273). IEEE.
- ^ Боначеа Д., Харгроув П. GASNet-EX: Высокопроизводительная портативная коммуникационная библиотека для экзафлопсных исследований языков и компиляторов для параллельных вычислений (LCPC'18). Октябрь 2018 г. https://doi.org/10.25344/S4QP4W .