Unified Parallel C

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Unified Parallel C
linguaggio di programmazione
AutoreUPC Consortium
Data di origine1999
Ultima versione1.3 di novembre 2013
Paradigmicalcolo parallelo
Influenzato daC
Implementazione di riferimento
Sistema operativoMultipiattaforma
Sito webupc.lbl.gov/

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.

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[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàLCCN (ENsh2004007252 · J9U (ENHE987007563922705171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica