PicoCluster rappresenta un ottimo sistema per creare un cluster dedicato al calcolo con schede SBC.
Ho sempre avuto la passione per il calcolo automatico. Uno dei primi programmi in BASIC che scrissi sul Commodore 64 consisteva nella ricerca di Numeri di Armstrong, ovvero quei numeri la cui somma delle cifre elevate alla terza potenza dava il numero stesso (ad esempio 153 = 13 + 53 + 33).
Con l’età cresceva in me il desiderio di utilizzare tutti i cicli macchina dei computer che mi capitavano a tiro, senza sprecarne alcuno: in casa ho avuto anche sette computer contemporaneamente, collegati in rete. Nel 2000 ho fondato il Team_Italia, che raccoglie e coordina un gruppo di ricercatori matematici dilettanti (o di pazzi smanettoni scatenati) tutto italiano. L’intento era quello di fornire al mondo dimostrazione delle capacità di coordinazione e di calcolo italiane nel campo della teoria dei numeri. Con un discreto successo, visto che in un modo o nell’altro ben 216 persone hanno chiesto ed ottenuto di poter collaborare.
Appare pertanto evidente che l’avvento dei Single Board Computers (SBC) come Raspberry PI, Odroid C2, Pine64 e così via, nati per fornire capacità di elaborazione portabili a basso costo di esercizio, hanno creato nel sottoscritto una sorta di incantesimo: acquisirne un buon numero ed impostare un gruppo di minuscoli computer per il calcolo distribuito, un mini-cluster. Anzi, un PicoCluster.
Un moderno LEGO per appassionati
Con un investimento alla portata dell’appassionato appena raffinato, è oggi possibile acquistare in un unico ordine tutto il materiale necessario per l’autocostruzione del sistema. Si sceglie tra un numero variabile tra 1, 3, 5, 10, 20 o 48 schede, il sistema di alimentazione integrato, uno o più switch di rete Gigabit, cavi e connettori. Per finire, un favoloso telaio di plexiglass di forma cubica che chiude con incastri e viti l’intero cluster.
L’utilizzo di economiche schede SBC a basso consumo in cluster consente a PicoCluster la distribuzione di sistemi dedicati al calcolo o ad applicazioni distribuite.
Il sistema è molto flessibile: è possibile scegliere una configurazione professional (con alimentatore esterno), enterprise (con alimentatore interno e ventola) o high-power (con due ventole ed una alimentazione potenziata). Ma non è tutto: per lo specialista in bricolage è disponibile il sistema da montare (lo Starter Kit), il kit avanzato con le schede SD pronte all’uso (Advanced kit), e l’Assembled Cube, che arriva a destinazione già montato, testato e funzionante.
Infine è possibile richiedere SBC di diverso tipo: il classico Raspberry PI 3B+, il Rock64, il Rock64Pro, l’Odroid C2, l’Odroid XU4. Presto sarà possibile disporre anche di PicoCluster con RPI 4, Jetson Nano e Odroid N2, ovvero le versioni su steroidi delle schede anzidette.
Prestazioni a confronto
Quando decisi di acquistare un PicoCluster per eseguire qualche test, scelsi di configurarlo con 5 Odroid C2. Tali schede, pur essendo equivalenti al Raspy 3, avevano un clock di 1.5 GHz, un consumo minore, una porta Ethernet ed una memoria più veloci. Praticamente un RPI 4 con 18 mesi di anticipo. E le maggiori prestazioni si sentivano tutte: se correttamente raffreddato, il piccolo cluster era in grado di competere in pure prestazioni numeriche con un i5 quad core, ma consumando 10 volte meno.
Ricordo che il mio test verteva sul calcolo di numeri di Mersenne doppi; avevo collegato il cubo in rete, ed accedendo in ssh potevo lavorare su una qualsiasi delle cinque schede quad-core, disponibili anche senza l’interfaccia grafica (che in questi sistemi rischia di appesantire l’elaborazione). Per gestire gli archivi che il programma creava su ciascuna scheda, bastava uno script con scp (secure copy) per centralizzare i risultati.
La potenza è nulla senza controllo
Grazie al fattore di forma del PicoCluster, è possibile creare (o richiedere) cluster configurati per qualsiasi applicazione o framework. Con essi sarà sufficiente inserire la scheda di memoria nello slot apposito, accendere il sistema e iniziare a lavorare. L’intero stadio di installazione e configurazione potrà in tal modo essere evitato.
Non esiste un altro sistema in grado di essere gestito in tal modo. Il guadagno in tempo e denaro nell’acquisto di un sistema chiavi in mano rappresenta un valore aggiunto unico.
Di seguito una breve lista di Application Image Sets configurati su scheda in offerta:
- Apache_Hadoop
- Apache_Spark
- Apache_HBase
- ElasticSearch
- Cassandra
- Docker
- Hypriot
- Kubernetes
Il nuovo sistema con Jetson-Nano disporrà di 128 CUDA cores su ciascuna scheda e verrà configurato con software pronto per lavorare nel campo dell’intelligenza artificiale (AI). I CUDA processors, dal canto loro, si presteranno anche a velocizzare le applicazioni grafiche o il calcolo parallelo tipico di campi della matematica.
Si tratta di offerte che si avvantaggiano della proprietà del parallelismo e utilizzano in genere numerosi spikes di CPU di breve durata ed un basso livello di comunicazione tra processi. I sistemi SBC, con la loro architettura multi core, sono ideali per la gestione di carichi discreti o in fase di studio e produzione di prototipi e test.
Essendo sistemi che utilizzano un kernel Linux, è anche possibile creare un cluster di classe Beowulf o librerie MPI/OpenMP in grado di suddividere processi diversi in multi threading indirizzando diversi core su diverse schede.
Infine, se è la potenza di calcolo a preoccupare, sono disponibili sistemi da 20 e 48 schede.
Conclusioni
I miei “esperimenti” mi hanno condotto a scoprire un sistema assolutamente nuovo di fare ricerca, tanto in ambito matematico che nel settore della Computer Science. L’utilizzo di SBC consente un notevole risparmio nei costi iniziali e nell’energia richiesta, garantendo nel contempo una incredibile flessibilità di utilizzo.
I più “smanettoni” tra i miei lettori potranno acquistare le schede e creare il proprio cluster da zero. Sospetto però che un gran numero di CTO e IT manager utilizzeranno le offerte di PicoCluster come una valida alternativa. Una soluzione in grado di tagliare i costi per sviluppo e prototipo di applicazioni, focalizzando l’attenzione esclusivamente sulla distribuzione dei carichi.
Qualunque sia la vostra categoria di utilizzo, PicoCluster rappresenta un ottimo sistema per creare un cluster dedicato al calcolo con schede SBC.
Buon lavoro!