Architettura di computer paralleli - Introduzione
Negli ultimi 50 anni, ci sono stati enormi sviluppi nelle prestazioni e nelle capacità di un sistema informatico. Ciò è stato possibile con l'aiuto della tecnologia VLSI (Very Large Scale Integration). La tecnologia VLSI consente di ospitare un gran numero di componenti su un singolo chip e di aumentare le frequenze di clock. Pertanto, più operazioni possono essere eseguite contemporaneamente, in parallelo.
L'elaborazione parallela è anche associata alla località e alla comunicazione dei dati. Parallel Computer Architecture è il metodo di organizzare tutte le risorse per massimizzare le prestazioni e la programmabilità entro i limiti dati dalla tecnologia e dal costo in ogni istante di tempo.
Perché l'architettura parallela?
L'architettura dei computer paralleli aggiunge una nuova dimensione allo sviluppo del sistema informatico utilizzando un numero sempre maggiore di processori. In linea di principio, le prestazioni ottenute utilizzando un gran numero di processori sono superiori alle prestazioni di un singolo processore in un dato momento.
Tendenze applicative
Con l'avanzamento della capacità hardware, è aumentata anche la domanda di un'applicazione ben performante, che a sua volta ha posto una domanda sullo sviluppo dell'architettura del computer.
Prima dell'era dei microprocessori, il sistema informatico ad alte prestazioni era ottenuto dalla tecnologia dei circuiti esotici e dall'organizzazione della macchina, che li rendeva costosi. Ora, il sistema informatico ad alte prestazioni si ottiene utilizzando più processori e le applicazioni più importanti e impegnative vengono scritte come programmi paralleli. Pertanto, per prestazioni più elevate è necessario sviluppare sia architetture parallele che applicazioni parallele.
Per aumentare le prestazioni di un'applicazione Speedup è il fattore chiave da considerare. Speedup su p processori è definito come -
$$ Speedup (p \ processors) \ equiv \ frac {Performance (p \ processors)} {Performance (1 \ processor)} $$Per il singolo problema risolto,
$$ performance \ di \ a \ computer \ system = \ frac {1} {Tempo \ necessario \ per \ completare \ il \ problema} $$ $$ Speedup \ _ {risolto \ problema} (p \ processori) = \ frac {Time (1 \ processor)} {Time (p \ processor)} $$Informatica scientifica e ingegneristica
L'architettura parallela è diventata indispensabile nell'informatica scientifica (come fisica, chimica, biologia, astronomia, ecc.) E nelle applicazioni di ingegneria (come la modellazione dei giacimenti, l'analisi del flusso d'aria, l'efficienza della combustione, ecc.). In quasi tutte le applicazioni, c'è un'enorme richiesta di visualizzazione dell'output computazionale che porta alla richiesta di sviluppo del calcolo parallelo per aumentare la velocità di calcolo.
Calcolo commerciale
Nell'informatica commerciale (come video, grafica, database, OLTP, ecc.) Sono necessari anche computer ad alta velocità per elaborare enormi quantità di dati entro un tempo specificato. Il desktop utilizza programmi multithread che sono quasi come i programmi paralleli. Ciò a sua volta richiede lo sviluppo di un'architettura parallela.
Tendenze tecnologiche
Con lo sviluppo della tecnologia e dell'architettura, c'è una forte domanda per lo sviluppo di applicazioni ad alte prestazioni. Gli esperimenti dimostrano che i computer paralleli possono funzionare molto più velocemente del massimo processore singolo sviluppato. Inoltre, i computer paralleli possono essere sviluppati entro i limiti della tecnologia e del costo.
La tecnologia principale utilizzata qui è la tecnologia VLSI. Pertanto, oggi sempre più transistor, gate e circuiti possono essere installati nella stessa area. Con la riduzione della dimensione della caratteristica VLSI di base, anche la frequenza di clock migliora in proporzione ad essa, mentre il numero di transistor cresce con il quadrato. Ci si può aspettare che l'uso di molti transistor contemporaneamente (parallelismo) abbia prestazioni molto migliori rispetto all'aumento della frequenza di clock
Le tendenze tecnologiche suggeriscono che il blocco di base a chip singolo darà una capacità sempre maggiore. Pertanto, aumenta la possibilità di posizionare più processori su un singolo chip.
Tendenze architettoniche
Lo sviluppo tecnologico decide cosa è fattibile; l'architettura converte il potenziale della tecnologia in prestazioni e capacità.Parallelism e localitysono due metodi in cui volumi maggiori di risorse e più transistor migliorano le prestazioni. Tuttavia, questi due metodi competono per le stesse risorse. Quando vengono eseguite più operazioni in parallelo, il numero di cicli necessari per eseguire il programma si riduce.
Tuttavia, sono necessarie risorse per supportare ciascuna delle attività concorrenti. Le risorse sono necessarie anche per allocare la memoria locale. Le migliori prestazioni si ottengono con un piano d'azione intermedio che utilizza le risorse per utilizzare un grado di parallelismo e un grado di località.
In generale, la storia dell'architettura dei computer è stata divisa in quattro generazioni che hanno seguito le tecnologie di base:
- Tubi a vuoto
- Transistors
- Circuiti integrati
- VLSI
Fino al 1985, la durata è stata dominata dalla crescita del parallelismo a livello di bit. Microprocessori a 4 bit seguiti da 8 bit, 16 bit e così via. Per ridurre il numero di cicli necessari per eseguire un'operazione completa a 32 bit, la larghezza del percorso dati è stata raddoppiata. Successivamente, sono state introdotte le operazioni a 64 bit.
La crescita in instruction-level-parallelismha dominato dalla metà degli anni '80 alla metà degli anni '90. L'approccio RISC ha mostrato che era semplice pipeline le fasi di elaborazione delle istruzioni in modo che in media un'istruzione venga eseguita in quasi ogni ciclo. La crescita della tecnologia dei compilatori ha reso le pipeline di istruzioni più produttive.
A metà degli anni '80, i computer basati su microprocessore erano costituiti da
- Un'unità di elaborazione intera
- Un'unità in virgola mobile
- Un controller della cache
- SRAM per i dati della cache
- Archiviazione dei tag
Con l'aumento della capacità del chip, tutti questi componenti sono stati fusi in un unico chip. Pertanto, un singolo chip consisteva in hardware separato per operazioni aritmetiche su interi, operazioni in virgola mobile, operazioni di memoria e operazioni di ramo. Oltre al pipeline di singole istruzioni, recupera più istruzioni alla volta e le invia in parallelo a diverse unità funzionali, ove possibile. Questo tipo di parallelismo a livello di istruzione viene chiamatosuperscalar execution.