Come configurare smartphone e PC. Portale informativo

Architettura SMP. Vantaggi e svantaggi

Architettura SMP

Architettura SMP (multiprocessing simmetrico) - architettura multiprocessore simmetrica. La caratteristica principale dei sistemi con architettura SMP è la presenza di una memoria fisica comune condivisa da tutti i processori.

La memoria è un modo per trasferire messaggi tra processori, mentre tutti i dispositivi informatici quando vi accedono hanno uguali diritti e lo stesso indirizzamento per tutte le celle di memoria. Ecco perché l'architettura SMP è chiamata simmetrica.

I principali vantaggi dei sistemi SMP:

Semplicità e versatilità per la programmazione. L'architettura SMP non impone restrizioni al modello di programmazione utilizzato per creare l'applicazione: di solito viene utilizzato un modello di ramo parallelo, in cui tutti i processori funzionano in modo completamente indipendente l'uno dall'altro, ma possono essere implementati anche modelli che utilizzano la comunicazione tra processori. L'uso della memoria condivisa aumenta la velocità di tale scambio; l'utente ha inoltre accesso all'intera quantità di memoria contemporaneamente. Per i sistemi SMP ci sono relativamente mezzi efficaci parallelizzazione automatica.

Facilità d'uso. In genere, i sistemi SMP utilizzano un sistema di raffreddamento basato sull'aria condizionata, che ne facilita la manutenzione.

Relativamente no alto prezzo.

Screpolatura:

Sistemi con memoria condivisa costruiti sul bus di sistema sono scarsamente scalabili
Questo importante inconveniente dei sistemi SMP non consente loro di essere considerati veramente promettenti. Le ragioni della scarsa scalabilità sono che il bus è attualmente in grado di elaborare solo una transazione, con conseguenti problemi di risoluzione dei conflitti quando più processori accedono simultaneamente alle stesse aree di memoria fisica condivisa.

Architettura MPP

Architettura MPP (elaborazione parallela massiccia) - architettura massicciamente parallela. caratteristica principale Questa architettura significa che la memoria è fisicamente separata. In questo caso, il sistema è costruito da singoli moduli contenente processore, banca locale memoria operativa(OP), due processori di comunicazione (router) o un adattatore di rete, a volte - dischi rigidi e/o altri dispositivi di input/output.

Vantaggio principale:

Il vantaggio principale dei sistemi con memoria condivisa è la buona scalabilità: a differenza dei sistemi SMP, nelle macchine con memoria condivisa ogni processore ha accesso solo alla propria memoria locale, e quindi non è necessaria la sincronizzazione orologio per orologio dei processori. Quasi tutti i record di prestazione oggi vengono stabiliti su macchine esattamente con questa architettura, composta da diverse migliaia di processori (ASCI Red, ASCI Blue Pacific).

Screpolatura:

La mancanza di memoria condivisa riduce significativamente la velocità della comunicazione tra processori, poiché non esiste un ambiente comune per la memorizzazione dei dati destinati allo scambio tra processori. Sono necessarie tecniche di programmazione speciali per implementare lo scambio di messaggi tra processori.
Ciascun processore può utilizzare solo una quantità limitata di banco di memoria locale.
A causa di queste carenze architetturali, è necessario uno sforzo significativo per sfruttare al massimo le risorse di sistema. Questo è ciò che determina il prezzo elevato Software per sistemi massivamente paralleli con memoria separata.

Architettura PvP

PVP (Parallel Vector Process) - architettura parallela con processori vettoriali.
La caratteristica principale dei sistemi PVP è la presenza di speciali processori vector-pipeline, che forniscono comandi dello stesso tipo per l'elaborazione di vettori di dati indipendenti, effettivamente eseguiti su dispositivi funzionali pipeline. Tipicamente, molti di questi processori (1-16) funzionano simultaneamente con la memoria condivisa (simile a SMP) in configurazioni multiprocessore. Diversi nodi di questo tipo possono essere collegati tramite uno switch (simile a MPP). Dal trasferimento dei dati a formato vettoriale viene eseguito molto più velocemente che in una macchina scalare (la velocità massima può essere 64 Gb/s, ovvero 2 ordini di grandezza più veloce che in una macchina scalare), quindi il problema dell'interazione tra i flussi di dati durante la parallelizzazione diventa insignificante. E ciò che è scarsamente parallelizzato sulle macchine scalari è ben parallelizzato sulle macchine vettoriali. Pertanto, i sistemi di architettura PVP possono essere macchine scopo generale(sistemi di uso generale). Tuttavia, poiché i processori vettoriali sono molto costosi, queste macchine non saranno ampiamente disponibili.

Architettura dei cluster

Un cluster è composto da due o più computer(spesso chiamati nodi) collegati da tecnologie di rete basato su un'architettura bus o switch e presentato agli utenti come un'unica risorsa informatica e informatica. Server, workstation e persino normali personal computer possono essere selezionati come nodi del cluster. Il vantaggio in termini di prestazioni del clustering diventa evidente quando un nodo si guasta: un altro nodo nel cluster può assumere il carico del nodo guasto senza che gli utenti notino alcuna interruzione dell'accesso.

Legge di Amdahl(Inglese) Legge di Amdahl, a volte anche Legge di Amdahl-Ware) - illustra la limitazione della crescita delle prestazioni del sistema informatico con un aumento del numero di computer. Gene Amdahl formulò la legge nel 1967, avendo scoperto una limitazione semplice nell'essenza, ma insormontabile nel contenuto, sulla crescita della produttività quando si parallelizzano i calcoli: “Nel caso in cui un compito è diviso in più parti, il tempo totale della sua esecuzione su un sistema parallelo non può essere inferiore al tempo di esecuzione del frammento più lungo." Secondo questa legge, l'accelerazione dell'esecuzione del programma dovuta alla parallelizzazione delle sue istruzioni su più computer è limitata dal tempo necessario per eseguire le sue istruzioni sequenziali.

Espressione matematica

Supponiamo di dover risolvere qualche problema computazionale. Supponiamo che il suo algoritmo sia tale che una quota del calcolo totale possa essere ottenuta solo tramite calcoli sequenziali e, di conseguenza, la quota possa essere idealmente parallelizzata (cioè il tempo di calcolo sarà inversamente proporzionale al numero di nodi coinvolti) . Quindi l'accelerazione ottenibile su un sistema informatico composto da processori, rispetto ad una soluzione a processore singolo, non supererà

Illustrazione

La tabella mostra quante volte più velocemente verrà eseguito il programma con la quota di calcoli sequenziali quando si utilizzano i processori. . Pertanto, se metà del codice è sequenziale, l'aumento totale non supererà mai due.

]Significato ideologico

La legge di Amdahl mostra che l'aumento dell'efficienza computazionale dipende dall'algoritmo del problema ed è limitato dall'alto per qualsiasi problema con . Non tutte le attività hanno senso aumentare il numero di processori in un sistema informatico.

Inoltre, se prendiamo in considerazione il tempo necessario per trasferire i dati tra i nodi del sistema informatico, la dipendenza del tempo di calcolo dal numero di nodi avrà un massimo. Ciò impone una limitazione alla scalabilità del sistema informatico, significa cioè che da un certo punto in poi l’aggiunta di nuovi nodi al sistema sarà aumento tempo di calcolo del compito.

Per i sistemi MIMD è attualmente generalmente accettata una classificazione basata sui metodi utilizzati per organizzare la RAM in questi sistemi. Secondo questa classificazione, prima di tutto, si distinguono sistemi informatici multiprocessore(o multiprocessori) o sistemi di elaborazione a memoria condivisa (multiprocessori, sistemi di memoria comune, sistemi di memoria condivisa) e sistemi informatici multicomputer(multicomputer) o sistemi informatici a memoria distribuita (multicomputer, sistemi a memoria distribuita). La struttura dei sistemi multiprocessore e multicomputer è mostrata in Fig. 1, dove si trova il processore, è il modulo di memoria.

Riso. 1. a) - struttura multiprocessore; b) – struttura di un multicomputer.

Multiprocessori.

Nei multiprocessori lo spazio degli indirizzi di tutti i processori è lo stesso. Ciò significa che se la stessa variabile si incontra nei programmi di più processori di un multiprocessore, per ottenere o modificare il valore di questa variabile, questi processori accederanno ad una cella fisica di memoria condivisa. Questa circostanza ha conseguenze sia positive che negative.

Da un lato, non è necessario spostare fisicamente i dati tra i programmi di commutazione, il che elimina il tempo impiegato nello scambio tra processori.

D’altro canto, poiché l’accesso simultaneo di più processori a dati condivisi può portare a risultati errati, sono necessari sistemi per sincronizzare i processi paralleli e garantire la coerenza della memoria. Poiché i processori necessitano di accedere alla memoria condivisa molto frequentemente, i requisiti di larghezza di banda dell'ambiente di comunicazione sono estremamente elevati.

Quest'ultima circostanza limita il numero di processori nei multiprocessori a diverse dozzine. La gravità del problema dell'accesso alla memoria condivisa può essere parzialmente alleviata dividendo la memoria in blocchi, che rendono possibile parallelizzare gli accessi alla memoria da vari processori.

Notiamo un altro vantaggio dei multiprocessori: un sistema multiprocessore opera sotto il controllo di una singola copia del sistema operativo (solitamente simile a UNIX) e non richiede personalizzazione ciascun nodo del processore.

I multiprocessori omogenei con uguale accesso (simmetrico) alla RAM condivisa sono solitamente chiamati sistemi SMP (sistemi con architettura multiprocessore simmetrica). I sistemi SMP sono apparsi come alternativa ai costosi sistemi multiprocessore basati su processori Vector-Pipeline e Processori Vector-Paralleli (vedi Fig. 2).


Multicomputer.

Grazie alla semplicità della loro architettura, i multicomputer sono attualmente i più diffusi. I multicomputer non condividono la memoria. Pertanto, lo scambio tra interprocessori in tali sistemi viene solitamente effettuato tramite rete di comunicazione utilizzando lo scambio di messaggi.

Ogni processore in un multicomputer ha uno spazio di indirizzi indipendente. Pertanto, la presenza di una variabile con lo stesso nome nei programmi diversi processori, porta all'accesso a cellule fisicamente diverse propria memoria questi processori. Questa circostanza richiede lo spostamento fisico dei dati tra i programmi di commutazione in diversi processori. Molto spesso, la maggior parte delle chiamate viene effettuata da ciascun processore alla propria memoria. Pertanto, i requisiti per l’ambiente di commutazione sono rilassati. Di conseguenza, il numero di processori nei sistemi multicomputer può raggiungere diverse migliaia, decine di migliaia e persino centinaia di migliaia.

Le prestazioni di picco dei più grandi sistemi di memoria condivisa sono inferiori alle prestazioni di picco dei più grandi sistemi di memoria distribuita; il costo dei sistemi con memoria condivisa è superiore al costo dei sistemi con memoria distribuita di prestazioni simili.

Vengono chiamati multicomputer omogenei con memoria distribuita sistemi informatici con architettura massivamente parallela(Sistemi MPP) - vedere Fig. 2.

Da qualche parte tra i sistemi SMP e i sistemi MPP ci sono i sistemi NUMA.


Sistemi cluster (cluster informatici).

Sistemi di cluster(cluster informatici) rappresentano di più opzione economica Sistemi MPP. Un cluster informatico è costituito da un insieme di personal computer o postazioni di lavoro uniti da una rete locale come mezzo di comunicazione. I cluster informatici verranno discussi in dettaglio più avanti.

Riso. 2. Classificazione dei multiprocessori e dei multicomputer.

Sistemi SMP

Tutti i processori del sistema SMP hanno accesso simmetrico alla memoria, ovvero La memoria del sistema SMP è la memoria UMA. Per simmetria intendiamo quanto segue: uguali diritti di tutti i processori per accedere alla memoria; lo stesso indirizzamento per tutti gli elementi di memoria; tempo di accesso uguale per tutti i processori del sistema alla memoria (senza tenere conto dei blocchi reciproci).

Struttura generale I sistemi SMP sono mostrati in Fig. 3. L'ambiente di comunicazione del sistema SMP è costruito sulla base di un bus di sistema ad alta velocità o di un interruttore ad alta velocità. Tranne processori identici e la memoria condivisa M, i dispositivi I/O sono collegati allo stesso bus o interruttore.

L'apparente semplicità dei sistemi SMP nasconde notevoli problemi, legati principalmente alla RAM. Il fatto è che attualmente la velocità della RAM è significativamente inferiore alla velocità del processore. Per colmare questa lacuna, i moderni processori sono dotati di memoria buffer ad alta velocità (memoria cache). La velocità di accesso a questa memoria è diverse decine di volte superiore alla velocità di accesso alla memoria principale del processore. Tuttavia, la presenza della memoria cache viola il principio della parità di accesso a qualsiasi punto della memoria, poiché i dati presenti nella memoria cache di un processore sono inaccessibili agli altri processori. Pertanto, dopo ogni modifica di una copia di una variabile situata nella memoria cache di un processore, è necessario eseguire una modifica sincrona di tale variabile stessa, situata nella memoria principale. Nei moderni sistemi SMP, la coerenza della cache è mantenuta dall'hardware o dal sistema operativo.

Riso. 3. Struttura generale del sistema SMP

I sistemi SMP più conosciuti sono i server e le workstation SMP di IBM, HP, Compaq, Dell, Fujitsu, ecc. Un sistema SMP funziona con un unico sistema operativo (molto spesso UNIX e simili).

A causa della larghezza di banda limitata dell’ambiente di comunicazione, i sistemi SMP non si adattano bene. Attualmente dentro sistemi reali non vengono utilizzate più di qualche dozzina di processori.

Una proprietà spiacevole e ben nota dei sistemi SMP è che il loro costo aumenta più velocemente delle prestazioni all'aumentare del numero di processori nel sistema.

Sistemi MPP.

I sistemi MPP sono costituiti da nodi processore contenenti un processore, un'unità RAM locale, un processore di comunicazione o un adattatore di rete e talvolta dischi rigidi e/o altri dispositivi di input/output. In effetti, tali moduli sono computer completi di tutte le funzionalità (vedere Fig. 4.). Accesso a un blocco di RAM di questo modulo ha solo un processore dello stesso modulo. I moduli interagiscono tra loro attraverso qualche mezzo di comunicazione. Sui sistemi MPP esistono due possibilità per il funzionamento del sistema operativo. In una versione, completa sistema operativo funziona solo su computer di controllo e ogni singolo modulo esegue una versione estremamente ridotta del sistema operativo, supportando solo le funzioni di base del kernel del sistema operativo. Nella seconda opzione, ogni modulo esegue un sistema operativo completamente simile a UNIX. Si noti che la necessità per ciascun processore di disporre di un sistema operativo MPP (in una forma o nell'altra) consente l'utilizzo solo di una quantità limitata di memoria per ciascun processore.

Rispetto ai sistemi SMP, l'architettura del sistema MPP elimina sia il problema dei conflitti di accesso alla memoria sia il problema della coerenza della cache.

Il vantaggio principale dei sistemi MPP è la buona scalabilità. Pertanto, i supercomputer della serie CRAY T3E sono in grado di scalare fino a 2048 processori. Quasi tutti i record di prestazione oggi vengono stabiliti su sistemi MPP costituiti da diverse migliaia di processori.

Riso. 4. Struttura generale del sistema MPP.

D'altra parte, la mancanza di memoria condivisa riduce significativamente la velocità della comunicazione tra processori nei sistemi MPP. Questa circostanza per i sistemi MPP porta in primo piano il problema dell'efficacia dell'ambiente di comunicazione.

Inoltre, i sistemi MPP richiedono tecniche di programmazione speciali per implementare lo scambio di dati tra processori. Ciò spiega il prezzo elevato del software per i sistemi MPP. Ciò spiega anche perché scrivere programmi paralleli efficienti per sistemi MPP è un compito più difficile che scrivere gli stessi programmi per sistemi SMP. Per un'ampia gamma di problemi per i quali sono noti algoritmi sequenziali ben provati, non è possibile costruire algoritmi paralleli efficienti per sistemi MPP.

Sistemi NUMA.

Logicamente accesso generale l'accesso ai dati può essere fornito anche con memoria fisicamente distribuita. In questo caso, la distanza tra diversi processori e diversi elementi di memoria è, in generale, diversa e la durata dell'accesso di diversi processori a diversi elementi di memoria è diversa. Quelli. La memoria di tali sistemi è la memoria NUMA.

Un sistema NUMA è solitamente costruito sulla base di nodi processore omogenei costituiti da elevato numero processori e unità di memoria. I moduli sono collegati utilizzando un mezzo di comunicazione ad alta velocità (vedere Fig. 5). È supportato un singolo spazio di indirizzi, l'accesso alla memoria remota è supportato nell'hardware, ad es. nella memoria di altri moduli. In questo caso, l'accesso alla memoria locale è molte volte più veloce che alla memoria remota. Essenzialmente, un sistema NUMA è un sistema MPP che utilizza i nodi SMP come elementi di calcolo separati.

Tra i sistemi NUMA si distinguono i seguenti tipi di sistemi:

  • Sistemi COMA, in cui solo la memoria cache locale dei processori viene utilizzata come RAM (architettura di memoria solo cache - COMA);
  • Sistemi CC-NUMA, in cui l'hardware garantisce la coerenza della memoria cache locale di diversi processori (cache-coherent NUMA - CC-NUMA);
  • Sistemi NCC-NUMA in cui l'hardware non supporta la coerenza della memoria cache locale di diversi processori (non-cache coherent NUMA - NCC-NUMA). A questo tipo Ciò include, ad esempio, il sistema Cray T3E.

Riso. 5. Struttura generale del sistema NUMA.

La disponibilità logica della memoria nei sistemi NUMA, da un lato, consente di lavorare con un unico spazio di indirizzi e, dall'altro, rende abbastanza semplice garantire un'elevata scalabilità del sistema. Questa tecnologia attualmente consente la creazione di sistemi contenenti fino a diverse centinaia di processori.

I sistemi NUMA sono prodotti in serie da molti aziende informatiche come server multiprocessore e detengono saldamente la leadership nella classe dei piccoli supercomputer.

15/02/1995 V. Pyatenok

Architettura a processore singolo Architettura a processore singolo modificata Architettura SMP Architettura router SMP proposta da Wellfleet Panoramica dell'architettura Dettagli sull'elaborazione dei pacchetti Riepilogo Letteratura I router si sono evoluti utilizzando tre diverse architetture: processore singolo, processore singolo modificato e multiprocessore simmetrico. Tutti e tre sono stati progettati per supportare applicazioni altamente critiche.

I router nel loro sviluppo hanno utilizzato tre diverse architetture: uniprocessore, uniprocessore modificato e multiprocessore simmetrico. Tutti e tre sono stati progettati per supportare applicazioni altamente critiche. Tuttavia, i requisiti principali di questi requisiti, vale a dire prestazioni elevate e scalabili, nonché un elevato livello di disponibilità, compresa la piena tolleranza ai guasti e il ripristino dei componenti non operativi ("hot standby"), non sono in grado di soddisfare nella stessa misura . L'articolo discute i vantaggi dell'architettura multiprocessore simmetrica.

Architettura a processore singolo

L'architettura a processore singolo utilizza diversi moduli di interfaccia di rete: ciò consente ulteriore flessibilità nella configurazione dei nodi. I moduli di interfaccia di rete sono collegati a un singolo processore centrale tramite un bus di sistema comune. Questo singolo processore si occupa di tutte le attività di elaborazione. E questi compiti lo sono livello moderno sviluppo reti aziendali complesso e vario: filtraggio e inoltro dei pacchetti, modifica necessaria delle intestazioni dei pacchetti, aggiornamenti delle tabelle di instradamento e indirizzi di rete, interpretazione dei pacchetti di controllo del servizio, risposte alle richieste SNMP, generazione di pacchetti di controllo, fornitura di altri servizi specifici come lo spoofing, ovvero l'impostazione di filtri speciali per ottenere caratteristiche di sicurezza e prestazioni di rete migliorate.

Questa soluzione architettonica tradizionale è la più semplice da implementare. Tuttavia, non è difficile immaginare le limitazioni alle quali saranno soggette le prestazioni e la disponibilità di un tale sistema.

Infatti, tutti i pacchetti provenienti da tutte le interfacce di rete devono essere elaborati da un unico processore centrale. Man mano che vengono aggiunte ulteriori interfacce di rete, le prestazioni diminuiscono notevolmente. Inoltre, ogni pacchetto deve viaggiare due volte lungo il bus: dal modulo "sorgente" al processore, quindi dal processore al modulo "ricevitore". Il pacchetto effettua questo percorso anche se è destinato alla stessa interfaccia di rete da cui proviene. Ciò porta anche ad un significativo calo delle prestazioni all'aumentare del numero di moduli di interfaccia di rete. Si tratta quindi di un classico collo di bottiglia.

Anche l'affidabilità è bassa. Se il processore centrale si guasta, la funzionalità del router nel suo insieme verrà interrotta. Inoltre, per tale architettura è impossibile implementare il “recupero a caldo” dalla riserva degli elementi di sistema danneggiati.

Le moderne implementazioni di questa architettura di router utilizzano in genere un processore RISC abbastanza potente e un front side bus ad alta velocità per superare i limiti delle prestazioni. Questo è un tentativo puramente energico di risolvere il problema: aumento della produttività a fronte di un grande investimento iniziale. Tuttavia, tali implementazioni non forniscono la scalabilità delle prestazioni e il loro livello di affidabilità è predeterminato dall'affidabilità del processore.

Architettura a processore singolo modificata

Per superare alcune delle carenze sopra menzionate dell'architettura monoprocessore, è stata inventata la sua modifica. L'architettura sottostante è preservata: i moduli di interfaccia sono collegati a un singolo processore tramite un bus di sistema comune. Tuttavia, ciascuno dei moduli di interfaccia di rete include uno speciale processore periferico per alleggerire almeno parzialmente processore.

I processori periferici sono, di regola, microprocessori bit-slace o universali che filtrano e instradano i pacchetti destinati all'interfaccia di rete dello stesso modulo da cui sono entrati nel router. (Sfortunatamente, molti disponibili in attualmente le implementazioni possono raggiungere questo obiettivo solo per determinati tipi di pacchetti, come i frame Ethernet, ma non IEEE 802.3.

Il processore centrale è ancora responsabile di quei compiti che non possono essere delegati al processore periferico (incluso il routing tra i moduli, le operazioni a livello di sistema, l'amministrazione e la gestione). Pertanto, l’ottimizzazione delle prestazioni ottenuta in questo modo è piuttosto limitata (a dire il vero, in alcuni casi, con una corretta progettazione della rete, si possono ottenere buoni risultati). Allo stesso tempo, nonostante una leggera riduzione del numero di pacchetti trasmessi sul bus di sistema, rimane ancora un grosso collo di bottiglia.

L'inclusione dei processori periferici nell'architettura non migliora la disponibilità del router nel suo complesso.

Architettura SMP

L'architettura multiprocessore simmetrica non presenta gli svantaggi inerenti alle architetture sopra citate. In questo caso la potenza di calcolo è completamente distribuita tra tutti i moduli di interfaccia di rete.

Ogni modulo di interfaccia di rete dispone del proprio modulo processore dedicato, che esegue tutte le attività relative al routing. In questo caso, tutte le tabelle di routing, un'altra informazione necessaria, così come il software che implementa i protocolli, vengono replicati (ovvero copiati) su ciascun modulo processore. Quando un modulo processore riceve informazioni di instradamento, aggiorna la propria tabella e quindi propaga gli aggiornamenti a tutti gli altri moduli processore.

Questa architettura, ovviamente, fornisce una scalabilità quasi lineare (se trascuriamo i costi di replica e la larghezza di banda del canale di comunicazione tra i moduli). Ciò, a sua volta, significa la prospettiva di una significativa espansione della rete senza un notevole calo delle prestazioni. Se necessario, devi solo aggiungere un ulteriore modulo di interfaccia di rete: dopotutto, in questa architettura semplicemente non esiste un processore centrale.

Tutti i pacchetti vengono elaborati da processori locali. I pacchetti esterni (cioè destinati ad altri moduli) vengono trasmessi sul canale di comunicazione tra processori solo una volta. Ciò porta ad una significativa riduzione del traffico all'interno del router.

In termini di disponibilità, il sistema non fallirà se un singolo modulo processore si guasta. Questo errore interesserà solo i segmenti di rete collegati al modulo processore danneggiato. Inoltre, un modulo danneggiato può essere sostituito con un modulo funzionante senza spegnere il router e senza alcun impatto su tutti gli altri moduli.

I vantaggi dell'architettura SMP sono riconosciuti dai produttori di computer. Negli ultimi anni sono apparse molte piattaforme simili, e solo numero limitato i sistemi operativi standard in grado di realizzare appieno i vantaggi dell'hardware ne frenavano la diffusione. Anche altri produttori, compresi i produttori di dispositivi di rete attivi, utilizzano l'architettura SMP durante la creazione di dispositivi informatici specializzati.

Nel resto di questa sezione, daremo uno sguardo più da vicino ai dettagli tecnici dell'architettura del router SMP di Wellfleet.

Architettura del router SMP proposta da Wellfleet

Wellfleet, uno dei principali produttori di router e bridge, non ha certamente badato a spese nella valutazione e nel test di varie architetture di router che supportano vari protocolli globali e globali. reti locali su vari supporto fisico e progettato per varie condizioni traffico. I risultati di questi studi sono stati formulati sotto forma di un elenco di requisiti presi in considerazione durante la progettazione di router destinati alla realizzazione di ambienti di rete aziendale per applicazioni altamente critiche. Presentiamo alcuni di questi requisiti, quelli che, a nostro avviso, giustificano l'uso dell'architettura multiprocessore.

1. La necessità di prestazioni scalabili, un elevato livello di disponibilità e flessibilità di configurazione impone l'uso dell'architettura SMP.

2. Il livello di potenza di calcolo richiesta dal routing multiprotocollo (specialmente quando si utilizzano protocolli di routing moderni come TCP/IP OSPF) può essere soddisfatto solo da moderni e potenti microprocessori a 32 bit. Tuttavia, poiché il routing implica la gestione di un gran numero di richieste simili in parallelo, richiede un passaggio rapido tra processi diversi, che richiede una latenza di cambio di contesto eccezionalmente bassa, nonché una memoria cache integrata.

3. Per memorizzare software di supporto e controllo del protocollo, tabelle di routing e indirizzi, informazioni statistiche e di altro tipo, è necessaria una capacità di memoria sufficientemente grande.

4. Fornire velocità massima La trasmissione tra reti e moduli di elaborazione router richiede controller di interfaccia di rete ad alta velocità e controller di comunicazione interprocessore con funzionalità integrate accesso diretto alla memoria (DMA - Direct Memory Access).

5. Per ridurre al minimo la latenza sono necessari canali dati a 32 bit con larghezza di banda elevata e indirizzi per tutte le risorse.

6. I requisiti di disponibilità includono potenza di calcolo distribuita, sottosistemi di alimentazione ridondanti e, come caratteristica aggiuntiva ma molto importante, canali di comunicazione interprocessore ridondanti.

7. Necessità di raggiungere vasta gamma ambienti di rete: da un singolo nodo remoto o rete di gruppi di lavoro a un'organizzazione ad alte prestazioni con alta disponibilità backbone: richiede l'uso di un'architettura multiprocessore scalabile.

Panoramica dell'architettura

La Figura 2 mostra un diagramma schematico dell'architettura multiprocessore simmetrica utilizzata in tutti i router modulari Wellfleet. Ce ne sono tre principali elemento architettonico: moduli di comunicazione, moduli processore e comunicazione interprocesso.

I moduli di comunicazione forniscono interfacce di rete fisica che consentono connessioni locali e reti globali quasi ogni tipo. Ciascun modulo di comunicazione è collegato direttamente al relativo modulo processore dedicato tramite un'interfaccia di collegamento intelligente (ILI). I pacchetti ricevuti dal modulo di comunicazione vengono trasmessi al modulo processore ad esso collegato tramite la propria connessione diretta. Il processore determina a quale interfaccia di rete sono destinati questi pacchetti e li reindirizza a un'altra interfaccia di rete dello stesso modulo di comunicazione oppure, tramite una connessione interprocessore ad alta velocità, a un altro modulo processore, che inoltrerà il pacchetto al modulo di comunicazione collegato .

Soffermiamoci più in dettaglio sulla struttura di ciascuno dei componenti.

Il modulo processore include:

L'effettiva unità centrale di elaborazione;

Memoria locale, che memorizza protocolli e tabelle di routing, tabelle di indirizzi e altre informazioni utilizzate localmente dalla CPU;

Memoria globale, che svolge il ruolo di buffer per i pacchetti di dati di “transito” provenienti dal modulo di comunicazione al modulo processore ad esso collegato o da altri moduli processore (è detta globale perché visibile e accessibile a tutti i moduli processore);

Processore OMA, che offre la possibilità di accedere direttamente alla memoria durante il trasferimento di pacchetti tra buffer di memoria globale situati in diversi moduli processore;

Interfaccia di comunicazione che fornisce la connessione al modulo di comunicazione corrispondente;

Canali dati interni a 32 bit che collegano tutte le risorse di cui sopra e progettati per fornire il massimo livello possibile portata e tempo di ritardo minimo; vengono forniti più canali, il che fornisce esecuzione simultanea operazioni tra diversi dispositivi informatici (ad esempio, CPU e processore DMA) e garantisce che non vi siano colli di bottiglia che rallentino l'inoltro e l'elaborazione dei pacchetti.

Vari modelli di router Wellfleet utilizzano moduli processore ACE (Advanced Communication Engine) basati sui processori Motorola 68020 o 68030 o moduli Fast Routing Engine (FRE) basati su MC68040.

Il modulo di comunicazione comprende:

Connettori che forniscono un'interfaccia con reti specifiche (ad esempio sincrona, Ethernet, Token Ring FDDI);

Controller di comunicazione che trasferiscono i pacchetti tra l'interfaccia di rete fisica e la memoria globale utilizzando un canale DMA; i controller di comunicazione sono inoltre progettati per un tipo specifico di interfaccia di rete e sono in grado di trasmettere pacchetti a una velocità corrispondente alla velocità del cavo;

Filtri ( ulteriore opportunità per moduli di comunicazione per FDDI ed Ethernet) che eseguono il pre-filtraggio dei pacchetti in entrata, risparmiando risorse di calcolo per un'elaborazione significativa dei file.

Il VMEbus standard viene spesso utilizzato come canale di comunicazione tra processori, fornendo un throughput totale di 320 Mbit/s.

I modelli più vecchi utilizzano l'interfaccia Parallel Packet Express (PPX) sviluppata dalla stessa Wellfleet con una larghezza di banda di 1 Gbit/s, utilizzando quattro canali dati indipendenti e ridondanti da 256 Mbit/s con distribuzione dinamica del carico. Ciò fornisce prestazioni complessive elevate e consente di ottenere qualcosa che non è disponibile nell'architettura. punto singolo fallimento. Ciascun modulo processore è collegato a tutti e quattro i canali e ha la possibilità di selezionarne uno qualsiasi. Un canale specifico viene selezionato casualmente per ciascun pacchetto, il che dovrebbe garantire una distribuzione uniforme del traffico tra tutti canali disponibili. Se uno dei canali dati PPX non è più disponibile, il download viene automaticamente distribuito tra i rimanenti.

Dettagli sull'elaborazione dei pacchetti

A seconda della rete, i pacchetti in entrata vengono ricevuti dall'uno o dall'altro controller di comunicazione. Se nella configurazione del modulo di comunicazione è incluso un filtro aggiuntivo, alcuni pacchetti vengono scartati e altri vengono accettati. Pacchetti ricevuti vengono posizionati dal controller di comunicazione nel buffer di memoria globale del modulo processore ad esso direttamente collegato. Per un trasferimento veloce dei pacchetti, ciascun controller di comunicazione include un canale di accesso diretto alla memoria.

Una volta nella memoria globale, i pacchetti vengono recuperati dalla CPU per il routing. La CPU rileva l'interfaccia di rete di output, modifica il pacchetto in modo appropriato e lo restituisce alla memoria globale. Quindi viene eseguita una delle due azioni:

1. Il pacchetto viene reindirizzato all'interfaccia di rete del modulo ad esso direttamente collegato. Il controller di comunicazione dell'interfaccia di rete in uscita riceve istruzioni dalla CPU per selezionare i pacchetti dalla memoria globale e inviarli alla rete.

2. Il pacchetto viene inoltrato all'interfaccia di rete di un altro modulo di comunicazione. Il processore DMA riceve istruzioni dalla CPU per inviare pacchetti a un altro modulo processore e caricarli tramite la connessione interprocessore nella memoria globale del modulo processore collegato all'interfaccia di rete di uscita. Il controller di comunicazione dell'interfaccia di rete in uscita seleziona i pacchetti dalla memoria globale e li invia alla rete.

Le decisioni di routing vengono prese dalla CPU indipendentemente dagli altri moduli processore. Ogni modulo processore mantiene un database di routing e indirizzi indipendente nella propria memoria locale, che viene aggiornato quando il modulo riceve informazioni sulle modifiche nelle tabelle di routing o negli indirizzi (in questo caso, le modifiche vengono inviate a tutti gli altri moduli processore).

Il funzionamento simultaneo del controller di comunicazione, della CPU e del processore DMA consente prestazioni complessivamente elevate. (Sottolineiamo che tutto ciò avviene in un dispositivo in cui l'elaborazione è parallelizzata su più moduli multiprocessore). Ad esempio, si può immaginare una situazione in cui il controller di comunicazione colloca i pacchetti nella memoria globale, mentre la CPU aggiorna la tabella di instradamento nella memoria locale e il processore DMA colloca il pacchetto nella connessione interprocessore.

Riepilogo

Il semplice fatto della penetrazione delle tecnologie informatiche sviluppate per un'area applicativa in altre correlate non è una novità. Tuttavia, tutti esempio specifico attira l'attenzione degli specialisti. Nell'architettura del router discussa in questo articolo, oltre all'idea del multiprocessing simmetrico, progettato per fornire prestazioni scalabili e un elevato livello di disponibilità, viene utilizzato anche il meccanismo dei canali dati duplicati tra processori (per gli stessi scopi), così come l'idea della replica (o replica) dei dati, il cui utilizzo è più tipico del settore dei DBMS distribuiti.

Letteratura

Architettura multiprocessore simmetrica. Comunicazioni Wellfleet, 10/1993.

G.G. Barone, G.M. Ladyženskij. "Tecnologia per la replica dei dati nei sistemi distribuiti" , " Sistemi aperti", primavera 1994.

*) Wellfleet si è fusa lo scorso autunno con un altro leader della tecnologia di rete, SunOptics Communications. La fusione ha portato alla creazione di un nuovo colosso delle reti: Bay Networks (n.d.r.)



UMA – Accesso uniforme alla memoria

5. L'architettura SMP viene utilizzata nei server e nei PC basati su Processori Intel, AMD, Sun, IBM, HP

(+) : semplicità, “elaborazione” principi di base

(-) : vengono eseguiti tutti gli scambi tra processore e memoria. 1 bus ciascuno - un collo di bottiglia dell'architettura - limitazione delle prestazioni, scalabilità.

Esempio:

MPP – architettura: elaborazione parallela massiccia

Sistema massivamente parallelo. Era basato trasduttore– un potente processore universale, la cui particolarità era la presenza di 4 collegamenti (canali di comunicazione). Ogni collegamento è costituito da due parti che servono a trasmettere informazioni in direzioni opposte e viene utilizzato per collegare tra loro i transputer e collegare dispositivi esterni. Architettura: molti nodi, ogni nodo – OP+CPU

Architettura MPP classica: ogni nodo è collegato a 4 nodi tramite un collegamento punto-punto.

Esempio: Intel Peragon

Architettura dei cluster

Realizzazione di una combinazione di macchine che appare come un tutto unico per il sistema operativo, il software di sistema, programmi applicativi utenti.

Tipi di cluster

  1. Sistemi ad alta disponibilità (HA).
  2. Sistemi per il calcolo ad alte prestazioni (High Performance, HP, Compute cluster).
  3. Sistemi multi-thread.
  4. Cluster di bilanciamento del carico. (distribuzione del carico computazionale)

Esempio: Architettura del cluster HIVE

5. Architettura NUMA Non Uniform Memory Access: accesso alla memoria non uniforme

Ogni processore ha accesso alla propria memoria e a quella di qualcun altro (per accedere alla memoria di qualcun altro, viene utilizzata una rete di commutazione o anche una percentuale del nodo di qualcun altro). L'accesso alla memoria di un altro nodo può essere supportato dall'hardware: speciale. controllori.



-: costoso, scarsa scalabilità.

Ora: NUMA accede alla memoria esterna a livello di codice.

Sistema informatico NUMA è costituito da un insieme di nodi (contiene uno o più processori, che eseguono una singola copia del sistema operativo), interconnessi da uno switch o da una rete ad alta velocità.

La topologia delle connessioni è suddivisa in più livelli. Ogni livello fornisce connessioni in gruppi con un numero limitato di nodi. Tali gruppi sono trattati come singoli nodi a un livello superiore.

L'OP è fisicamente distribuito, ma logicamente pubblico.

A seconda del percorso per accedere all'elemento dati, il tempo impiegato per questa operazione può variare in modo significativo.

Esempi di implementazioni specifiche: cc-NUMA, SOMA, NUMA-Q

Esempio: HP Integrity SuperDome

Schemi a blocchi semplificati di SMP (a) e MPP (b)

  1. Cinque principali architetture di aeromobili ad alte prestazioni, le loro una breve descrizione di, esempi. Confronto tra architettura cluster e NUMA.

In un cluster ogni processore ha accesso solo alla propria memoria; in NUMA, non solo alla propria, ma anche a quella di qualcun altro (per accedere alla memoria di qualcun altro vengono utilizzati la rete di commutazione e il processore del nodo di qualcun altro).

  1. Architettura SMP. Principi di organizzazione. Vantaggi e svantaggi. Scalabilità in senso “stretto” e “ampio”. Ambito, esempi di aerei su SMP.

Architettura SMP (multiprocessing simmetrico)- Architettura multiprocessore simmetrica. La caratteristica principale dei sistemi con architettura SMP è la presenza di una memoria fisica comune condivisa da tutti i processori.

1. Il sistema SMP è costruito sulla base di un bus di sistema ad alta velocità, ai cui slot sono collegati tre tipi di blocchi funzionali: processori (CPU), RAM(OP), sottosistema di ingresso/uscita (I/O).

2. La memoria è un modo per trasferire messaggi tra processori.

3. All'accesso all'OP tutti i dispositivi di calcolo hanno gli stessi diritti e lo stesso indirizzamento per tutte le celle di memoria.



4. Quest'ultima circostanza consente di scambiare dati in modo molto efficiente con altri dispositivi informatici.

5. SMP viene utilizzato in server e workstation basati su processori Intel, AMD, Sun, IBM, HP.

6. Il sistema SMP funziona con un singolo sistema operativo (simile a UNIX o Windows). Il sistema operativo distribuisce automaticamente (durante il funzionamento) i processi tra i processori, ma a volte è possibile un collegamento esplicito.

Principi di organizzazione:

Un sistema SMP è costituito da diversi processori omogenei e da un array di memoria condiviso.

Uno degli approcci spesso utilizzati nelle architetture SMP per creare un sistema di memoria scalabile e condiviso è quello di organizzare in modo omogeneo l'accesso alla memoria attraverso l'organizzazione di un canale scalabile del processore di memoria.

Ogni operazione di accesso alla memoria viene interpretata come una transazione sul bus processore-memoria.

In SMP, ogni processore ha almeno una cache propria (e possibilmente diverse). Possiamo dire che un sistema SMP è un computer con diversi processori uguali.

La coerenza della cache è supportata dall'hardware.

Tutto il resto è in una copia: una memoria, un sottosistema di input/output, un sistema operativo.

La parola "peer" significa che ciascun processore può fare tutto ciò che può fare qualsiasi altro processore. Ogni processore ha accesso a tutta la memoria, può eseguire qualsiasi operazione di I/O e interrompere altri processori.

Scalabilità:

In senso “stretto”: la capacità di collegare l'hardware entro determinati limiti (processori, memoria, interfacce).

In senso “ampio”: crescita lineare delle prestazioni all’aumentare dell’hardware.

Vantaggi:

Semplicità e versatilità per la programmazione. L'architettura SMP non impone restrizioni al modello di programmazione utilizzato per creare l'applicazione: di solito viene utilizzato un modello di ramo parallelo, in cui tutti i processori funzionano in modo completamente indipendente l'uno dall'altro, ma possono essere implementati anche modelli che utilizzano la comunicazione tra processori. L'uso della memoria condivisa aumenta la velocità di tale scambio; l'utente ha inoltre accesso all'intera quantità di memoria contemporaneamente.

Facilità d'uso. In genere, i sistemi SMP utilizzano un sistema di raffreddamento basato sull'aria condizionata, che ne facilita la manutenzione.

Prezzo relativamente basso.

Vantaggio del parallelismo. Il trasferimento implicito di dati tra cache da parte dell'hardware SMP è il mezzo di comunicazione più veloce ed economico in qualsiasi architettura parallela per scopi generali. Pertanto, se si tratta di un numero elevato di transazioni brevi (tipiche, ad esempio, delle applicazioni bancarie), quando è necessario sincronizzare frequentemente l'accesso ai dati condivisi, l'architettura SMP è scelta migliore; qualsiasi altra architettura funziona peggio.

L'architettura SMP è la più sicura. Ciò non significa che il trasferimento dei dati tra le cache sia auspicabile. Un programma parallelo verrà sempre eseguito più velocemente quanto meno le sue parti interagiscono. Ma se queste parti devono interagire frequentemente, il programma funzionerà più velocemente su SMP.

Screpolatura:

I sistemi SMP non si adattano bene:

1. Il bus di sistema ha una larghezza di banda limitata (anche se elevata) e un numero limitato di slot, il cosiddetto “collo di bottiglia”.

2. In ogni momento il bus è in grado di elaborare una sola transazione, per cui sorgono problemi di risoluzione dei conflitti quando più processori accedono contemporaneamente alle stesse aree della memoria fisica condivisa. Quando si verifica un tale conflitto dipende dalla velocità di comunicazione e dal numero di elementi informatici.

Tutto ciò impedisce che le prestazioni aumentino all'aumentare del numero di processori e del numero di utenti connessi. Nei sistemi reali non possono essere effettivamente utilizzati più di 8-16-32 processori.

Area di applicazione: lavorare con applicazioni bancarie

Esempio: Architettura Sun Fire T2000. Architettura UltraSPARC T1.

  1. Architettura SMP. Miglioramento e modifica dell'architettura SMP. SMP in moderno processori multi-core. Coerenza della cache.

Architettura SMP (multiprocessing simmetrico)- Architettura multiprocessore simmetrica. La caratteristica principale dei sistemi con architettura SMP è la presenza di una memoria fisica comune condivisa da tutti i processori.

Miglioramento e modifica dell'SMP:

Esempio: Architettura dei sistemi server QBB della serie GS DEC

Per aumentare le prestazioni del bus si è tentato di rimuovere il bus, ma lasciare l'accesso condiviso alla memoria --> transizione e sostituzione del bus condiviso interruttore locale(o un sistema di interruttori): ogni processore in qualsiasi momento viene commutato con 4 banchi di memoria.

Ogni percentuale funziona con una sorta di banca di memoria,

Passa a un altro banco di memoria

Inizia a lavorare con un altro banco di memoria.


Riso. 3.1.

La memoria serve, in particolare, per trasferire messaggi tra processori, mentre tutti i dispositivi informatici quando accedono ad essa hanno uguali diritti e lo stesso indirizzamento per tutte le celle di memoria. Ecco perché l'architettura SMP è chiamata simmetrica. Quest'ultima circostanza consente di scambiare dati in modo molto efficiente con altri dispositivi informatici. Il sistema SMP è costruito sulla base di un bus di sistema ad alta velocità (SGI PowerPath, Sun Gigaplane, DEC TurboLaser), ai cui slot sono collegati blocchi funzionali dei seguenti tipi: processori (CPU), sottosistema di input/output ( I/O), ecc. Per il collegamento ai moduli I/O utilizzare bus più lenti (PCI, VME64). I sistemi SMP più conosciuti sono server e workstation SMP basati su processori Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu, ecc.). L'intero sistema funziona con un unico sistema operativo (solitamente simile a UNIX , ma Windows NT è supportato per le piattaforme Intel). Il sistema operativo distribuisce automaticamente (durante il funzionamento) i processi tra i processori, ma a volte è possibile un collegamento esplicito.

I principali vantaggi dei sistemi SMP:

  • semplicità e versatilità nella programmazione. L'architettura SMP non impone restrizioni sul modello di programmazione utilizzato per creare l'applicazione: tipicamente viene utilizzato un modello di ramo parallelo, con tutti i processori che operano indipendentemente l'uno dall'altro. Tuttavia, è anche possibile implementare modelli che utilizzano la comunicazione tra processori. L'uso della memoria condivisa aumenta la velocità di tale scambio; l'utente ha inoltre accesso all'intera quantità di memoria contemporaneamente. Per i sistemi SMP esistono mezzi abbastanza efficaci per la parallelizzazione automatica;
  • facilità d'uso In genere, i sistemi SMP utilizzano un sistema di climatizzazione basato su raffreddato ad aria, che ne facilita la manutenzione;
  • prezzo relativamente basso.

Screpolatura:

  • i sistemi di memoria condivisa non si adattano bene.

Questo inconveniente significativo I sistemi SMP non ci consentono di considerarli veramente promettenti. Causa brutta scalabilitàè che al momento il bus è in grado di elaborare una sola transazione, per cui sorgono problemi di risoluzione dei conflitti quando più processori accedono contemporaneamente alle stesse aree memoria fisica condivisa. Gli elementi computazionali iniziano a interferire tra loro. Quando si verifica un tale conflitto dipende dalla velocità di comunicazione e dal numero di elementi informatici. Attualmente possono verificarsi conflitti con 8-24 processori. Oltretutto, bus di sistema ha un throughput limitato (anche se elevato) e un numero limitato di slot. Tutto ciò ovviamente impedisce che le prestazioni aumentino all'aumentare del numero di processori e del numero di utenti connessi. Nei sistemi reali non possono essere utilizzati più di 32 processori. Per costruire sistemi scalabili basati su SMP, vengono utilizzate architetture cluster o NUMA. Quando si lavora con i sistemi SMP, usano il cosiddetto paradigma di programmazione con memoria condivisa (paradigma della memoria condivisa).

Architettura MPP

MPP (elaborazione parallela massiva) – architettura massicciamente parallela. La caratteristica principale di questa architettura è che la memoria è fisicamente divisa. In questo caso, il sistema è costituito da moduli separati contenenti un processore, un banco locale di memoria operativa (RAM), processori di comunicazione(router) o adattatori di rete , a volte dischi rigidi e/o altri dispositivi di input/output. In effetti, tali moduli sono computer completi (vedi Fig. 3.2). Solo i processori (CPU) dello stesso modulo hanno accesso al banco OP di un determinato modulo. I moduli sono collegati da speciali canali di comunicazione. L'utente può determinare il numero logico del processore a cui è connesso e organizzarlo scambio di messaggi con altri processori. Esistono due opzioni per il funzionamento del sistema operativo (OS) sulle macchine con architettura MPP. In uno completo sistema operativo(OS) gira solo sulla macchina di controllo (front-end); ogni singolo modulo esegue una versione molto ridotta del SO, garantendo il funzionamento del solo ramo dell'applicazione parallela in esso presente. Nella seconda opzione, ogni modulo esegue un sistema operativo simile a UNIX completo, installato separatamente.


Riso. 3.2.

Il vantaggio principale dei sistemi con memoria separata è buono scalabilità: a differenza dei sistemi SMP, nelle macchine con memoria separata ogni processore ha accesso solo alla propria memoria locale e quindi non è necessaria la sincronizzazione orologio per orologio dei processori. Quasi tutti i record di prestazioni oggi vengono stabiliti su macchine esattamente di questa architettura, costituite da diverse migliaia di processori (

I migliori articoli sull'argomento