Por qué los algoritmos apestan y los ordenadores analógicos son el futuro
Sé que el titular de este artículo puede sonar ligeramente provocador, pero es cierto: La computación algorítmica no es demasiado buena cuando se trata de problemas que requieren inmensas cantidades de potencia de procesamiento.
Sólo hay que echar un vistazo a la última lista Top500 de ordenadores de alto rendimiento. Actualmente, el superordenador más potente es el Sunway TaihuLight del Centro Nacional de Supercomputación de Wuxi, China. Este gigante ofrece la friolera de 93 petaflops (un petaflop equivale a un cuatrillón de operaciones en coma flotante por segundo), algo realmente insondable.
Los superordenadores y el consumo de energía
Sin embargo, una potencia de procesamiento tan enorme tiene un coste. En este caso requiere 10.649.600 unidades de procesamiento, los llamados núcleos, que consumen 15.371 megavatios, una cantidad de electricidad que podría alimentar a una pequeña ciudad de unos 16.000 habitantes basándose en un consumo medio de energía igual al de San Francisco.
Si desviamos nuestra atención de los superordenadores más potentes y nos centramos en cambio en los más eficientes energéticamente, encontraremos el sistema TSUBAME3.0 del Instituto Tecnológico de Tokio en la cima de la lista Green500. Ofrece 14,11 gigaflops/vatio con un consumo total de energía de «sólo» 142 kilovatios requeridos por sus 3.688 núcleos. En términos de eficiencia energética, esto es unas dos veces mejor que TaihuLight. Pero 142 kilovatios siguen siendo un montón de energía eléctrica.
¿Pero no hay ningún superordenador que no requiera tanta energía para funcionar? En efecto, los hay: El cerebro humano es un gran ejemplo: su capacidad de procesamiento se estima en unos 38 petaflops, unas dos quintas partes de la de TaihuLight. Pero todo lo que necesita para funcionar son unos 20 vatios de energía. Vatios, no megavatios. Y, sin embargo, realiza tareas que -al menos hasta ahora- ninguna máquina ha sido capaz de ejecutar.
«¿No hay ningún superordenador que no necesite tanta energía para funcionar? En efecto, los hay: El cerebro humano es un gran ejemplo.»
¿Qué causa esta diferencia? En primer lugar, el cerebro es un ordenador especializado, por así decirlo, mientras que sistemas como TaihuLight y TSUBAME3.0 son máquinas de propósito mucho más general, capaces de abordar una gran variedad de problemas.
Máquinas como éstas se programan mediante un algoritmo, el llamado programa. Básicamente se trata de una secuencia de instrucciones que cada procesador ejecuta leyéndolas de un subsistema de memoria, descodificando las instrucciones, obteniendo los operandos, realizando la operación solicitada, almacenando de nuevo los resultados, etc.
Un superordenador económico: El cerebro humano
Todas estas peticiones de memoria requieren una cantidad sustancial de energía y ralentizan las cosas considerablemente. Tener cientos de miles de núcleos individuales también requiere un intrincado tejido de interconexión para intercambiar datos entre los núcleos según sea necesario, lo que también aumenta el tiempo y la energía necesarios para realizar un cálculo.
Un cerebro, por otro lado, funciona con un enfoque completamente diferente. No hay ningún programa involucrado en su funcionamiento. Simplemente está «programado» por las interconexiones entre sus componentes activos, en su mayoría las llamadas neuronas.
El cerebro no necesita obtener instrucciones o datos de ninguna memoria, decodificar instrucciones, etc. Las neuronas obtienen datos de entrada de otras neuronas, operan con estos datos y generan datos de salida que se envían a las neuronas receptoras. De acuerdo, esto es un poco simplificado, pero es suficiente para llevarnos a las siguientes preguntas:
- 1. ¿No existe un equivalente electrónico de esta arquitectura de ordenador?
- 2. ¿Necesitamos realmente superordenadores de propósito general?
- 3. ¿Podría ser mejor un sistema especializado para abordar algunos problemas?
La respuesta a la primera pregunta es: Sí, existe un equivalente electrónico de dicha arquitectura.
Se llama ordenador analógico.
Entre los ordenadores analógicos
«Analógico» deriva de la palabra griega «analogon» que significa «modelo». Y eso es exactamente lo que es un ordenador analógico: Un modelo para un determinado problema que luego puede utilizarse para resolver ese mismo problema mediante su simulación.
Los llamados análogos directos -que se basan en el mismo principio subyacente que el problema que se investiga- forman la clase más simple de tales métodos analógicos. Las burbujas de jabón utilizadas para generar superficies mínimas son un ejemplo clásico de ello.
«Un ordenador analógico es un modelo para un determinado problema que luego puede utilizarse para resolver ese mismo problema mediante su simulación»
Una clase de uso más general contiene las analogías indirectas que requieren un mapeo entre el problema y el dominio de computación. Típicamente tales analogías se basan en circuitos electrónicos analógicos como sumadores, integradores y multiplicadores. Pero también pueden implementarse utilizando componentes digitales, en cuyo caso se denominan analizadores diferenciales digitales.
Ambos enfoques comparten una característica: no hay un programa almacenado que controle el funcionamiento de dicho ordenador. En su lugar, se programa cambiando la interconexión entre sus numerosos elementos informáticos, algo así como un cerebro.
De los ordenadores analógicos a los híbridos
Considere mi propio prototipo de ordenador analógico, que es un ejemplo de ordenador analógico-electrónico clásico. El entrecruzamiento de cables puede describirse como el programa de la máquina. En este caso está configurado para simular el flujo de aire alrededor de un denominado perfil aerodinámico de Joukowsky – una tarea nada trivial.
Todos los elementos de computación de la máquina trabajan en completo paralelismo sin memoria central o distribuida a la que acceder y esperar. El ordenador se programa enchufando y desenchufando los cables de conexión. Esto puede ser bastante útil para un solo investigador y para fines didácticos, pero para un verdadero ordenador analógico de propósito general habría que deshacerse de este procedimiento de parcheo manual.
Por suerte, con la tecnología electrónica actual es posible construir circuitos integrados que contengan no sólo los elementos de computación básicos, sino también una barra transversal que pueda ser programada desde un ordenador digital conectado, eliminando así por completo el nido de ratas de los cables.
Tales ordenadores analógicos alcanzan una potencia de cálculo extremadamente alta para ciertas clases de problemas. Entre otros, son insuperables para abordar problemas basados en ecuaciones diferenciales y sistemas de las mismas, lo que se aplica a muchos, si no a la mayoría, de los problemas actuales más relevantes en ciencia y tecnología.
Por ejemplo, en un artículo de 2005, Glenn E. R. Cowan describió un ordenador analógico integrado en una escala muy grande (VLSI), es decir, un ordenador analógico en un chip, por así decirlo. Este chip ofrecía la friolera de 21 gigaflops por vatio para una determinada clase de ecuaciones diferenciales, lo que es mejor que el sistema actual de mayor eficiencia energética de la lista Green500.
El futuro analógico de la computación
La computación analógica, que fue la forma predominante de computación de alto rendimiento hasta bien entrada la década de 1970, ha caído en el olvido desde que los actuales ordenadores digitales con programas almacenados tomaron el relevo. Pero ha llegado el momento de cambiar esta situación.
«Las aplicaciones del futuro exigen una mayor potencia de cálculo con niveles de consumo energético mucho menores. Los ordenadores digitales no pueden proporcionarlo»
Las aplicaciones del mañana exigen una mayor potencia de cálculo con niveles de consumo de energía mucho más bajos. Pero los ordenadores digitales sencillamente no pueden proporcionar esto de forma inmediata. Así que ya es hora de empezar a desarrollar coprocesadores analógicos modernos que liberen a los ordenadores tradicionales de la carga de resolver complejas ecuaciones diferenciales. El resultado serían los llamados ordenadores híbridos.
Estas máquinas podrían ofrecer una potencia de cálculo superior a la de los superordenadores actuales con un consumo de energía comparable o podrían utilizarse en áreas en las que sólo se dispone de cantidades ínfimas de energía, como los controladores implantados en medicina y otros sistemas embebidos.
Desafíos futuros
Está claro que la informática analógica es muy prometedora para el futuro. Uno de los principales problemas a abordar será que la programación de ordenadores analógicos difiere completamente de todo lo que los estudiantes aprenden en la universidad hoy en día.
En los ordenadores analógicos no hay algoritmos, ni bucles, ni nada de lo que conocen. En su lugar, hay un par de elementos informáticos básicos, pero potentes, que tienen que interconectarse de forma inteligente para configurar un análogo electrónico de algún problema descrito matemáticamente.
Los retos tecnológicos, como las interconexiones potentes o los elementos informáticos altamente integrados pero precisos, parecen menores en comparación con este reto educativo. Al final, cambiar la forma de pensar de la gente sobre la programación será el mayor obstáculo para el futuro de la computación analógica.