IBM combina hardware y software para analizar datos financieros a un ritmo sin precedentes.
Los súperordenadores procesan enormes cantidades de datos mediante el uso de varios procesadores unidos para trabajar en paralelo. Pero la mayoría de los súperordenadores tienen que, primero, meterse en bases de datos para buscar información, procesar los datos y después dar un resultado—un proceso que puede llevar minutos o días, dependiendo del tipo de tarea. Sin embargo, desde hace unos años los investigadores han empezado a explorar el potencial que reside en la denominada stream computing, un método de computación que permite a los ordenadores procesar un flujo de datos en tiempo real y en cuestión de segundos.
IBM acaba de demostrar que las técnicas de stream computing se pueden utilizar para analizar datos de mercado más rápidamente de lo que se venía haciendo. Este tipo de máquinas es capaz de ayudar a que los sistemas automatizados de operaciones bursátiles determinen el precio de los títulos basándose en los sucesos financieros que acaben de ocurrir. Para construir este sistema, la compañía informática se alió con TD Securities, una firma de inversión y banca, para adaptar un programa de IBM llamado InfoSphere Streams y que pudiera analizar datos financieros. La firma ejecutó el programa en uno de los últimos súperordenadores de IBM, conocido como Blue Gene/P.
El sistema de IBM supone una mejora sobre los sistemas de intercambio financiero actuales, que recogen sus datos a partir de numerosas fuentes en todo el mundo, incluyendo los siempre fluctuantes precios de las acciones y volúmenes de intercambio. Esta información se divide en trozos más pequeños, llamados mensajes, y se envía a través de los sistemas bursátiles. Cuantos más mensajes pueda examinar un sistema, será capaz de determinar un mayor número de precios de títulos, y mayor será el número de opciones que puedan venderse utilizando las máquinas automatizadas de intercambio bursátil que unen a compradores con vendedores.
El avance más significativo, según Nagui Halim, director científico del proyecto de stream computing en IBM, es que los ingenieros fueron capaces de optimizar el software para que se ejecutase en el Blue Gene/P y que los flujos de datos fueran analizados de forma más rápida que en otros sistemas de análisis financiero. La información llegaba a un ritmo de cinco millones de mensajes por segundo, señala Halim. El sistema fue capaz de procesar un mensaje en 200 microsegundos. Como resultado, obtenemos un súperordenador que nos proporciona los precios de los títulos 21 veces más rápido que cualquier otro tipo de sistema de intercambio financiero.
Halim afirma que hay ocasiones en que resulta de vital importancia el poder analizar los datos según nos van llegando. IBM ha construido un sistema que vigila los signos vitales de los pacientes, tales como sus niveles de gas en la sangre, y hace un seguimiento de las estadísticas del paciente, como por ejemplo su peso y régimen de medicación. Todos estos cientos de datos son analizados y correlacionados, dando como resultado una imagen de la salud del paciente que sería imposible obtener sólo a partir de las observaciones de un doctor o enfermero.
El sistema financiero de stream computing consiste en tres conceptos, según nos explica Halim. El primero es el uso de flujos de datos que se mueven en una dirección a través de los sistemas. El segundo es el hecho de que los datos se procesan por partes, o ventanas, dentro de ese flujo. Y el tercero es el uso de una colección de algoritmos que hacen un seguimiento del ritmo con el que llegan los datos, que comprenden hasta dónde llega la capacidad del hardware y que redirige los flujos de la forma más eficiente. Estos algoritmos toman cada flujo y “lo esparcen de formas distintas,” señala Halim, y “lo asignan al tipo de hardware que se está especializado en cada tarea distinta.”
Por ejemplo, algunos núcleos en concreto de un súperordenador se pueden optimizar para que procesen y hagan un resumen del texto de las noticias, como por ejemplo la mala salud de un famoso director de una compañía, mientras que otros núcleos se enfocarían en el realizar operaciones matemáticas simples a partir de los números que lleguen al sistema. IBM ha desarrollado su propio lenguaje de stream computing, llamado Spade, que es capaz de discernir las capacidades técnicas de cualquier súperordenador y repartir los flujos de datos de forma apropiada, sin demasiada ayuda por parte de los programadores. Según Halim, Spade hace posible que las técnicas de stream computing puedan ejecutarse en otro tipo de sistemas de procesador múltiple, no sólo el Blue Gene/P.
El concepto de stream computing no es algo nuevo. De hecho, alrededor de la década de los 60 ya se empezó a hablar de conceptos de computación para el proceso de datos según entran en el ordenador, afirma Saman Amarasinghe, profesor de ingeniería eléctrica y ciencias informáticas en MIT. Sin embargo, ha sido recientemente cuando se le ha empezado a dar un uso práctico a este concepto, gracias a la creciente popularidad de los chips multinúcleo, que poseen múltiples centros de proceso para llevar a cabo infinidad de cálculos de forma independiente. Los flujos de datos se pueden dividir y enviar a los núcleos individuales de forma relativamente fácil, señala Amarasinghe.
Amarasinghe añade que IBM ha logrado mejoras en el aspecto más académico, o teórico, de la stream computing y las ha aplicado a los problemas del mundo real. “IBM ha colocado a la stream computing en el más alto nivel de rendimiento,” afirma. “Hacen que todo se procese muy rápidamente.”
Amarasinghe cree que la popularidad de la stream computing seguirá creciendo gracias a la confluencia de varios factores. Por un lado, la industria fabricante de chips planea seguir incrementando el número de núcleos que colocan en sus procesadores. En segundo lugar, la stream computing es un método de programación que aprovecha esta multitud de núcleos de forma relativamente sencilla. Por último, “hay una explosión de datos”, señala, “y es el tipo de datos que nos entran a través de un flujo, como el video y el audio.” Todo esto nos podría llevar a desarrollar interfaces de usuario más avanzadas que pudieran procesar interacciones entre los usuarios usando video y audio en tiempo real, afirma.