Unified Parallel C

Unified Parallel C (UPC)
Kieliluokka rinnakkainen, pakottava (menettelyllinen), rakenteellinen
Esiintyi 1999
Tekijä UPC-konsortio
Vapauta 2.12.2011-5-18
Tyyppijärjestelmä staattinen
Tärkeimmät toteutukset GNU UPC , IBM XL UPC Compilers , HP UPC , Berkeley UPC , Michigan Tech MuPC , Cray UPC
Vaikutettu C , AC, Split-C , Rinnakkais C-esiprosessori
Verkkosivusto upc.gwu.edu

Unified Parallel C ( UPC ) on C-ohjelmointikielen laajennus, joka on suunniteltu tehokkaaseen laskemiseen suurissa rinnakkaisissa tietokoneissa, mukaan lukien SMP / NUMA-järjestelmät, joissa on jaettu muisti (yksi osoitetila) ja hajautettu muisti (esimerkiksi klustereissa). . Ohjelmoija saa pääsyn koko globaaliin jaettuun osoiteavaruuteen ( PGAS ), siihen tallennettuja muuttujia voi lukea ja muokata mikä tahansa prosessori. Jokainen arvo tallennetaan yhden prosessorin fyysiseen muistiin. UPC käyttää SPMD (Single Program Multiple Data) -mallia, jossa rinnakkaisuuden aste on kiinteä ohjelman käynnistyksen yhteydessä, tyypillisesti yhden suoritussäikeen tasolla prosessorin ydintä kohden.

Ilmaistakseen rinnakkaisuutta UPC lisää ISO C 99 :ään konstruktit:

UPC:hen vaikutti merkittävästi kolme aikaisempaa ISO C 99 rinnakkaislaajennusta: AC, Split-C ja Parallel C Preprocessor (PCP). UPC ei ole niiden supersetti, vaan pikemminkin yritys yhdistää niiden parhaat puolet. UPC yhdistää ohjelmoinnin helppouden jaetun muistin paradigmassa datan allokoinnin hallinnan tasoon ja viestintäparadigman suorituskykyyn.

Esimerkki

Esimerkki rinnakkaisesta skalaarikerronnasta [1]

# sisältää <upc_relaxed.h> # define N 1000 * KIEREET jaettu float A [ N ], B [ N ]; jaettu float MUL [ N ]; void scalar_mul_a_b () { int i ; upc_forall ( i = 0 ; i < N ; i ++ ; i ) MUL [ i ] = A [ i ] * B [ i ]; }

Katso myös

Muistiinpanot

  1. http://upc.gwu.edu/tutorials/UPC-SC05.pdf Arkistoitu 31. tammikuuta 2012 Wayback Machinen diassa 21

Linkit