I computer di domani potrebbero essere a prova di crash, evitando che qualsiasi incidente software o, in qualche caso, hardware abbia come conseguenza l’impossibilità di proseguire nel suo utilizzo. Il tutto sarà possibile qualora i ricercatori della University College London riusciranno nell’intento di realizzare un PC che adotti un approccio profondamente diverso da quello che caratterizza i computer odierni, cercando di replicare il più possibile i sistemi presenti in natura.
L’attuale architettura degli elaboratori prevede infatti che soltanto un’istruzione possa essere eseguita in ogni istante da un processore: il clock scandisce quindi il ritmo con il quale vengono prelevati dalla memoria dati ed istruzioni, vengono eseguite queste ultime ed il risultato viene caricato nuovamente in memoria. Benché l’utente abbia l’impressione che numerosi software siano eseguiti contemporaneamente, ed allo stesso modo le applicazioni eseguano come se avessero a disposizione una CPU dedicata, in realtà il tutto rappresenta un’astrazione sulla quale poggia l’intero paradigma di elaborazione.
«In natura, invece, le cose funzionano in maniera piuttosto differente» ha dichiarato lo scienziato Peter Bentley dell’UCL, uno dei membri del progetto in questione. «I suoi processi sono distribuiti, decentralizzati e probabilistici. E sono in grado di sopperire ai guasti, sono capaci di guarire da soli. Anche un computer dovrebbe essere in grado di farlo». Proprio questo è l’approccio che i ricercatori intendono seguire per realizzare i computer di nuova generazione, dando luogo ai cosiddetti “computer sistemici“: più che singoli processi, tale computer è in grado di gestire entità digitali denominate sistemi, le quali contengono al proprio interno una serie di dati coerenti con un particolare contesto.
Più sistemi possono quindi interagire a patto che siano simili, con ciascuno di essi che è governato non da un timer programmato a priori, bensì da un generatore di numeri pseudocasuale volto a replicare la caratteristica casuale della natura. L’interazione avviene in maniera parallela, con più sistemi che si scambiano informazioni contemporaneamente: l’elaborazione è quindi proprio il risultato di tale interazione, per certi versi casuale.
Nessun sistema ha precedenza sugli altri, ed ognuno di essi ha a disposizione nella propria memoria una copia delle istruzioni che costituiscono l’intero sistema complessivo, consentendo così ai singoli sottosistemi di rigenerarsi, ripararsi e risolvere autonomamente problematiche di vario tipo. Nel caso in cui dei bit vengano corrotti, quindi, ogni sistema può ripararli in maniera molto semplice, evitando così di andare in crash come invece accade negli attuali sistemi di elaborazione. Il tutto, inoltre, è condito dalla possibilità per ciascun sistema di modificare il proprio codice in base a quanto accade all’esterno, arricchendo l’architettura con un accetto di machine learning capace di rendere tali computer per certi versi autonomi.
Un simile approccio potrebbe quindi rivoluzionare il modo di concepire i computer, semplificando la vita agli sviluppatori e rendendo possibile la creazione di sistemi di elaborazione capaci di svolgere compiti ove la tolleranza ai guasti è praticamente nulla. A ciò si accompagnerebbe inoltre un importante miglioramento nel campo della sicurezza, consentendo di incrementare l’affidabilità dei sistemi informatici laddove vi sono in ballo risorse, sia umane che economiche, di elevata importanza.