«La ciencia está impulsada por la simulación», dice Dongarra. «Es esa coincidencia entre la capacidad del hardware y la necesidad de las simulaciones para usar ese hardware, donde encaja mi software».
Una buena parte de la vida de Jack J. Dongarra la ha pasado viajando entre dos mundos. En un mundo, un grupo de matemáticos se sienta con lápiz y papel e imagina cosas que podrían resolverse con computadoras. En otro mundo, un coloso de circuitos integrados tiene un poder increíble pero también limitaciones increíbles: velocidad, memoria, energía, costo.
Reunir esos mundos ha sido una carrera de cinco décadas.
«Es hacer coincidir las características algorítmicas de cosas más matemáticas con los aspectos prácticos del hardware, estás tratando de explotar esa arquitectura para obtener el mayor rendimiento posible», explicó Dongarra en una entrevista con MarketingyPublicidad.es a través de Zoom.
El miércoles, esa carrera fue celebrada por The Association for Computing Machinery, que otorgó a Dongarra su mayor honor, el premio ACM Turing 2021, por «contribuciones importantes de importancia duradera», el equivalente del Nobel en la industria informática.
Dongarra, quien es Profesor Distinguido Universitario de Ciencias de la Computación en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación de la Universidad de Tennessee, recibe un premio de $1 millón junto con el reconocimiento. El apoyo financiero a ACM para el premio lo realiza Google.
«Estoy realmente honrado, es difícil creer que esto haya sucedido», dijo Dongarra. MarketingyPublicidad.es de ganar el premio. «Tengo un gran respeto», dijo, por sus compañeros de Turing.
«He usado sus libros, he usado sus teoremas y realmente son las estrellas y los pilares de nuestra comunidad», dijo Dongarra. «Solo espero poder ser un modelo a seguir para los futuros científicos informáticos», dijo Dongarra.
Es probable que todos sus compañeros de Turing hayan usado los programas y las bibliotecas de Dongarra en un momento u otro, tal vez a diario.
Estos incluyen herramientas omnipresentes como LINPACK, un programa de álgebra lineal ampliamente utilizado para evaluar el rendimiento de los sistemas; BLAS, un caballo de batalla para realizar operaciones vectoriales y matriciales en el corazón de la computación científica; y MAGMA, una biblioteca de álgebra lineal para GPU.
A juicio de Dongarra, sus aportes más importantes se resumen en tres cosas.
«Uno fue el diseño y la construcción de software numérico que se ejecuta en máquinas de alto rendimiento que obtiene rendimiento y es portátil a otras máquinas y arquitecturas», dijo Dongarra.
En segundo lugar, su trabajo sobre los mecanismos de procesamiento paralelo, incluida la «interfaz de paso de mensajes» o MPI, ampliamente utilizada. Y tercero, técnicas de evaluación del rendimiento para medir qué tan rápido corre una computadora, lo que hizo posible cosas como la lista TOP500 de supercomputadoras.
Todo ese trabajo «se centró en arquitecturas informáticas avanzadas y cómo explotarlas de manera muy efectiva».
Dongarra, en el extremo izquierdo, con colegas pasando el rato en su «LINPACK» Ford Pinto, 1979. Una década después, tenía un auto nuevo con la placa del programa sucesor, LAPACK.
Dongarra obtuvo una licenciatura en Matemáticas de la Universidad Estatal de Chicago, una maestría en Ciencias de la Computación del Instituto de Tecnología de Illinois y un Ph.D. en Matemáticas Aplicadas de la Universidad de Nuevo México.
Los archivos contienen numerosas fotos de Dongarra rodeado de colegas, a menudo pasando el rato en uno de los muchos autos que ha tenido y que generalmente tienen una placa con el nombre de un programa de computadora. Una imagen de 1979 muestra a Dongarra y sus colegas sonrientes apoyados en su Ford Pinto, matrícula «LINPACK».
«No era solo yo, era una comunidad de personas que contribuían», señaló sobre los diversos logros del software, incluida la comunidad de código abierto.
El hilo singular de los proyectos a lo largo de los años fue cómo permitir que los científicos hicieran los experimentos que querían hacer dado lo que permitía la computadora.
«La ciencia está impulsada por la simulación», observó Dongarra. «Es esa coincidencia entre la capacidad del hardware y la necesidad de las simulaciones para usar ese hardware, donde encaja mi software».
Eso es más difícil de lo que parece porque las innovaciones de software siempre van detrás del hardware, explicó Dongarra.
«Siempre estamos en apuros», dijo Dongarra. «El software siempre sigue al hardware, así lo veo yo». Se necesita un mejor «codiseño», sugirió, donde los diseñadores de hardware y software encontrarían puntos en común en sus planes.
«De hecho, de la forma en que realmente lo veo, los arquitectos de hardware tiran algo por la borda y esperan que la gente de software adapte sus problemas a esa máquina».
En la brecha, Dongarra ha inventado herramientas para brindar a los programadores un mayor dominio en todo tipo de computación. Cuando se le preguntó cuál es su «hijo favorito» entre sus muchas contribuciones, Dongarra respondió: «Mi hijo favorito tiene que ser mi hijo más reciente, por así decirlo, y todavía lo estamos haciendo, un paquete llamado SLATE, un paquete de álgebra lineal que está dirigido a las máquinas de exaescala que está instalando el [U.S.] Departamento de Energía.»
SLATE se ejecuta en la «pirámide computacional», desde computadoras portátiles hasta computadoras de escritorio, clústeres y supercomputadoras. El usuario de SLATE «Puede olvidarse del hardware subyacente, hace la llamada que hizo para resolver ese problema de álgebra lineal, y SLATE internamente determina qué hacer para distribuirlo entre cientos de miles de procesadores o GPU».
En gran parte debido a sus esfuerzos, el mundo de la supercomputación finalmente se ha generalizado. Cada vez más, las supercomputadoras que Dongarra pasó su vida programando están disponibles a través de la computación en la nube, democratizando su uso.
“Estamos en un punto de inflexión en términos de cómo hacemos nuestra computación”, dijo Dongarra. «Tradicionalmente hemos realizado nuestra computación científica en estas máquinas que ocupan el espacio de dos canchas de tenis».
La industria de la supercomputación está «casi al final de la línea en cierto sentido en la forma tradicional en que construimos nuestras supercomputadoras», dijo Dongarra. Debido al desglose de la Ley de Moore, la regla general de que los transistores duplican su densidad cada 18 meses, ensamblar una computadora autónoma de alto rendimiento no es un proceso que continúe escalando.
«No vamos a poder armar ese gran conjunto y simplemente girar la manivela; no vamos a poder ir a zettaflops». Las próximas supercomputadoras más rápidas ejecutan exaflops, es decir, millones de billones de operaciones de coma flotante por segundo; un zettaflop serían mil exaflops.
Más bien, los sistemas a escala de la nube tienen que asumir la próxima época de computación gigantesca después de la exaescala.
«El punto de inflexión es tal que estamos viendo que se invocan más máquinas basadas en la nube para este tipo de aplicaciones».
Como consecuencia, se avecina una división entre las piezas básicas utilizadas para las supercomputadoras y los chips personalizados en la nube, como el procesador «Graviton» de Amazon.
«Vemos estas empresas, Amazon, Facebook, Google, que tienen una enorme cantidad de recursos», dijo. «Son exotérmicos: tienen tremendos recursos».
«Cuando miro el otro lado de la ecuación, nuestros laboratorios nacionales luchan por poner en marcha los recursos que son necesarios, debido a la financiación, para construir y poner en marcha las máquinas; son endotérmicos, necesitan recursos», dijo Dongarra. . Además de su cátedra, Dongarra es Miembro Distinguido del Personal de Investigación del Laboratorio Nacional Oak Ridge del Departamento de Energía.
Al menos esos recursos comerciales en la nube estarán disponibles para que los científicos los utilicen para necesidades específicas, dijo. Los científicos podrán usar recursos que incluyen máquinas cuánticas para «simplemente hacer esa cosa especializada para la que nuestra aplicación necesita la computadora cuántica, y la nube podrá aplicar los recursos correctos a esa aplicación».
No solo se ha extendido la supercomputación con la llegada de la nube, sino que el álgebra lineal, el fuerte matemático de Dongarra, el tratamiento de vectores, matrices y tensores, ha llegado al corazón de la computación. El álgebra lineal es la base del aprendizaje profundo actual, que consiste principalmente en multiplicar tenores de varios tamaños y manipular vectores de datos. Además, el hardware informático actual, sistemas como Sistemas CerebrásWafer-Scale-Engine de, para aprendizaje profundo y computación científica, se trata de acelerar grandes cantidades de multiplicaciones de matrices paralelas.
Dongarra trabajando en MatLab en un Tektronix 4081 en 1980, en Argonne National Laboratories. «Crecí escribiendo FORTRAN, y hoy tenemos mecanismos mucho mejores» como el lenguaje de programación Julia y Jupyter Notebooks, dice. Aún así, se necesitan más herramientas para abstraer los detalles de las operaciones de hardware. «Hacer que el científico sea más productivo es el camino correcto a seguir».
«Soy matemático, para mí todo es álgebra lineal, pero el mundo también lo está viendo», dijo. «Es un tejido sobre el que construimos otras cosas». La mayoría de los problemas en el aprendizaje automático y la IA, dijo, se remontan a un «componente computacional eterno» en el álgebra lineal.
Si bien el hardware acelera la multiplicación de matrices, Dongarra, una vez más, tiene en cuenta las necesidades de los científicos y los creadores de software. «Crecí escribiendo FORTRAN, y hoy tenemos mecanismos mucho mejores» como el lenguaje de programación Julia y Jupyter Notebooks.
Lo que se necesita ahora, dijo, son más formas de «expresar esos cálculos de una manera fácil», es decir, cálculos de álgebra lineal como multiplicaciones de matrices. Específicamente, se necesitan más herramientas para abstraer los detalles. «Hacer que el científico sea más productivo es el camino correcto a seguir», dijo.
Cuando se le preguntó qué paradigma de programación de software debería tomar el control, Dongarra sugirió que el lenguaje Julia es un buen candidato, y MatLab es un buen ejemplo del tipo de cosas que se necesitan. Todo vuelve a la tensión por la que Dongarra ha navegado durante cincuenta años: «Quiero expresar las cosas con facilidad y obtener el rendimiento del hardware subyacente».
En cuanto a lo que le interesa ahora como científico, Dongarra se está educando a sí mismo en las diversas técnicas de IA de aprendizaje automático construidas sobre todo ese código de álgebra lineal. Cree firmemente en los beneficios que obtendrá la IA para la ingeniería y la ciencia.
«El aprendizaje automático es una herramienta tremenda para ayudar a resolver problemas científicos», dijo Dongarra. «Recién estamos comenzando a comprender cómo podemos usar la IA y el aprendizaje automático para ayudar con eso».
«No va a resolver nuestros problemas», dijo, «va a ser lo que nos ayude a resolver nuestros problemas».