Computación cuántica (I): el fin de los ordenadores clásicos

Los ordenadores actuales son descendientes de la Máquina de Turing. Este modelo matemático fue creado por Alan Turing para dar respuesta al Entscheidungsproblem (en alemán, “problema de decisión”), una de las cuestiones centrales de la informática teórica.

Las Máquinas de Turing utilizan como memoria una cinta con un número infinito de posiciones y un cursor que puede leer una posición de la cinta, modificar su contenido o desplazarse una posición a la izquierda o a la derecha. El “código” de la máquina de Turing es el conjunto de reglas predefinidas que indican qué acciones debe realizar el cursor según el contenido de la cinta, mientras que los “datos de entrada” sería el contenido inicial de la cinta.

También es posible definir una Máquina de Turing Universal que recibe como entrada el código de una máquina de Turing y unos datos de entrada y simula la ejecución de dicha máquina de Turing. Esta Máquina de Turing Universal es uno de los antecesores del concepto de “programa almacenado”: pensar en el programa como un dato más que puede leerse (para ejecutarse) o incluso modificarse. Puede parecer un concepto evidente, pero hasta ese momento la mayoría de máquinas tenían un propósito específico (un problema, una herramienta). Esta idea de máquina “programable y de propósito general” se había utilizado en el campo de las máquinas de tejer (para coser patrones complejos definidos mediante una tarjeta perforada), pero aquí se aplicaba a la realización de cálculos.

Aunque excelente como modelo teórico, la Máquina de Turing tiene una arquitectura poco útil desde un punto de vista práctico y existen formas de diseñar una máquina más efectiva. En esta línea, la arquitectura von Neumann plantea tres componentes: una memoria que puede contener datos e instrucciones; una Unidad Central de Proceso (CPU) que puede ejecutar las instrucciones del programa; y dispositivos de entrada y salida para interactuar con el entorno recibiendo o enviando datos. A diferencia de la Máquina de Turing, la memoria tiene acceso aleatorio: el tiempo de acceso a una posición de memoria no depende de en qué posición se encuentra dentro de la memoria (con el cursor, leer la posición era una sola acción pero leer posiciones alejadas requería múltiples desplazamientos del cursor).

Esta arquitectura ha permitido desarrollar ordenadores cada vez más potentes. ¿Por qué este progreso? La clave han sido los avances tecnológicos que permiten crear hardware de coste razonable para implementar estos componentes de forma muy eficiente. Por ejemplo:

  • El desarrollo de los transistores en substitución de las válvulas de vacío permitió incrementar la velocidad, reducir el tamaño, coste  y consumo de energía de cada componente.
  • La progresiva reducción del tamaño de los transistores permite incorporar cada vez más componentes en un circuito integrado (doblando su número cada dos años según predice la Ley de Moore).
  • La imparable reducción del coste de la memoria con el desarrollo de tecnologías de memoria con mayor densidad (la cantidad de información que puede ser almacenada por unidad de volumen) y mayor rapidez.

 

Supercomputador Mare Nostrum del Barcelona Supercomputing Center. Fuente: Flickr (Isabelle Puaut). Licencia: CC BY-NC-ND 2.0

Supercomputador Mare Nostrum del Barcelona Supercomputing Center. Fuente: Flickr (Isabelle Puaut). Licencia: CC BY-NC-ND 2.0

Sin embargo, hay dudas sobre si se podrá mantener indefinidamente este crecimiento exponencial en la capacidad de cálculo. Por ejemplo:

  • La ley de Moore está alcanzando su límite y no son pocos quienes la declaran muerta. En primer lugar, un mayor número de transistores por unidad de superficie incrementa la cantidad de calor disipado (y no queremos que se funda el chip, ¿verdad?). En segundo lugar, en algún punto el menor tamaño de los transistores podría llegar a reducir su fiabilidad. Y en tercer lugar, el proceso de fabricación resulta cada vez más complejo y costoso: la contrapartida de la Ley de Moore es la Ley de Rock, que dice que el coste de una planta de fabricación de chips se dobla cada 4 años. Esto significa que, aunque sea factible técnicamente, llegará un punto en el que no será rentable incrementar el número de transistores en un chip.
  • Otro enfoque es la paralelización: dividir un cómputo en subtareas que pueden ser resueltas de forma independiente en distintos ordenadores (o procesadores, o GPUs, ….) y combinadas para obtener el resultado global. Lamentablemente, esta aproximación funciona mejor para algunos problemas que para otros y tiene la limitación del coste: multiplicar el rendimiento por N requiere multiplicar la inversión por ese factor (como mínimo).

Así pues, por un lado tenemos la creciente necesidad de cálculo para procesar grandes volúmenes de datos (Big Data), entrenar sistemas inteligentes, generar imágenes o entornos cada vez más realistas, resolver problemas de optimización y logística más complejos, … Y todo ello, si puede ser en tiempo real, mejor. Y por otro lado tenemos un techo (todavía no alcanzado, pero que empieza a entreverse en el horizonte) en la capacidad de cálculo de los ordenadores actuales.

Ante este panorama, ¿quién puede resolver nuestros problemas? Esperad, la computación cuántica llama a nuestra puerta.

Comentar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Leer entrada anterior
Action Design Research

Hubo un tiempo en que la investigación en informática (computer sciences) consistía en inventar un nuevo artefacto o mejorar uno...

Cerrar