Унифицированный параллельный C - Unified Parallel C
Парадигма | параллельный , передача сообщений , императивный ( процедурный ), структурированный |
---|---|
Разработано | Консорциум 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 |
Unified Parallel C ( UPC ) - это расширение языка программирования C, предназначенное для высокопроизводительных вычислений на крупномасштабных параллельных машинах , в том числе с общим глобальным адресным пространством ( SMP и NUMA ) и с распределенной памятью (например, кластеры ). Программист представлен с одной общим, секционированным адресным пространством, где переменными может быть непосредственно считывать и записывать любой процессор , но каждый переменный физически связан с одним процессором. UPC использует модель вычислений с одной программой и несколькими данными ( SPMD ), в которой степень параллелизма фиксируется во время запуска программы, обычно с одним потоком выполнения на процессор.
Чтобы выразить параллелизм, UPC расширяет ISO C 99 следующими конструкциями:
- Модель явно параллельного выполнения
- Общее адресное пространство (
shared
квалификатор хранилища) с локальными для потока частями (обычные переменные) - Примитивы синхронизации и модель согласованности памяти
- Явные коммуникативные примитивы, например. грамм. upc_memput
- Примитивы управления памятью
Язык UPC развился из опыта работы с тремя другими более ранними языками, которые предлагали параллельные расширения ISO C 99: AC, Split-C и препроцессор Parallel C (PCP). UPC - это не расширенный набор этих трех языков, а скорее попытка выделить лучшие характеристики каждого из них. UPC сочетает в себе преимущества программируемости парадигмы программирования с общей памятью и контроль над компоновкой данных и производительность парадигмы программирования передачи сообщений .
Смотрите также
- Силк
- Coarray Fortran
- Часовня
- X10
- Высокопроизводительный Фортран
- OpenMP
- Разделенное глобальное адресное пространство
- Модель параллельного программирования
- Программная транзакционная память