Unified Parallel C
Unified Parallel C (UPC) è un'estensione del linguaggio di programmazione C sviluppato per ottenere elevate prestazioni di calcolo in macchine basate su parallelismo massivo comprese le macchine con indirizzamento della memoria globale tipo quelle SMP o quella basate su architettura NUMA e per le macchine a memoria distribuita come i cluster. Il programmatore vede una singola memoria condivisa da tutto il sistema, anche se ogni variabile è fisicamente assegnata a un singolo processore. UPC utilizza un modello di elaborazione Single Program Multiple Data (SPMD), in questo modello di programmazione il parallelismo del sistema è deciso all'avvio dei programma, tipicamente a ogni processore viene assegnato un singolo Thread.
Unified Parallel C linguaggio di programmazione | |
---|---|
Autore | UPC Consortium |
Data di origine | 1999 |
Ultima versione | 1.3 di novembre 2013 |
Paradigmi | calcolo parallelo |
Influenzato da | C |
Implementazione di riferimento | |
Sistema operativo | Multipiattaforma |
Sito web | upc.lbl.gov/ |
Per permettere l'esplicitazione del parallelismo IPC estende il C ISO 99 con i seguenti costruttori:
- Un modello di esecuzione a parallelismo esplicito
- Uno spazio di memoria condivisa
- Primitive di sincronizzazione e un modello della coerenza della memoria
- Primitive di gestione della memoria.
L'UPC si è evoluto dall'esperienza del gruppo di programmatori che utilizzando altre estensioni del C per la gestione delle macchine parallele come lo Split-X e il Parallel C Prepocessor (PCP) ne saggiarono le limitazioni e decisero di superarle. L'UPC non raccoglie tutte le funzionalità dei precedenti linguaggi ma piuttosto cerca di raccogliere le caratteristiche migliori dei linguaggi in una struttura coerente e solida. UPC combina la semplicità di programmare un sistema a memoria condivisa che consente una gestione diretta dei dati con le prestazioni di un sistema basato sul passaggio di messaggi.
Voci correlate
modificaCollegamenti esterni
modifica- Sito ufficiale, su upc.lbl.gov.
Controllo di autorità | LCCN (EN) sh2004007252 · J9U (EN, HE) 987007563922705171 |
---|