En 1985 en el auditorio de los Laboratorios BELL, Richard Feynman, seguramente el físico más brillante de la segunda mitad del siglo XX, llamaba a la reflexión con su estilo provocador a una audiencia repleta de científicos e ingenieros declarando que él no creía en la computación como ciencia («I do not believe in Computing Science»).
DESTACADOSPerfil: Isabel CamposArgumentaba Feynman que la ciencia es el estudio del comportamiento de la naturaleza, mientras que la ingeniería es el estudio de las cosas que fabrica el hombre, por eso la computación en sí misma, pertenece al ámbito de la ingeniería.
Feynman se caracterizó por saber aplicar una enorme intuición física a muchas áreas de conocimiento, era un científico multidisciplinar. En una de sus últimas tareas formó parte de la Comisión Rogers, encargada de analizar las causas del desastre del transbordador Challenger. Feynman demostró, en una famosa intervención televisiva, cómo las anillas de las juntas de los motores del transbordador perdían la flexibilidad a temperaturas bajo cero (como las que se registraron la noche anterior al lanzamiento) y se rompían como el cristal, provocando la explosión que acabó con el transbordador y la vida de sus tripulantes en 1986.
En general es poco conocido que Feynman, premio Nobel en Física por una teoría que explicaba el comportamiento de los quantos de luz, algo que en principio parece tan lejos de la aplicabilidad cotidiana, fuese capaz de resolver el puzzle nada menos que de la tragedia del Challenger.
En particular en el tema que nos ocupa, Feynman trabajó también en el diseño de los primeros superordenadores paralelos que existieron a finales de los años 70, y formó parte de manera fundamental del equipo que construyó un ordenador masivamente paralelo, la
Connection Machine.
Computadores en general
Un ordenador es un dispositivo capaz de recibir información, procesarla y devolver esa información procesada. Un ordenador moderno es capaz de hacer cosas tan dispares como ganar al ajedrez al campeón del mundo de turno y predecir el tiempo que hará mañana. Sin embargo, en esencia, todos los ordenadores son iguales. En todos ellos se reproduce una misma arquitectura; un diseño de máquina digital que data del año 1945 y que se debe al matemático húngaro John von Neumann (ver figura 1).
En la llamada máquina de Von Neumann hay una memoria donde alojar información, una unidad de control para gestionar la entrada y salida de información y una unidad aritmética capaz de realizar operaciones lógicas sobre esa información.
La implementación tecnológica se hace usando transistores digitales sobre silicio y los diseñadores de hardware se han esforzado por encontrar soluciones cada vez más compactas. Una mayor condensación de transistores nos permite hacer más operaciones por segundo, es decir, aumentar la frecuencia con que el procesador realiza una operación lógica a cada «tic» de su reloj.
Como fruto de este esfuerzo, durante los últimos 30 años, cada año y medio ha sido posible doblar el número de transistores en los chips de los componentes internos de los ordenadores. En esto consiste la llamada ley de Moore, que no es ninguna ley de la naturaleza sino una predicción, aunque ciertamente visionaria, que uno de los fundadores de Intel, Gordon Moore, hizo en el año 1965 sobre la evolución de la tecnología de integración de transistores.
La predicción de Moore se ha ido cumpliendo razonablemente. Sin embargo hace ya varios años que la realidad no es exactamente así. Se sabía desde el principio que hay límites prácticos a la hora de hacer que un ordenador aislado alcance la velocidad suficiente para resolver problemas arbitrariamente complejos.
Estos límites tienen que ver con la velocidad máxima de transmisión de información: la velocidad de la luz (30 cm/nanosegundo) o el límite de transmisión en el cobre (9 cm/nanosegundo). Además, a escalas muy pequeñas las reglas de la física clásica ya no se cumplen y los electrones, portadores de la información en los transistores, dejan de comportarse como partículas y comienzan a comportarse como ondas. Entraríamos en el terreno de investigación de la llamada computación cuántica, todavía en un estado muy prematuro de desarrollo.
La miniaturización de los transistores impone, además de los límites físicos, los económicos puesto que su coste se incrementa. Es por ello por lo que las arquitecturas más modernas han preferido por replicar estructuras internas de la CPU (central processing unit) antes que llevar la
En esencia, todos los ordenadores son iguales. En todos ellos se reproduce una misma arquitectura; un diseño de máquina digital que data del año 1945 y que se debe al matemático húngaro John von Neumannminiaturización al extremo. Esta es la filosofía de las arquitecturas tipo multinúcleo, en inglés
multicore, que ahora poseen la practica totalidad de las CPU.
Las mejoras en el rendimiento de la CPU ya no vienen, por tanto, de hacer cada vez más pequeña la superficie del chip sino de introducir más de una unidad de cálculo, o
core, en cada CPU con lo que se consigue que la frecuencia total se multiplique por agregación. De hecho la frecuencia por
core lleva prácticamente paralizada en torno a los 3,4GHz en los últimos años.
Es necesario puntualizar que el ahorro económico que supone la arquitectura
multicore se hace a expensas de una mayor complejidad en la programación: la carga de trabajo se tiene que distribuir entre los
cores. Es decir, hay un trabajo significativo que ahora recae sobre los desarrolladores de sistemas operativos y códigos.
Los ordenadores paralelos
Desde finales de los años 70 era ya claro para la comunidad científica que la resolución de problemas muy complejos iba a requerir la utilización de varios ordenadores trabajando conjuntamente para repartirse la carga de la simulación.
A mediados de los años 80, la empresa
Thinking Machines Corporation, una de las pioneras en el diseño de ordenadores paralelos, comenzó a producir máquinas basadas en la agregación de miles de procesadores conectados entre sí literalmente mediante cables. Eran las llamadas
Connection Machine (CM), de las que hubo cinco generaciones, la última de ellas en 1993. A través de los cables, los procesadores se transmitían la información necesaria para cooperar en los cálculos.
En la CM la unión hacía la fuerza: la frecuencia de cada procesador individual no era alta (entre 10 y 30 Hz) pero su ventaja residía en una poderosa red de comunicaciones interna, uniendo 64.000 procesadores que podían así cooperar para resolver un problema.
El
router, que es la parte del hardware que permite a los procesadores comunicarse, fue analizado por Feynman, quien se encargó de calcular mediante métodos algebraicos (redes de Hopkins) la topología óptima para que una red de 64.000 procesadores estuviese interconectada de manera que se evitase el colapso por sobrecarga de información en los cables.
¿Por qué se preocupaba Richard Feynman de algo tan alejado de la física teórica? La respuesta es que quería estudiar cromo dinámica cuántica (QCD) y aplicó sus conocimientos para avanzar en la construcción de la máquina necesaria para ello.
La QCD es la teoría que describe cómo se comporta el mundo subatómico de partículas, como los protones. Usando QCD es posible calcular los valores de cantidades medibles físicamente mediante la simulación por ordenador.
Las máquinas basadas en hardware muy especializado son máquinas en la frontera del conocimiento tecnológicoPor ejemplo, la masa del protón. En la práctica, el cálculo de la masa del protón mantendría ocupado durante muchos años a cualquier superordenador de la época de Feynman, y varios años a cualquier superordenador de nuestra época.
Feynman escribió un código para simular QCD en la CM. Puesto que solo conocía el lenguaje BASIC, desarrolló una versión paralela de BASIC y, primero, hizo la simulación «a mano» para estimar cómo de rápido iría en la máquina.
Como anécdota, cabe decir que las CM fueron máquinas visualmente muy atractivas. Podemos verlas en la película
Parque Jurásico, en la que una CM-5 (foto 1) aparece como el «ordenador responsable de la isla».
La historia de la
Connection Machine es un ejemplo de una simbiosis frecuente en la historia de la computación científica: colaboración entre ingenieros y físicos para diseñar hardware optimizado para uso científico. El caso extremo de esta colaboración se plasma en los llamados ordenadores dedicados, máquinas en las que la electrónica está volcada en resolver un problema científico particular, aun a expensas de resultar menos eficientes para cálculos generalistas. Especial mención merecen las colaboraciones dedicadas a diseñar máquinas para resolver QCD: el grupo APE con base en la Universidad de Roma, con ramificaciones en España en la Universidad de Zaragoza, o el grupo QCDOC, de la Universidad de Columbia, en los EEUU. Estos grupos están desarrollando ordenadores dedicados a QCD desde mediados de los años 80.
En los años 80 y 90, la empresa CRAY producía también superordenadores con éxito pero con una visión distinta: muy pocos procesadores pero muy potentes. Por ejemplo, la serie de CRAY-XMP (1982-1985) consistía en máquinas de entre uno y cuatro procesadores máximo, con una frecuencia de alrededor de 120MHz.
En 1988, la empresa estatal Construcciones Aeronáuticas S.A. (actual EADS España) compró el primer superordenador que se instaló en España, un CRAY 1-S/2000. La comunidad científica española tenía acceso 975 horas al año. El resto del tiempo estaba dedicado a estudiar aerodinámica en aviones, sustituyendo a la muy costosa experimentación en túneles de viento.
Un CRAY-XMP costaba en el año 1985 unos 15 millones de dólares, y tenía un potencial de cálculo de 420 millones de operaciones de decimales por segundo (420 MegaFlop/s). Claramente, una compra de este tipo era una inversión posible solo a nivel nacional.
 |
|
Foto 1.
Arriba, Connection Machine-5.
Las luces rojas representan conexiones activas entre procesadores.
A la izquierda, la imagen de su contemporáneo, el CRAY-XMP.
|
La era de los grandes clústers
Las máquinas basadas en hardware muy especializado son máquinas en la frontera del conocimiento tecnológico, costosas de producir y, sobre todo, muy específicas desde el punto de vista de su explotación. El fabricante, junto con el hardware, tenía que desarrollar un lenguaje de programación ad hoc para la máquina que tuviera en cuenta el hardware, compiladores o incluso el sistema operativo.
Para utilizarlas era necesario aprender su lenguaje de programación y con ello reescribir los códigos de simulación. No es de extrañar, por tanto, que el hardware/software de estos sistemas haya evolucionado hacia máquinas menos especializadas en general, con sistemas operativos compatibles basados en UNIX y capaces de usar lenguajes de programación estándar como el C, aun a expensas de sacrificar entre un 10-20% de rendimiento con respecto a lenguajes adaptados al hardware.
En paralelo el software ha evolucionado en el mismo sentido. Dos hechos fundamentales fueron el desarrollo del software de código abierto con el proyecto GNU y la introducción de Linux como sistema operativo, convertido ahora en un estándar de facto en el mundo científico.
Este proceso de simplificación fue en gran parte consecuencia del auge de la informática comercial a partir de mediados de los años noventa, lo que indujo un abaratamiento del hardware muy importante en los costes de producción debido a la competencia entre fabricantes para ofrecer productos con más rendimiento, sobre todo orientados al mercado de juegos por ordenador.
Actualmente la computación científica se realiza mayoritariamente en Clusters Beowulf, unión de varios ordenadores construidos con componentes comerciales conectados mediante un switch que posibilita el intercambio de datos entre ellos
Actualmente la computación científica se realiza mayoritariamente en Clusters Beowulf. Este es el nombre genérico que reciben las máquinas formadas por la unión de varios ordenadores construidos con componentes comerciales conectados mediante un switch que posibilita el intercambio de datos entre ellos. El primero de ellos fue ensamblado en 1994 en los Estados Unidos.
Los fabricantes siguen incluyendo en sus productos opciones dirigidas a los clientes del sector científico, sobre todo enfocadas a una mejor eficiencia a la hora de hacer cálculos con decimales. Pero en esencia todos los superordenadores que se presentan en el mundo como tales son Clusters Beowulf, cada vez con más procesadores y con un switch más rápido.
En el momento de escribir este artículo, el mayor Cluster Beowulf del mundo es el K-Computer, del centro de investigación RIKEN (Japón). El K-Computer consiste en 550.000
cores, capaces de alcanzar una potencia combinada de ocho Petaflops, es decir ocho millones de millones de multiplicaciones de números decimales cada segundo.
En España,
MareNostrum, la máquina emblema del Centro Nacional de Supercomputación, cuenta con 10.000
cores, y es el sistema más grande instalado en nuestro país. Los centros de investigación con una componente computacional importante albergan también Clusters Beowulf tipicamente de entre 1.000 y 4.000
cores.
Infraestructuras de computación distribuída
El avance de la ciencia básica suele ir en paralelo con el desarrollo de soluciones innovadoras que permitan a los científicos abordar problemas complejos. Si la realización de un proyecto científico necesita de una infraestructura que no existe en ese momento, los científicos desarrollarán una solución ad hoc para resolverlo.
Un ejemplo paradigmático fue la invención de la Web. En el año 1990, en el CERN (el Laboratorio Europeo de Física de Partículas), un grupo liderado por Tim Berners-Lee diseñó un sistema de intercambio de ficheros para los científicos del CERN, que hoy conocemos como la World Wide Web.
A finales de los 90 surgió otra idea visionaria en el sentido que nos ocupa: igual que compartimos información en la Web, usando la conexión a Internet para transmitirla, ¿por qué no compartir por Internet la propia infraestructura de computación?
Así se concibió la creación de una infraestructura global de computación distribuida, un
Grid, que daría servicio para empezar a todos los investigadores de física de partículas del mundo que necesitasen analizar datos del nuevo acelerador del CERN, el
Large Hadron Collider (LHC).
El avance de la ciencia básica suele ir en paralelo con el desarrollo de soluciones innovadoras que permitan a los científicos abordar problemas complejos
La infraestructura Grid ha evolucionado en sus modos de organización: sería simplista pensar que es equivalente compartir información (la Web) y compartir recursos de computación (el Grid), cuando los modelos de coste son tan distintos. Lo importante es que es la tecnología Grid posibilita compartir, si se desea, la infraestructura.
En Europa tenemos una infraestructura única que da soporte a los científicos europeos: la
European Grid Infrastructure (EGI), formada por la unión de las infraestructuras Grid nacionales de 38 países europeos.
La infraestructura de EGI consiste en más de 250.000
cores y más de 150 millones de GigaBytes. La Península Ibérica representa aproximadamente el 10% de esta infraestructura. Durante el año 2011 la infraestructura de EGI ha proporcionado más de 1.500 millones de horas de CPU, entre otras cosas para analizar los datos del LHC: la mayor máquina jamás construida por el hombre necesita también la mayor infraestructura de computación nunca diseñada para asistir a los científicos en la búsqueda de la estructura fundamental de la materia.
La tecnología computacional se ha desarrollado en los últimos 30 años de manera asombrosa. Un hecho que avala esta afirmación es que nuestros teléfonos móviles tienen una capacidad de cálculo equivalente a la del primer superordenador que se instaló en España en 1988.
Mirando al futuro, vamos a terminar como empezamos, citando a Feynman cuando introdujo conceptualmente lo que conocemos como computación cuántica: «... hay mucho margen para hacer los computadores más pequeños, no hay nada que yo haya visto en las leyes de la física que nos impida hacer un computador a nivel atómico».