Унифицированный параллельный C ( UPC ) - это расширение языка программирования C, предназначенное для высокопроизводительных вычислений на крупномасштабных параллельных машинах , в том числе с общим глобальным адресным пространством ( SMP и NUMA ) и с распределенной памятью (например, кластеры ). Программист представлен с одной общим, секционированным адресным пространством, где переменными может быть непосредственно считывать и записывать любой процессор , но каждый переменный физически связан с одним процессором. UPC использует одну программу, несколько данных (SPMD ) модель вычислений, в которой степень параллелизма фиксируется во время запуска программы, обычно с одним потоком выполнения на процессор.
Парадигма | параллельный , передача сообщений , императивный ( процедурный ), структурированный |
---|---|
Разработано | Консорциум UPC |
Стабильный выпуск | 2020.12.0 / 11 декабря 2020 г. |
Печатная дисциплина | статический , слабый , явный |
Операционные системы | Кроссплатформенность |
Веб-сайт | upc-lang |
Основные реализации | |
Clang UPC , GNU UPC , Компиляторы IBM XL UPC , HP UPC , Berkeley UPC , Michigan Tech MuPC , Cray UPC | |
Под влиянием | |
C , AC, Split-C , Препроцессор параллельного C |
Чтобы выразить параллелизм, UPC расширяет ISO C 99 следующими конструкциями:
- Модель явно параллельного выполнения
- Общее адресное пространство (
shared
квалификатор хранилища) с локальными для потока частями (обычные переменные) - Примитивы синхронизации и модель согласованности памяти
- Явные коммуникативные примитивы, например. грамм. upc_memput
- Примитивы управления памятью
Язык UPC развился из опыта с тремя другими более ранними языками, которые предлагали параллельные расширения ISO C 99: AC, Split-C и препроцессор Parallel C (PCP). UPC - это не надмножество этих трех языков, а скорее попытка выделить лучшие характеристики каждого из них. UPC сочетает в себе преимущества программируемости парадигмы программирования с общей памятью и контроль над компоновкой данных и производительность парадигмы программирования передачи сообщений .
Смотрите также
Внешние ссылки
- Официальный веб-сайт
- UPC в LBNL
- UPC в GWU
- GNU UPC
- Учебник UPC (2003)