IBM pensa ai superprocessori

Big Blue ha in progetto lo sviluppo, insieme all'Università del Texas, di una nuova generazione di processori capaci di eseguire, per la fine del decennio, mille miliardi di calcoli al secondo senza la necessità di clock stratosferici

Armonk (USA) - Una delle strade seguite dai produttori di processori per incrementare le prestazioni dei chip tradizionali è quello di ottimizzare il numero di operazioni eseguite per singolo ciclo di clock attraverso architetture multithreading capaci di svolgere più task contemporaneamente. Queste tecnologie rivestono per l'industria un ruolo fondamentale: migliorare il multithreading significa infatti frenare la crescita dei megahertz e allungare la vita ai chip di silicio.

IBM, che con il Power4 è stata fra le prime a commercializzare un processore multi-core capace di operare come due CPU indipendenti, ha ora svelato un progetto che la porterà a sviluppare, insieme all'Università del Texas, una nuova generazione di processori capaci di elaborare, su di un singolo chip, una quantità di istruzioni oggi tipicamente gestita dai supercomputer.

Lo sviluppo di questa nuova architettura di elaborazione, denominata TRIPS (Teraops Reliable Intelligent Processing System), verrà in parte finanziato dalla DARPA (Defense Advanced Research Projects Agency) con una somma di oltre 11 milioni di dollari.
Alla base della tecnologia TRIPS c'è lo schema di esecuzione delle istruzioni chiamato "block-oriented execution", per certi versi simile a quella Very Long Instruction Word (VLIW) sviluppata da IBM negli anni '80, che permette ad un chip di eseguire simultaneamente grandi blocchi di istruzioni per ciclo di clock. La capacità di "macinare" un numero elevato di operazioni per ciclo di clock risiede, nel caso di un chip TRIPS, nella possibilità di dividere l'elaborazione fra più unità di calcolo differenti integrate sullo stesso chip e controllate via software. Questo, secondo IBM, renderà i futuri supercomputer più scalabili e meno costosi e permetterà ai produttori di risolvere buona parte dei problemi legati alle elevate frequenze di clock oggi raggiunte dai chip tradizionali.

IBM prevede, per il 2010, di costruire una CPU multi-core contenente unità per il calcolo in virgola mobile e la gestione della memoria in grado di eseguire, con "soli" 10 GHz di clock, mille miliardi di calcoli in virgola mobile per secondo. Ma per vedere la tecnologia TRIPS all'opera non bisognerà attendere tanto: già entro la fine del 2005 Big Blue e l'istituto texano hanno in progetto di rilasciare un primo prototipo di processore TRIPS integrante quattro core operanti a 500 MHz: ogni core sarà in grado di elaborare 16 operazioni per ciclo di clock per un totale di 32 miliardi di istruzioni al secondo.
TAG: hw
7 Commenti alla Notizia IBM pensa ai superprocessori
Ordina
  • Ho l'impressione che in questa fase storica l'hardware si stia evolvendo molto piu' velocemente del software.

    Mi spiego: i progettisti hardware di queste CPU pesantemente parallele di IBM dovranno fare i salti mortali per decidere a run-time quali istruzioni possono essere eseguite concorrentemente, mentre sarebbe molto piu' opportuno che questo tipo di ottimizzazione venisse fatta dal compilatore, oppure, meglio ancora, che fosse esplicitamente possibile inserirla nel codice sorgente.

    Pero' l'insieme sistema operativo-linguaggi di programmazione (almeno quelli streamline) sono tuttora fermi ai paradigmi di 20 anni fa: sostanzialmente processi e threads.

    Che cosa ne pensate?
    Qualcuno conosce linguaggi di programmazione in cui sia possibile inserire indicazioni esplicite sul potenziale parallelismo o interdipendenza dei vari blocchi di codice?

    Ciao

  • - Scritto da: NeutrinoPesante
    > Ho l'impressione che in questa fase storica
    > l'hardware si stia evolvendo molto piu'
    > velocemente del software.
    >
    > Mi spiego: i progettisti hardware di queste
    > CPU pesantemente parallele di IBM dovranno
    > fare i salti mortali per decidere a run-time
    > quali istruzioni possono essere eseguite
    > concorrentemente, mentre sarebbe molto piu'
    > opportuno che questo tipo di ottimizzazione
    > venisse fatta dal compilatore, oppure,
    > meglio ancora, che fosse esplicitamente
    > possibile inserirla nel codice sorgente.
    >
    > Pero' l'insieme sistema operativo-linguaggi
    > di programmazione (almeno quelli streamline)
    > sono tuttora fermi ai paradigmi di 20 anni
    > fa: sostanzialmente processi e threads.
    >
    > Che cosa ne pensate?
    > Qualcuno conosce linguaggi di programmazione
    > in cui sia possibile inserire indicazioni
    > esplicite sul potenziale parallelismo o
    > interdipendenza dei vari blocchi di codice?
    >
    > Ciao

    Nei processori VLIW la schedulazione delle istruzioni, cioè la creazione di blocchi di istruzioni indipendenti (senza criticità, eseguibili in parallelo) e per l'appunto lasciata al compilatore.
    Il quale tenta di massimizzare le dimensioni dei blocchi da passare al processore.
    Itanium, ad esempio in ogni fetch di 128 bit ci fa stare 3 operazioni intere o una fp (mi sembra). In tale architettura se il compilatore riesce, ad esempio, a isolare 30 istruzioni indipendenti può scrivere un blocco di 10 istruzioni sequenziali che, teoricamente, un itanium potrebbe eseguire in un'unico tick.

    La gestione di thread è un problema, nel senso che due thread diversi potrebbero richiedere l'uso degli stessi registri, ma vi sono tecniche hardware (finestre di registri...) anche per questo. In sostanza il SO potrebbe ruscire a caricare blocchi di isctruzioni parallele di due threads paralleli da eseguire in un'unica mandata.

    Se vuoi far girare un programma su itanium (ammesso che non ci fosse l'unità per la compatibilità x86) devi ricompilare.
    non+autenticato
  • Caro neutrino (muonico o tauonico? Occhiolino ),
    questo tipo di compilatori ci sono da un mucchio di tempo nella programmazione vettoriale e soprattutto parallela per i supercomputer.
    Fino a 5-8 anni fa si utilizzava solamente il fortran, con porzioni di codice standard che il compilatore riusciva a distribuire molto bene. Più recentemente i compilatori C (e C++) sono diventati sufficentemente furbi da riuscire a fare altrettanto.
    Ovviamente più il programmatore riesce a seguire certe direttive (ad esempio usare poco le funzioni "recursive") meglio è!
    non+autenticato

  • - Scritto da: Anonimo
    > Caro neutrino (muonico o tauonico? Occhiolino ),

    o elettronico?
    (sono tre i tipi.... Occhiolino )
    non+autenticato

  • > > Caro neutrino (muonico o tauonico? Occhiolino ),
    >
    > o elettronico?
    > (sono tre i tipi.... Occhiolino )

    ehehehehe.. lo so, ma visto che si firmava "neutrinopesante", e che quelli muonici e tauonici hanno massa maggiore di quello elettronico, ho assunto che si riferisse ad uno di questi due.
    Elementare no? Occhiolino

    -- Nova --
    non+autenticato
  • Anche Itanium è VLIW. Ha più core e ne avrà sempre di più.
    E' una vecchia storia, lasciare la schedulazione delle istruzioni al compilatore anzichè internamente al processore per evitare le criticità.

    Domanda: quali sarebbero le differenze sostanziali con la classe Itanium di intel? Che instruction set userebbero?
    non+autenticato