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