Chi l’avrebbe mai detto, siamo al fine di una era. Quella del computer fatto con il silicio. Per decenni, l’aumento della potenza dei computer è cresciuta assieme alla miniaturizzazione dei circuiti elettronici. La legge empirica di Moore sentenzia che la densità dei transistor su un microchip e la relativa velocità di calcolo si raddoppia ogni 18 mesi circa. Fino ad un certo punto però, fino a che la miniaturizzazione dei componenti non produce stati quantici.
Come avrete notato i computer si arricchiscono di nuove interfacce, ma la velocità di calcolo rimane più o meno sempre la stessa. Al massimo i computer che acquistiamo aggiungono dei “core” due, quattro, otto: si aggiungono altri chip in parallelo che operano su di un software distribuito. I migliori supercomputer di oggi, operano a circa 10 17 operazioni al secondo.
Nel frattempo le richieste di calcolo massivo si fanno sempre più impellenti. Le nuove frontiere della genetica richiedono che non solo si possano elaborare parecchi dati contemporaneamente (big data), ma che si abbiano risposte quasi immediate, per agire velocemente nel fare delle diagnosi e prescrivere delle cure appropriate su malattie quali i tumori e le malattie autoimmuni. La nuova frontiera dell’omica richiede un approccio di bioinformatica che necessita di supercomputer.
Stanno quindi nascendo i computer molecolari, un termine generico che indica una classe di computer che utilizza singoli atomi o molecole come mezzo per risolvere problemi computazionali. Tutte le forme di calcolo molecolare sono attualmente in fase embrionale, ma dovrebbero sostituire i computer di silicio tradizionali, che come abbiamo visto sono a fine vita.
Un chilogrammo di carbonio contiene 5 x 10 25 atomi. Immaginate se si potesse utilizzare solo 100 atomi per memorizzare un singolo bit o per eseguire un’operazione di calcolo. Utilizzando il parallelismo massiccio, un calcolatore molecolare pesante solo un chilo sarebbe in grado di elaborare più di 10 27 operazioni al secondo, un miliardo di volte più veloce dei migliori supercomputer di oggi, che operano a circa 10 17 operazioni al secondo. Con tale potenza di calcolo, potremmo ottenere una capacità di calcolo e fare delle simulazione inimmaginabile oggi.
In questi anni sono state fatte delle proposte per sviluppare dei computer molecolari. Ad esempio un computer a DNA, utilizzando il DNA come software e gli enzimi come hardware. Il computer a DNA è estremamente potente, ma soffre di gravi inconvenienti perché il calcolo del DNA non è universale, nel senso che ci sono problemi che non può, anche in linea di principio, risolvere. Nel 2002, dei ricercatori in Israele hanno creato un computer a DNA che potrebbe eseguire 330 miliardi di operazioni al secondo, più di 100.000 volte più veloce rispetto alla velocità del PC più veloce.
Un’altra proposta per il calcolo molecolare è quello denominato calcolo quantistico. che sfrutta gli effetti quantistici per eseguire calcolo. Il calcolo quantistico esegue le classiche operazioni sui dati utilizzando i fenomeni tipici della meccanica quantistica, come la sovrapposizione degli effetti e l’entanglement , un fenomeno in cui un paio di elettroni pur distanti quanto si vuole tra di loro si comportano sempre come se fossero tra di loro legati, violando per questo la relatività Einsteiniana. Nel calcolo quantistico il numero di elementi di calcolo (qubits) aumenta, Il calcolo quantistico può ancora essere sviluppato in applicazioni pratiche, ma molti fisici e gli scienziati informatici rimangono scettici. Alla fine dello scorso anno Google ha presentato il computer quantistico D-Wave 2X, uno degli esempi più avanzati di un nuovo tipo di computer basato sulla meccanica quantistica.
I computer quantistici si basano su principi fondamentalmente diversi dai computer odierni, in cui ogni bit è rappresentato sia uno zero o uno. Nell’informatica quantistica, ogni bit può essere sia uno zero e un uno contemporaneamente. Così, mentre tre bit convenzionali possono essere rappresentare da uno degli otto valori (23), tre qubit, come si chiamano, sono in grado di rappresentare tutte gli otto valori in una sola volta. Ciò significa che i calcoli possono, teoricamente, essere eseguiti a velocità molto elevate.
La ricerca è ancora nelle fasi iniziali e l’uso commerciale potrebbe avvenire tra alcuni decenni, ma la NASA e Google hanno annunciato che il computer D-Wave, ha eseguito dei calcoli con una risposta 100 milioni di volte più veloce di un computer convenzionale con un processore “single core”.
Se l’hardware dei computer sta cambiando, così non è per il software, il codice che serve a interfacciare l’utente con il computer. In questi ultimi anni è stato fatto lo sforzo di produrre nuovi linguaggi ad alto livello e nuove interfacce grafiche in modo da permettere a tutti gli utenti di interagire con i computer in modo naturale. Apple ha introdotto la prima interfaccia utente con i Macintosh e sono nati linguaggi simbolici come Maple e Mathematica per il calcolo scientifico e linguaggi derivati e semplificati come Matlab o IDL, tanto per citarne qualcuno. Sono linguaggi proprietari anche costosi che tuttavia hanno eccellenti prestazioni. Windows e le varie versioni di Linux hanno creato delle altre interfacce utente per gestire i linguaggi operativi sviluppati, fossero Microsoft o Unix. Recentemente si sta affermando Python un linguaggio del tipo “public domain” che ha il pregio di essere molto facile da imparare e che sta soppiantando i linguaggi tradizionali come FORTRAN e C++. Tra parentesi esistono ottimi libri e eccellenti presentazioni su youtube che insegnano ad usare Python.
Una via che si sta affermando è anche quella legata all’uso delle Graphic Process Unit (GPU) in contrasto con le Computer Process Unit (CPU) di tipo tradizionale. Il vantaggio è quello di abbattere i costi. Purtroppo le GPU hanno un linguaggio proprio, anche se sono stati annunciati dei codici di traduzione in Python.
Siamo di fronte alla fine di una epoca, quella dei chip al silicio, attendiamo l’avvento dei calcolatori molecolari, ma il collo di bottiglia è ancora il software che seppur evolvendo non è in grado di supportare la grande potenza che stiamo sviluppando. Sarebbe auspicabile un intervento in questa direzione, ma lo sviluppo del software richiede uno studio sui processi cognitivi umani che ancora è al di là da venire.
In Italia si potrebbe fare uno sforzo per sviluppare la tecnologia dei calcolatori molecolari in quanto esistono delle industrie che producono hardware, autonomamente, come SGS Thompson, e Eurotech come costruttore di supercomputer che sarebbero in grado di intercettare le nuove tecnologie. Eurotech e Bull (francese) rappresentano le uniche due industrie europee di supercomputer. Allo stesso modo si potrebbe anche sviluppare del software sulle nuove frontiere della bioinformatica. Il nuovo Piano Nazionale della Ricerca, che dovrebbe essere varato a breve, non sembra recepire istanze di questo tipo. Eppure è stato provato che i paesi che si sono dotati di più supercomputer e degli algoritmi di calcolo più avanzati sono anche quelli più competitivi e l’Italia non è tra quelli.