2010-03-03 1 views
4

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

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

Этот диалект жив или мертв?

ответ

3

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

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

2

За исключением UPC-версий UPC, выполняемых на UPC:

Berkley UPC-на-C переводчик http://upc.lbl.gov/download/source.shtml и НКУ-БЗК http://www.gccupc.org)

существуют также фирменные компиляторы от HP h30097.www3.hp.com/upc/ и Cray.

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

2

UPC по-прежнему очень жив в сообществе HPC.

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

https://upc-lang.org/upc-documentation

Основными компиляторы СКП уже (или скоро будет) выпустить 1.3-совместимые версии.

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

Там много больше информации на СКП по адресу:

http://upc.lbl.gov/

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

+0

Что относительно примеров с открытым исходным кодом для UPC? В каком проекте используется UPC? Насколько хорошо он заполняет очень большие машины (> 10 000 cpus)? – osgx

+1

Как отмечалось выше, существует коллекция примеров программ с открытым исходным кодом UPC, распределенных со временем выполнения Berkeley, например http://upc.lbl.gov/download/dist/upc-examples/. Существует много работ по приложениям UPC и масштабированию из разных групп в литературе. Группа IBM опубликовала результаты для> 100 тыс. Ядер. –