Ujednolicony równoległy C
Paradygmat | równoległe , przekazywanie wiadomości , imperatywne ( proceduralne ), ustrukturyzowane |
---|---|
Zaprojektowany przez | Konsorcjum UPC |
Wersja stabilna | 2022.10.0/28 października 2022
|
Dyscyplina pisania | statyczny , słaby , oczywisty |
system operacyjny | Międzyplatformowe |
Strona internetowa | |
Główne implementacje | |
Clang UPC , GNU UPC , IBM XL UPC Compilers , HP UPC , Berkeley UPC , Michigan Tech MuPC , Cray UPC | |
Pod wpływem | |
C , AC , Split-C , Parallel C Preprocessor |
Unified Parallel C ( UPC ) to rozszerzenie języka programowania C przeznaczone do wysokowydajnych obliczeń na wielkoskalowych maszynach równoległych , w tym tych ze wspólną globalną przestrzenią adresową ( SMP i NUMA ) oraz tych z pamięcią rozproszoną (np. klastry ). Programista ma do dyspozycji pojedynczą , podzieloną na partycje globalną przestrzeń adresową ; gdzie wspólne zmienne mogą być bezpośrednio odczytywane i zapisywane przez dowolne procesor , ale każda zmienna jest fizycznie powiązana z pojedynczym procesorem. UPC używa z jednym programem i wieloma danymi ( SPMD ), w którym ilość równoległości jest ustalana w czasie uruchamiania programu, zwykle z jednym wątkiem wykonania na procesor.
Aby wyrazić równoległość, UPC rozszerza ISO C 99 o następujące konstrukcje:
- Wyraźnie równoległy model wykonania
- Współdzielona przestrzeń adresowa ( kwalifikator
współdzielonej
pamięci masowej) z częściami lokalnymi wątków (zwykłe zmienne) - Prymitywy synchronizacji i model spójności pamięci
- Jawne prymitywy komunikacji, np. G. upc_memput
- Prymitywy zarządzania pamięcią
Język UPC wyewoluował z doświadczeń z trzema innymi wcześniejszymi językami, które proponowały równoległe rozszerzenia ISO C 99: AC, Split-C i preprocesor Parallel C (PCP). UPC nie jest nadzbiorem tych trzech języków, ale raczej próbą wyodrębnienia najlepszych cech każdego z nich. UPC łączy w sobie zalety programowalności paradygmatu programowania z pamięcią współdzieloną oraz kontrolę nad układem danych i wydajnością paradygmatu programowania przekazywania komunikatów .
Zobacz też
- Cilk
- Coarray Fortran
- Kaplica
- X10
- Fortran o wysokiej wydajności
- OpenMP
- Partycjonowana globalna przestrzeń adresowa
- Model programowania równoległego
- Pamięć transakcyjna oprogramowania