Sapete cosa è il calcolo distribuito? Problemi molto complessi vengono suddivisi in tanti problemi più piccoli, e questi vengono distribuiti tra vari computer diversi, collegati tra loro. Una volta risolti i problemi e ricomposti, si sarà risolto anche quello generale, altrimenti irrisolvibile in tempi-macchina ragionevoli, se eseguito su una sola macchina.
Da tempo questa tecnica è stata utilizzata per eseguire in tempi brevi quei compiti che erano gravosi (se non impossibili, fino a qualche anno fa) anche per i grandi calcolatori. E’ stata utilizzata per renderizzare filmati in 3D, per cercare tracce di vita extra-terrestre, per un challenge tra sistemi operativi, e nella ricerca medica.
Rosetta@home
Rosetta@home è un progetto di calcolo distribuito per la previsione della struttura delle proteine sulla piattaforma BOINC (Berkeley Open Infrastructure for Network Computing), svolto al Baker laboratory all’Università di Washington. Rosetta@home si propone di prevedere le interazioni proteina-proteina e di progettare nuove proteine.
La percentuale di risorse del computer non utilizzate dall’utente, viene utilizzata da Rosetta@home per eseguire i calcoli. Vi sono diverse ricerche, come è immaginabile, attualmente una certa importanza ricopre quella indirizzata a terapie e diagnostica del Covid-19. In particolare, Rosetta@home è utilizzato per prevedere la struttura delle proteine importanti per la malattia e per produrre nuove mini-proteine stabili da utilizzare nel contrasto o nella diagnosi del SARS-CoV-2.
Recentemente è stato aggiunto il supporto per piattaforme Linux – Arm. Quindi, perché non dare una mano togliendo la polvere a quel Raspberry che aspettava nel cassetto il suo progetto ideale? Certamente non è un supercomputer, ma consuma poco e può stare acceso 24h su 24h, dando il suo piccolo contributo. Per questo è importante che ognuno di noi valuti se può fare altrettanto. Una goccia non riempie il mare, ma il mare non è altro che l’insieme di moltissime piccole gocce.
Uso del Raspberry Pi
I calcoli necessari sono incredibilmente impegnativi, e l’applicativo è solo a 64bit. va da sé, che gli unici modelli utilizzabili siano Raspberry Pi 3, 3B+ e 4, che dispongono di un SoC a 64bit. Inoltre alcune attività possono arrivare a utilizzare anche 1,5Gb di RAM, quindi il candidato ideale per questo compito è il Raspberry Pi 4, seppur si possano utilizzare – non senza qualche difficoltà, anche i modelli 3.
Ma Raspbian è a 32bit! E allora? come si fa? Non temete: le versioni recenti del kernel prevedono la possibilità di funzionamento a 64bit. Serve almeno il kernel 4.19.75 o successivo, ma se non lo avete, non preoccupatevi: seguite la guida, e lo aggiorneremo.
Due tipi di installazione
BOINC (su cui si appoggia Rosetta@home), si può installare in due modi: nel modo classico manuale, oppure si può scaricare l’immagine di una distribuzione Raspbian già settata per utilizzarlo. Se si vuole dedicare un Raspberry Pi allo scopo, la distribuzione già pronta è la via facile e indolore. Solo se avete un Raspberry Pi sottoutilizzato, e quindi con molte risorse libere, ma purtuttavia volete continuare a usarlo per i vostri compiti quotidiani, oltre che per Rosetta@home, allora utilizzate il metodo manuale, in modo da mantenere i vostri programmi e configurazioni.
Immagine già pronta
Fold for Covid è il nome del progetto, supportato da Balena.io (quelli di Etcher), che fornisce file immagine di sistemi già pronti e configurati con interfaccia web per controllare i calcoli in remoto, per Raspberry Pi 4 e Pi 3 e molte altre piattaforme IoT. Quindi è sufficiente scaricare il giusto file immagine da questa pagina, metterlo su una microSD (naturalmente con il programma Balena Etcher) e poi inserire la sd nel Raspberry Pi, per avere un sistema BOINC funzionante, che opera con Rosetta@home.
Quindi, per avere un sistema BOINC Rosetta@home, andate su foldforcovid.io , scorrete fino in fondo , scegliete il vostro modello di Raspberry Pi per scaricare il file immagine adatto. Poi, seguite le istruzioni: mettetelo su una SD tramite Balena Echer e inserite la SD nel Raspberry Pi.
Una volta avviato, lo schermo mostrerà le statistiche di calcolo. Non è indispensabile collegare un display al Raspberry Pi, le stesse statistiche si possono visualizzare da un altro computer in rete, puntando il browser su foldforcovid.local
Installazione manuale
Se si vuole utilizzare un Raspberry Pi che magari è attivo 24h/24h, ma ha un carico relativamente basso (magari lo usate per il sistema di irrigazione, o monitora un qualche processo), per sfruttarne le capacità inutilizzate, probabilmente non vorremo rinunciare alle nostre impostazioni. Dovremo quindi procedere all’installazione manuale sulla nostra Raspbian pre-esistente. Come accennavo prima, c’è la questione dei 64bit, non è quindi un semplice apt install e via.
Raspbian, infatti,per mantenere compatibilità con i modelli precedenti, è interamente a 32bit, anche se i SoC dei modelli recenti, sono a 64bit. Ma c’è la possibilità, con versioni recenti del kernel, di usare programmi a 64bit.
Cominciamo quindi a darci da fare con il Terminale:
1 2 |
sudo apt update sudo apt full-upgrade |
Aggiorneremo così i repository e tutto il sistema, firmware e kernel inclusi, così da poter usare Rosetta@home senza problemi e da metterci al riparo da inutili surriscaldamenti dovuti al primo firmware bacato del Pi 4.
1 |
sudo apt install boinc-client boinc-manager |
Con questo comando, installiamo BOINC, che, come detto su, è la piattaforma per il calcolo distribuito. Lo troverete nel menù del lampone in strumenti di sistema).
Ora, andiamo a fare la modifica necessaria: spostiamoci nella /root e facciamo una copia di backup del file config.txt, chiamandola config.old
1 2 |
cd /boot sudo cp config.txt config.old |
Poi, andiamo a editare il file config.txt tramite un editor di testo (io userò nano)
1 |
sudo nano config.txt |
scorri fino in fondo al file e aggiungi la riga
1 |
arm_64bit=1 |
ora CTRL+O e CTRL+X per salvare e uscire. Riavviate il Raspberry Pi con
1 |
sudo reboot |
Al riavvio, rientrate nel Terminale, e verifichiamo se il supporto ai 64bit è stato attivato, con
1 |
uname -a |
dovreste vedere una riga che termina con “aarch64 GNU/Linux”; tutto ok: abbiamo abilitato il supporto a programmi a 64bit su Raspbian! Se invece la parte finale della riga fosse “armv7l GNU/Linux”, allora il sistema è ancora a 32bit, e qualcosa è andato storto. ricontrollate i passaggi.
Ma continuiamo: digitate
1 2 |
cd /etc/boinc-client sudo nano cc_config.xml |
Per andare a editare il file di configurazione di BOINC. Dovremmo aggiungere la stringa racchiusa tra <alt_platform> e </alt_platform> dentro ai tag <options>
1 2 3 |
<options> <alt_platform>aarch64-unknown-linux-gnu</alt_platform> </options> |
Nel caso ci siano già <options> e </options>, mettere all’interno la stringa centrale, nel caso manchino, mettere tutto il blocco di testo.
Adesso, di nuovo, CTRL+O e CTRL+X per salvare e uscire. Riavviate un’ultima volta il Raspberry Pi con
1 |
sudo reboot |
Ora siete pronti a far macinare calcoli di simulazione 3D di sviluppo delle proteine inerenti la ricerca scientifica per contrasto al COVID-19!
Lanciando BOINC, scegliete il progetto Rosetta@home nel menù a tendina di sinistra, e poi verranno assegnati i compiti di calcolo al vostro Raspberry Pi.
Se hai qualche dubbio o vuoi condividere la tua esperienza in merito, vieni nella discussione dedicata sul forum!
Se vuoi restare aggiornato, seguici anche sui nostri social: Facebook, Twitter, Youtube, Telegram.