miércoles, 11 de septiembre de 2013

Investigadores trabajan en una computadora que nunca se traba

Un equipo de investigadores de la Escuela Universitaria de Londres trabaja en el desarrollo de una computadora que nunca se cuelga y podría ser capaz de reprogramarse automáticamente en caso de error. 


Si hay algo que nos puede fastidiar bastante es que nuestro smartphone o nuestro ordenador personal se queden colgados, por ejemplo, por un fallo en una aplicación que estamos ejecutando. Quizás a nivel personal es algo que, aunque molesta, no tiene demasiada importancia pero una situación de bloqueo en un sistema crítico es algo que puede tener un gran impacto. Basándose en un esquema que intenta emular la aleatoriedad de la propia naturaleza, un equipo de investigación de la Escuela Universitaria de Londres está trabajando en una computadora que nunca se quedaría colgada puesto que sería capaz de reprogramarse y auto-repararse para evitar una situación de bloqueo.
' La idea es que ante una inminente situación de bloqueo, por ejemplo, ante unos datos que se han corrompido, el sistema sea capaz de recuperarse por sí mismo y reparar los datos dañados para prevenir el fallo; un hecho de especial importancia para sistemas de gran criticidad como los que forman parte de un avión o sistemas de control más críticos, por ejemplo, en una central nuclear o, incluso, que un avión no tripulado que ha sido dañado en combate sea capaz de reprogramar sus sistemas y adaptarse a la nueva situación. 
 ¿Cómo puede reprogramarse un computador? El modelo que está siguiendo el equipo de la Escuela Universitaria de Londres es el del gran computador que encontramos en la naturaleza: el cerebro. La base de este trabajo de investigación es modelar el proceso natural que siguen las neuronas para establecer conexiones y activarse; un proceso que, a nivel macroscópico, también vemos en el comportamiento de los enjambres de insectos que funcionan, prácticamente, como si fuesen una unidad. 
 Según comentaba Peter Bentley, uno de los responsables del proyecto, la gran diferencia entre una computadora y un ser vivo es cómo se ejecutan los procesos. Las computadoras trabajan de manera secuencial, es decir, ejecutan una instrucción tras otra (y aumentan este ratio con la computación en paralelo); sin embargo, en la naturaleza el funcionamiento es descentralizado y sigue una distribución aleatoria con tolerancia a fallos y capacidad de adaptación a los cambios. 
¿Cómo adaptar un computador a los cambios? El computador en el que trabajan mantiene una memoria que contiene datos e instrucciones sensibles al contexto en el que se encuentra, es decir, tiene instrucciones con lo que debe hacer si la temperatura aumenta o si baja demasiado, por citar un ejemplo. Cada uno de estos contextos se ejecuta en paralelo y, en vez de seguir un contador de programa secuencial (como se haría en un computador), la ejecución de estos contextos está sujeta a un proceso pseudoaleatorio que imita la aleatoriedad de la naturaleza. 
Como fruto de este proceso, en cada momento, se evaluarán una serie de condiciones de contorno dentro de una combinación que servirá para obtener una acción como suma de todas estas "acciones en paralelo". Si en cada uno de estos sistemas almacenamos la misma copia de código, nos encontramos con un sistema ultra-redundado en el que la activación de las condiciones de contorno servirá para ejecutar el programa original, aunque se haya dañado alguna parte del sistema. 
 Precisamente, este el punto en el que se encuentra esta investigación puesto que pretenden que el sistema sea capaz de reescribir el código a ejecutar en respuesta a los cambios del entorno, usando para ello un aprendizaje previo que lo vuelva inmune a fallos si, por ejemplo, una zona de la memoria está dañada (lo cual, en un computador convencional, nos provocaría un error, por ejemplo, un kernel panic). Una investigación, sin duda alguna, fascinante.

No hay comentarios:

Publicar un comentario

UberPC.es