Egységes párhuzamos C

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é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 ]; }

Lásd még

Jegyzetek

  1. http://upc.gwu.edu/tutorials/UPC-SC05.pdf Archiválva : 2012. január 31., a Wayback Machine 21. diája

Linkek