Unified Parallel C - Unified Parallel C

Unified Parallel C (UPC)
Paradigma paralelní , předávání zpráv , imperativní ( procedurální ), strukturovaný
Navrhl Konsorcium UPC
Stabilní uvolnění
2020.12.0 / 11. prosince 2020  ( 2020-12-11 )
Psací disciplína statické , slabé , zjevné
OS Cross-platform
webová stránka upc-lang .org
Hlavní implementace
Clang UPC , GNU UPC , kompilátory IBM XL UPC , HP UPC , Berkeley UPC , Michigan Tech MuPC , Cray UPC
Ovlivněno
C , AC, Split-C , paralelní C preprocesor

Unified Parallel C ( UPC ) je rozšíření programovacího jazyka C určené pro vysoce výkonné výpočty na paralelních strojích velkého rozsahu , včetně strojů se společným globálním adresním prostorem ( SMP a NUMA ) a strojů s distribuovanou pamětí (např. Klastry ). Programátor je uveden jeden sdílený, dělené adresového prostoru, kde proměnné mohou být přímo číst a zapisovat jakýmkoli procesorem , ale každá proměnná je fyzicky spojeno s jediným procesorem. UPC používá jeden výpočetní model s více daty ( SPMD ), ve kterém je množství paralelismu fixováno v době spuštění programu, obvykle s jediným podprocesem provedení na procesor.

Aby bylo možné vyjádřit paralelismus, UPC rozšiřuje ISO C 99 o následující konstrukce:

  • Explicitně paralelní model provedení
  • Sdílený adresní prostor ( shared kvalifikátor úložiště) s místními vlákny (normální proměnné)
  • Synchronizační primitiva a model konzistence paměti
  • Explicitní komunikační primitiva, např. G. upc_memput
  • Primitivy správy paměti

Jazyk UPC se vyvinul ze zkušeností se třemi dalšími staršími jazyky, které navrhovaly paralelní rozšíření ISO C 99: AC, Split-C a Parallel C preprocesor (PCP). UPC není nadmnožinou těchto tří jazyků, ale spíše pokusem destilovat ty nejlepší vlastnosti každého z nich. UPC kombinuje výhody programovatelnosti paradigmatu sdílené paměti s programováním a kontrolu nad rozložením dat a výkonem paradigmatu předávání zpráv .

Viz také

externí odkazy