Architettura dei processori e interconnessioni, tutto speciale

Sam Holland crede che i supercomputer, prima o poi, entreranno negli uffici. In questo articolo discutiamo riguardo le barriere e le difficoltà per il raggiungimento di un tale fine.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Architettura dei processori e interconnessioni, tutto speciale

Quando i supercomputer erano ancora una novità, gli sforzi degli ingegneri erano mirati a migliorare le prestazioni, migliorando l'architettura. I primi modelli Cray furono esempi brillanti, in questo senso. Non che i processori veloci fossero difficili da costruire, era l'assemblaggio del sistema che doveva essere innovato. Un impulso elettrico ci mette circa un nanosecondo, o poco di più, a percorrere mezzo metro di cavo, quindi i componenti dovevano essere messi il più vicino possibile per migliorare le prestazioni. È vero anche oggi, ma l'altissima densità dei processori rappresenta un vantaggio enorme.

Ogni tanto qualcuno ha una buona idea per migliorare le prestazioni dei processori commerciali. Di solito si tratta di processori ausiliari o specializzati, usati per ridurre il carico di lavoro di quello principale. Questa tecnica offre benefici immediati, ma il formato dei dati spesso è in conflitto con quello delle librerie standard, quindi bisogna scrivere programmi e basi di dati che poi sono difficili da convertire quando i processori passano di generazione.

IBM's blue gene is currently the fastest supercomputer.

Il blue gene di IBM, al momento il supercomputer più veloce di tutti.

I produttori di microprocessori oggi fanno un buon lavoro, migliorando le prestazioni gradualmente. Ottengono buoni passi avanti migliorando l'architettura del processore o la velocità di clock. Oggi i processori a quattro core sono una realtà, e quelli a otto saranno presto sul mercato. Le recenti modifiche all'architettura includono sistemi di processori multipli, o grandi sistemi a processore semplice. Ogni produttore lavora sull'architettura, alla ricerca di più potenza con meno consumi energetici. I sistemi con processori multicore facilitano l'esecuzione di più compiti contemporaneamente (multitasking), e i processori ad array aiutano quando si lavora con i vettori. Entrambi gli aspetti sono importanti per le prestazioni di un supercomputer. 

È quasi impossibile progettare e sperimentare la propria idea, per quanto geniale, e fare meglio dei grandi produttori. Senza capitali enormi, il meglio a cui un progettista può aspirare è convincere i produttori di processori a continuare lo sviluppo sia dell'architettura che della tecnologia al silicio, mano a mano che questa progredisce.

Le schede, il tessuto che permette ai processori di comunicare tra loro, possono essere grandi o piccole, veloci o lente. Quelle migliori, che permettono ai processori di comunicare tra loro quasi simultaneamente, sono dette fat, mentre altre sono dotate di singole connessioni da punto a punto, il che non le rende molto competitive in questo campo. La creazione della topologia di una scheda è un impegnativo esercizio di visualizzazione 3D, per ottenere le prestazioni migliori con un numero ragionevole di interruttori (switch).

I processori devono essere collegati l'uno all'altro con soluzioni che riducano al minimo l'uso di switch, mantenendo un tempo di accesso il più basso possibile. Anche il numero di collegamenti deve essere ridotto all'osso, sempre per mantenere alte le prestazioni; troppo pochi soffocheranno il sistema, mentre troppi resteranno inattivi, in attesa di dati da trasferire, cioè uno spreco di risorse e, in ultima analisi, di denaro. È un po' come cercare di prevedere per quanti minuti userete il cellulare per scegliere la tariffa migliore: se sottostimate il numero, vi costerà di più dopo la scelta, se lo sovrastimate, il costo in eccesso lo pagate in anticipo. Trovare l'equilibrio è un lavoro molto difficile e complesso, e inoltre varia in base alle applicazioni.

Una scheda ben progettata può muovere i dati su strade diverse, similmente al World Wide Web. È una buona cosa, se consideriamo che gli algoritmi di allocazione del processore tendono a concentrare i compiti in piccoli gruppi di processori. È una cattiva cosa se non avete a portata di mano degli strumenti per controllare le schede di trasferimento. Trovare dei punti difettosi può assomigliare alla ricerca del classico ago nel pagliaio, se non abbiamo a disposizione qualche strumento specifico. Esistono molte schede, componenti di alta qualità e adattatori, che possono essere indicati come prodotti commerciali. Le stesse buone ragioni per le quali non è una buona idea progettarsi da soli un processore, ci dicono che anche le schede per ospitarli non sono oggetti da “fai da te”. Semplicemente non ne vale la pena.

L'uso di processori e schede dedicate tiene i supercomputers lontani dagli uffici, in particolare se si tratta di progetti ultra specifici. Un ingegnere appassionato e danaroso andrebbe comunque incontro ad altissimi costi di sviluppo e mantenimento. La ragione più forte per evitare lo sviluppo di un progetto personale, comunque, salta fuori dopo circa tre anni, quando si rende necessario un aggiornamento, se non altro per stare al passo con i prodotti commerciali. Ed ecco che l'investimento milionario impallidisce di fronte ai progressi degli altri.