Ujednolicony równoległy C

Ujednolicony równoległy C (UPC)
Paradygmat równoległe , przekazywanie wiadomości , imperatywne ( proceduralne ), ustrukturyzowane
Zaprojektowany przez Konsorcjum UPC
Wersja stabilna
2022.10.0/28 października 2022 ( 2022-10-28 )
Dyscyplina pisania statyczny , słaby , oczywisty
system operacyjny Międzyplatformowe
Strona internetowa upc-lang .org
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ż

Linki zewnętrzne