Unified Parallel C - Unified Parallel C
Paradigma | paralelní , předávání zpráv , imperativní ( procedurální ), strukturovaný |
---|---|
Navrhl | Konsorcium UPC |
Stabilní uvolnění | 2020.12.0 / 11. prosince 2020
|
Psací disciplína | statické , slabé , zjevné |
OS | Cross-platform |
webová stránka | upc-lang |
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é
- Cilk
- Coarray Fortran
- Kaple
- X10
- Vysoce výkonný Fortran
- OpenMP
- Rozdělený globální adresní prostor
- Model paralelního programování
- Softwarová transakční paměť