# Blue Gene

Blue Gene è un'architettura progettata per realizzare la nuova generazione di supercomputer a parallelismo elevato sviluppati per lavorare con potenze di calcolo che vanno dalle decine di teraFLOPS per arrivare fino al petaFLOPS. Il computer BlueGene più potente attualmente sviluppa 478 teraFLOPS. Il progetto è una cooperazione dello United States Department of Energy (che finanzia parzialmente il progetto), industrie (IBM in particolare) e università. Vi sono cinque progetti Blue Gene, tra i quali il Blue Gene/L, il Blue Gene/C e il Blue Gene/P.

## Storia

Il 29 settembre 2004 IBM annunciò che il prototipo Blue Gene/L nei suoi laboratori a Rochester nel Minnesota aveva superato le prestazioni del precedente supercomputer più veloce del pianeta l'Earth Simulator. Il Blue Gene/L sviluppava 36,01 teraFLOPS rispetto ai 35,86 teraFLOPS dell'Earth Simulator. Il sistema era formato da 8 torri con 1024 nodi per ogni torre. Quando la configurazione venne raddoppiata il sistema raggiunse i 70,72 teraFLOPS.
Il 24 marzo 2005 il dipartimento statunitense per l'energia annunciò che il Blue Gene/L installato al LLNL aveva superato i precedenti record di velocità raggiungendo i 135,5 teraFLOPS con 32 torri.
Secondo la lista Top500 di giugno 2005, i sistemi basati su Blue Gene/L hanno conquistato 5 delle prime dieci posizioni e 16 delle prime 64 posizioni.
Il 27 ottobre 2005 LLNL e IBM annunciarono che Blue Gene/L aveva nuovamente superato il suo precedente record raggiungendo i 280,6 teraFLOPS con una configurazione formata da 65.536 nodi di calcolo distribuiti in 32 torri e con 1024 addizionali nodi dedicati alle comunicazioni tra le unità.
Blue Gene/L è stato il primo supercomputer a funzionare a più di 100 teraFLOPS con un'applicazione reale. Nella fattispecie l'applicazione che si chiamava three-dimensional molecular dynamics code (ddcMD) nato per simulare la solidificazione (processi di crescita e fissazione) dei metalli fusi ad alte pressioni ed alte temperature. Il progetto ha vinto il Gordon Bell Prize del 2005
Nel 2007 il sistema è stato espanso portando i processori a 212992 e la potenza di calcolo a 478 teraFLOPS.

## Architettura

Ogni nodo di calcolo o di comunicazione è un singolo ASIC con associata una memoria DRAM. L'ASIC integra al suo interno due PowerPC 440 a 700 MHz costruito con una tecnologia a 130 nanometri. Ogni processore è dotato di due unità di calcolo in virgola mobile a doppia precisione e un sottoinsieme che la cache e la memoria DRAM oltre a gestire la comunicazione interprocesso. Le due unità FPU forniscono a ogni nodo Blue Gene una potenza teorica di 5,6 gigaFLOPS. I singoli nodi non implementano una gestione coerente della cache.
Integrando tutti i sottosistemi in un unico chip si consente di abbattere la potenza dissipata. Infatti ogni chip consuma solo 17 watt, tenendo conto anche della DRAM. Questo consente di assemblare moltissimi chip in uno spazio ridotto e quindi di inserire in una singola torre 1024 nodi di calcolo con gli allegati elementi di comunicazione mantenendo ragionevoli i consumi e le potenze da dissipare.
Se si analizza il sistema confrontando i FLOPS per watt o in FLOPS per watt per metro$^2$ si nota che il sistema Blue Gene è un progetto estremamente efficiente.
Ogni nodo Blue Gene è collegato a tre reti di comunicazioni parallele che generano una rete con topologia di un toroide tridimensionale per realizzare una veloce rete peer-to-peer tra i vari nodi e una rete collettiva per comunicazioni collettive. I nodi di comunicazione (I/O) utilizzano Linux come sistema operativo e comunicano con il mondo esterno tramite una rete ethernet. Infine una rete ethernet separata e privata provvede alle operazioni di configurazioni dei singoli nodi di diagnostica e di avvio del sistema.
I nodi Blue Gene utilizzano una versione minimalista di sistema operativo che supporta un singolo programma. Per poter utilizzare il Blue Gene/L con più programmi contemporaneamente il sistema può essere suddiviso in più sottosistemi isolati elettricamente dai vari nodi. Il numero di nodi che possono formare una partizione deve essere una potenza di 2. Per esempio 2$^5$ corrisponde a 32 nodi che possono formare una partizione. La massima partizione ovviamente comprende tutti i nodi di calcolo. Prima di eseguire un programma bisogna riservare una partizione, dopo di che si avvia il programma: i nodi coinvolti rimarranno inaccessibili agli altri nodi del sistema e alla fine del programma i nodi saranno liberati per poter essere nuovamente utilizzati.
Data la presenza di un tale numero di elementi qualche nodo potrebbe guastarsi e quindi ogni nodo può essere disconnesso elettricamente dal sistema per non compromettere l'affidabilità del sistema.

## Blue Gene/L

Il primo sistema Blue Gene, il Blue Gene/L, è stato sviluppato in collaborazione con il Lawrence Livermore National Laboratory (LLNL). Il sistema sviluppa una potenza di picco teorica di 596 teraFLOPS e secondo il test LINPACK genera 478 teraFLOPS il che lo rendeva (a novembre 2007) il più potente computer del pianeta. Il primato di questo calcolatore è stato superato nel giugno 2008 da IBM Roadrunner, sempre prodotto da IBM, che ha una potenza di picco doppia.

## Blue Gene/C

Lo scopo del Blue Gene/C (conosciuto anche come Cyclops64 architettura (C64)) è lo sviluppo di un'architettura cellulare per supercomputer. Ogni cellula è composta da 80 processori custom a 64 bit. Ogni processore è dotato di due unità indipendenti dotate a loro volta di due unità per i numeri interi e un'unità per i numeri in virgola mobile. L'architettura ha vinto il Cray award, il premio è stato ritirato da Monty Denneau il progettista capo del progetto. La verifica del progetto e i test si sono svolti presso l'University of Delaware.

## Blue Gene/P

Il sistema Blue Gene/P è basato sul processore PowerPC 450. Il PowerPC 450 è un'evoluzione del precedente PowerPC 440 utilizzato nel Blue Gene/L. Ogni processore integra quattro core (a differenza dei due del modello L), la frequenza di funzionamento è di 850 MHz (700 MHz nel modello L). Ogni scheda può accogliere fino a 32 processori in grado di sviluppare fino a 435 gigaFlops in condizioni teoriche. Ogni rack può accogliere 32 schede e un sistema con 72 rack contenente 295 000 core ha prodotto una potenza di calcolo superiore al petaFLOPS. Il sistema utilizza una rete di interconnessione migliore del modello precedente ed è scalabile fino a 884 000 core con una potenza teorica di 3 petaFLOPS. Nel 2007 presso il Jülich Research Centre in Germania è stato installato JUGENE, un modello Blue Gene/P con 65536 processori. Questo sistema ha sviluppato 167 teraFLOPS diventando il più veloce computer in Europa e il secondo più veloce computer del mondo nel 2007.

## Blue Gene/Q

L'ultimo progetto conosciuto della serie Blue Gene, è il Blue Gene/Q, in grado di sviluppare fino a 20 petaFLOPS. Il sistema è stato prodotto nel 2012 ed è concettualmente simile al Blue Gene/L e P, pur avendo più core per nodo di calcolo i quali utilizzano una frequenza di funzionamento maggiore. Il primo esemplare di questa architettura è l'IBM Sequoia.