Unified Parallel C - примеры и список расширений - PullRequest
4 голосов
/ 03 марта 2010

Где я могу найти примеры кода, написанного в "Unified Parallel C"?

Меня также интересуют нормативные документы по этому языку (стандарты, справочники, онлайн-книги и курсы). Какие расширения были добавлены в C для получения UPC?

Жив ли этот диалект или мертв?

Ответы [ 3 ]

3 голосов
/ 09 марта 2010

UPC все еще жив как исследовательский проект в Калифорнийском университете в Беркли и, вероятно, используется высокопроизводительными вычислительными средствами и национальными лабораториями, связанными с исследовательской группой. Вы можете получить последнюю версию, выпущенную в ноябре 2009 года, здесь . Документацию, образец кода и т. Д. Можно найти здесь . Спецификация языка здесь ; Есть много расширений поверх синтаксиса C99 для поддержки потоков и межпотокового взаимодействия в качестве объектов первого класса (возможно, не в самом строгом смысле «первого класса», но, безусловно, больше, чем в C, где вы вызываете непрозрачные библиотеки делать синхронизацию и общение).

UPC все еще используется в некоторых местах; Я не эксперт, но из того, что я могу сказать, использование UPC состоит из компилятора на основе GCC, среды выполнения и уровня обмена сообщениями GASNet, который работает поверх вашего сетевого стека. Похоже, они относительно хорошо поддерживаются на типах машин , для которых вы можете захотеть что-то вроде UPC. Я бы не назвал это огромным сообществом разработчиков, но если вы управляете большой параллельной машиной, стоит попробовать. Если вы просто хотите, чтобы что-то работало на вашем ноутбуке, настольном компьютере или сервере, есть множество других моделей параллельного программирования с коммерческой поддержкой, инструментами и т. Д.

2 голосов
/ 13 апреля 2014

UPC все еще очень жив в сообществе HPC.

Новая версия 1.3 спецификации языка / библиотеки была выпущена в ноябре 2013 года и доступна здесь:

https://upc -lang.org / UPC-документация

Основные компиляторы UPC уже (или скоро) выпустят версии, совместимые с 1.3.

Спецификация UPC написана как "diff" для C99, поэтому легко увидеть, что было добавлено. На высоком уровне это лингвистически несколько новых ключевых слов и некоторые расширения системы типов, чтобы приспособить модель памяти PGAS и многопоточность SPMD на уровне языка. Существует также большой (и растущий) набор библиотек для поддержки общих потребностей HPC в приложениях UPC.

Там больше информации о UPC:

http://upc.lbl.gov/

, где вы можете скачать бесплатный компилятор с открытым исходным кодом, работающий в самых разных системах. Загрузка исходного кода во время выполнения включает в себя библиотеку примеров программ, тестов и наборов тестов UPC.

2 голосов
/ 18 июня 2010

За исключением реализаций UPC на основе времени исполнения Berkley UPC:

Переводчик Berkley UPC-C http://upc.lbl.gov/download/source.shtml а также gcc-upc http://www.gccupc.org)

есть также проприетарные компиляторы от HP h30097.www3.hp.com/upc/ и Крей.

Я полагаю, что обе версии Cray и HP UPC имеют гарантии прогресса, в отличие от версий, производных от Berkley (это означает, что если вы пишете код в стиле спин-блокировки, вы должны явно вызывать bupc_relax, чтобы заставить среду выполнения прецессировать удаленную запись что бы вытащить тебя из цикла)

...