Часовня (язык программирования)
![]() | |
Парадигма | Объектно-ориентированный Разделенное глобальное адресное пространство Параллельное программирование |
---|---|
Разработано | Дэвид Каллахан, Ханс Зима, Брэд Чемберлен, Джон Плевяк |
Разработчик | Hewlett Packard Enterprise (ранее Cray Inc. ) |
Впервые появился | 2009 год |
Стабильная версия | 2.0.0 / 21 марта 2024 г |
Дисциплина набора текста | статический предполагаемый |
Платформа | мультиплатформенность, включая Amazon Web Services , HPE Cray EX |
ТЫ | Mac OS , Linux , POSIX , Windows (с Cygwin ), NetBSD |
Лицензия | Лицензия Апач 2.0 |
Расширения имен файлов | .чпл |
Веб-сайт | часовня-ланг |
Под влиянием | |
Да , С# , [1] C , Fortran , C++ , Java , HPF , ZPL , Cray MTA / XMT расширения для C и Fortran. [2] |
Chapel , Cascade High Productivity Language — язык параллельного программирования , разработанный Cray , [3] а затем Hewlett Packard Enterprise , которая приобрела Cray. Он разрабатывался в рамках проекта Cray Cascade, участника High программы DARPA Productivity Computing Systems (HPCS), целью которой было повышение производительности суперкомпьютеров к 2010 году. Он разрабатывается как проект с открытым исходным кодом под версией 2 лицензии Apache . [4]
Компилятор Chapel написан на C и C++ ( C++14 ). Бэкэнд (то есть оптимизатор) — это LLVM , написанный на C++. Python 3.7 или новее требуется для некоторых дополнительных компонентов, таких как тестовая система Chapel и c2chapel, инструмент для создания привязок C для Chapel. По умолчанию Chapel компилируется в двоичные исполняемые файлы, но он также может компилироваться в код C, и тогда LLVM не используется. Код Chapel можно скомпилировать в библиотеки, которые можно будет вызывать из C, Fortran или, например, Python. Chapel поддерживает программирование графических процессоров посредством генерации кода для графических процессоров NVIDIA и AMD. [5]
Цели [ править ]
Chapel стремится улучшить программируемость параллельных компьютеров в целом и системы Cascade в частности, обеспечивая более высокий уровень выражения, чем современные языки программирования, и улучшая разделение между алгоритмическим выражением и деталями реализации структуры данных .
Разработчики языка стремятся к тому, чтобы Chapel ликвидировала разрыв между нынешними практиками программирования высокопроизводительных вычислений (HPC), которых они описывают как пользователей Fortran, C или C++, пишущих процедурный код с использованием таких технологий, как OpenMP и MPI, с одной стороны, и недавно окончившими компьютерными программистами. которые предпочитают Java, Python или Matlab, и лишь некоторые из них имеют опыт работы с C++ или C. Chapel должна предложить повышение производительности, предлагаемое последним набором языков, не отталкивая при этом пользователей первого. [2]
Особенности [ править ]
Chapel поддерживает модель многопоточного параллельного программирования на высоком уровне, поддерживая абстракции для параллелизма данных , параллелизма задач и вложенного параллелизма . Это позволяет оптимизировать локальность данных и вычислений в программе с помощью абстракций для распределения данных и управляемого данными размещения подвычислений. Он допускает повторное использование кода и его универсальность благодаря объектно-ориентированным концепциям и общим функциям программирования. Например, Chapel позволяет объявлять локали . [6]
Хотя Chapel заимствует концепции из многих предыдущих языков, его параллельные концепции наиболее тесно основаны на идеях Performance Fortran (HPF), ZPL и расширениях Cray MTA для Fortran и C. High
См. также [ править ]
Примечания [ править ]
- ^ «Спецификация часовни (Благодарность)» (PDF) . Cray Inc. 01.10.2015 . Проверено 14 января 2016 г.
- ^ Jump up to: а б Чемберлен, Брэдфорд Л. «Краткий обзор часовни» (PDF) . Крей Инк . Проверено 22 апреля 2015 г.
- ^ Лайтфут, Дэвид Э. (2006). Модульные языки программирования: 7-я совместная конференция по модульным языкам . Спрингер. п. 20 . ISBN 978-3-540-40927-4 .
- ^ «Информация о лицензии часовни» . chapel-lang.org . Проверено 15 ноября 2015 г.
- ^ «Технический комментарий Chapel: программирование на графическом процессоре» . Хьюлетт Паккард Энтерпрайз. 28 сентября 2023 г. Проверено 3 ноября 2023 г.
- ^ Бонген Гу; Викуань Ю; Юнсик Квак (28–30 июня 2011 г.). «Перекрытие связи и вычислений посредством синхронизации задач в многолокальной среде Chapel». В Джеймс Дж. Пак, Лоуренс Т. Ян и Чанхун Ли (ред.). Информационные технологии будущего. Часть I: 6-я Международная конференция . Лутраки, Греция: Springer-Verlag. стр. 285–292. дои : 10.1007/978-3-642-22333-4_37 . ISBN 978-3-642-22332-7 .
Ссылки [ править ]
- Чемберлен, Брэдфорд Л. (2011). «Часовня (язык Cray Inc. HPCS)». В Падуе, Дэвид (ред.). Энциклопедия параллельных вычислений, том 4 . Спрингер. ISBN 9780387097657 .
Дальнейшее чтение [ править ]
- Брюкнер, Рич (6 августа 2014 г.). «Почему Chapel для параллельного программирования?» . ВнутриHPC . Проверено 23 марта 2015 г.
- Дун, Нэн; Таура, К. (2012). «Эмпирическое исследование производительности языка программирования Chapel». 2012 IEEE 26-й международный симпозиум по параллельной и распределенной обработке, семинары и докторский форум . ИИЭЭ . стр. 497–506. дои : 10.1109/IPDPSW.2012.64 . ISBN 978-1-4673-0974-5 . S2CID 5904611 .
- Падуя, Дэвид, изд. (2011). Энциклопедия параллельных вычислений . Том. 4. Springer Science & Business Media. стр. 249–256. ISBN 9780387097657 .
- Панагиотопулу, К.; Лойдл, HW (2016). «Прозрачный устойчивый параллелизм задач для часовни» Семинары симпозиума по параллельной и распределенной обработке (IPDPSW), , Международный симпозиум IEEE 2016 , Чикаго, Иллинойс. дои : 10.1109/IPDPSW.2016.102 ISBN 978-1-5090-3682-0