Unified Parallel C (UPC) | |
---|---|
Nyelvóra | párhuzamos, imperatív (eljárási), szerkezeti |
Megjelent | 1999 |
Szerző | UPC Konzorcium |
Kiadás | 2.12.2/2011-5-18 |
Típusrendszer | statikus |
Főbb megvalósítások | GNU UPC , IBM XL UPC fordítók , HP UPC , Berkeley UPC , Michigan Tech MuPC , Cray UPC |
Befolyásolt | C , AC, Split-C , Párhuzamos C előfeldolgozó |
Weboldal | upc.gwu.edu |
Az Unified Parallel C ( UPC ) a C programozási nyelv kiterjesztése, amelyet nagy teljesítményű számításokhoz terveztek nagyméretű párhuzamos számítógépeken, beleértve az SMP / NUMA rendszereket megosztott memóriával (egyetlen címterület) és elosztott memóriával (például fürtökön). . A programozó a teljes globális megosztott címtérhez ( PGAS ) hozzáférést kap, a benne tárolt változókat bármely processzor képes beolvasni és módosítani. Minden érték az egyik processzor fizikai memóriájában tárolódik. A UPC az SPMD (Single Program Multiple Data) modellt használja, amelyben a párhuzamosság mértékét a program indításakor rögzítik, jellemzően processzormagonként egy végrehajtási szál szintjén.
A párhuzamosság kifejezésére a UPC az ISO C 99 -hez a következő konstrukciókat adja:
A UPC-t jelentősen befolyásolta három korábbi ISO C 99 párhuzamos bővítmény: AC, Split-C és a Parallel C Preprocessor (PCP). A UPC nem ezek szuperszettje, inkább egy kísérlet a legjobbak kombinálására. A UPC egyesíti az osztott memória-paradigma egyszerű programozását az adatallokációs vezérlés szintjével és az üzenetküldési paradigma teljesítményével.
Példa párhuzamos skaláris szorzásra [1]
# include <upc_relaxed.h> # define N 1000 * SZÁLAK megosztott float A [ N ], B [ N ]; megosztott float MUL [ N ]; void skalár_mul_a_b () { int i ; upc_forall ( i = 0 ; i < N ; i ++ ; i ) MUL [ i ] = A [ i ] * B [ i ]; }elosztott és párhuzamos számítástechnikához _ | Szoftver|
---|---|
Szabványok, könyvtárak | |
Monitoring szoftver | |
Vezérlő szoftver |