Jueves, 24 de Abril de 2025

Frances Allen. Hizo la primaria en una escuela rural de una sola aula y terminó ganando el premio Nobel de la computación

ArgentinaLa Nación, Argentina 20 de julio de 2024

Frances Allen fue también la primera mujer en ser nombrada Fellow de IBM, en 1989 En 1988 , la revista donde trabajaba me envió a entrevistar al Dr

Frances Allen fue también la primera mujer en ser nombrada Fellow de IBM, en 1989



En 1988 , la revista donde trabajaba me envió a entrevistar al Dr. Jorge Sanz , investigador de IBM . Estaba de paso por Buenos Aires y me recibió en las oficinas que el gigante azul tiene en el centro porteño. La charla sobre su trabajo no solo fue extraordinaria, sino que me dio un vistazo de lo que estaba por venir. Por ejemplo, su notebook estaba conectada sin cables a la red de IBM . Palabras más, palabras menos (han pasado más de 35 años), Sanz estaba entusiasmado con lo práctico que era llevar el correo electrónico (me mostró la pantalla) consigo a todas partes.

No es un error de tipeo. Esto ocurrió en 1988. Internet , que había arrancado el 1° de enero de 1983 , todavía no llegaba a los particulares, ni siquiera en Estados Unidos . Nadie tenía mail, por lo tanto. Salvo el Dr. Sanz y unos pocos pioneros que empezaban a vivir como hoy vive la mayoría de las personas en el mundo industrializado. Con Internet y la mensajería consigo en todo momento. El edificio de IBM en Catalinas, en la ciudad de Buenos Aires

Pero pasó algo más, y tuvo que ver con el corazón de la entrevista. Sanz, un argentino que en ese momento estaba en el laboratorio de IBM en Almadén , investigaba sobre un asunto nuevo, casi de ciencia ficción: el cómputo paralelo . Recuerdo que me explicó los desafíos de correr un programa en varios cerebros electrónicos simultáneamente y que me dio un montón de documentación en la que, de nuevo, palabras más, palabras menos, se retrataba el futuro que también estamos viviendo hoy. Desde tu celular hasta las supercomputadoras que entrenan modelos de lenguaje como el de ChatGPT , el cómputo es hoy todo paralelo. Pues bien, el cordial y generoso Jorge Sanz me contó esto y varias otras cosas en una oficina de IBM en 1988.

Casi diez años antes, en 1980, Frances Allen , nuestra pionera inesperada de hoy, había recibido un encargo crucial, luego de unos años sabáticos que se había tomado para dar clases en la Universidad de New York y en Stanford . A Allen la pusieron al frente del equipo de IBM que iba a desarrollar el cómputo paralelo . De modo que, incluso cuando parezca que esa reunión inolvidable con Sanz en 1988 fue muy adelantada, Frances había empezado a trabajar en esto mucho antes.

¿Por qué ella? Bueno, porque todavía mucho antes, desde la década del ‘60 , había hecho avances fundacionales en un área que es todavía más críptica que el cómputo paralelo. Ese área es la optimización de compiladores . Cosa que suena, lo sé, a conjuro mágico. Pero las explicaciones ya llegan. El hecho es que nada de lo que usamos hoy existiría sin ambas disciplinas: los compiladores eficientes y el cómputo paralelo . Y la primera conduce necesariamente a la segunda.

Una maestra rural

Frances Elizabeth Allen nació el 4 de agosto de 1932 en Peru , New York , Estados Unidos. El pueblo, cuyo nombre proviene de la vista que tiene de las Montañas Adirondack , semejante a la de Los Andes en Perú (aunque en los registros aparece sin tilde , posiblemente porque en inglés no se usan), tenía menos de 2000 habitantes en 1932 . Pero Frances de todos modos se crió en el campo . Su papá era granjero y su mamá, maestra de escuela . Tuvieron seis hijos . Frances era la mayor y fue, como todos sus hermanos, a una escuela rural , a casi dos kilómetros de la granja. Solo había un aula. Es improbable que sentada en ese aula haya llegado a imaginarse que se convertiría en una de las arquitectas del mundo moderno y que por eso sería la primera mujer en ser nombrada Fellow de IBM y en recibir el Premio Turing . El matemático Alan Turing (1912-1954)

Frances quería ser docente, como su mamá, así que hizo la secundaria y luego se graduó en la Escuela Estatal de Maestros de New York . Empezó a dar clases en Peru y luego decidió volver estudiar. Obtuvo un máster en matemática en la Universidad de Michigan . Eso fue en 1957 , el mismo año en el que entró en IBM (donde trabajaría durante toda su vida) y el año en el que la Unión Soviética puso en órbita el Sputnik-1 y disparó una secuencia de eventos que derivó en el nacimiento de Internet . Pero había un problema.

Estudiar en Estados Unidos es extremadamente costoso. Y Frances estaba endeudada. Dar clases no alcanzaba para vivir y pagar los préstamos que había sacado. Así que salió a buscar un trabajo mejor remunerado. La contrataron en IBM como programadora. Repito el año: 1957. Guerra fría , carrera espacial , la NASA contratando calculadoras humanas e IBM entrando en el bucle con las primeras computadoras . A Frances la pusieron a enseñar FORTRAN , un lenguaje que había nacido ese mismo año. No entraremos en la historia de este lenguaje, pero Allen estaba en la proa de las nuevas tecnologías nada más conseguir trabajo . Su plan, sin embargo, no era quedarse en la corporación toda su vida. Quería dedicarse a la docencia , esa era su vocación (y se tomaría luego varios años sabáticos para volver a las aulas).

Su mente brillaba tanto que menos de dos años después IBM la había puesto a trabajar con Stretch (la primera computadora transistorizada de la compañía) y en Harvest , con la que la National Security Agency (NSA) hizo criptoanálisis hasta 1976 (el año en que nació Apple , para ponerlo en contexto).

Así que en poco más de 25 años, Frances había pasado de la escuela rural a trabajar con la NSA en una de las computadoras más avanzadas del momento . Ahí fue cuando hizo sus primeros aportes en la optimización de compiladores, un rompecabezas que la tendría ocupada durante los siguientes veinte años. Luego de trabajar para IBM en la NSA fue transferida al laboratorio Watson que la compañía tiene en New York (lo visité en 1999). En la década del 70 se tomó esos años sabáticos para dar clases y al final volvió a IBM para ocuparse de lo más picante de los ‘80: la paralelización del cómputo .

De números y sesgos

En 1989 , el CEO de IBM anotó los nombres de los Fellow que la compañía nombraría ese año ; nunca son mucho más de cuatro o cinco. Uno de esos nombres era el de Frances. Sería la primera mujer de la historia en alcanzar el máximo honor al que un científico o un ingeniero puede aspirar dentro del gigante azul . A lo mejor el CEO se dio cuenta, solo entonces, del ominoso sesgo de género que tiñe a esta industria. A lo mejor pensó que nombrar a la primera Fellow era un tiro para el lado de la justicia. Su nombre era John Akers y falleció en 2014. Su decisión fue tardía, pero valiente. En una compañía centenaria que ha tenido cientos de mujeres brillantes, el nombrar Fellow a Allen era también una confesión de partes.

En 2006 , Frances recibió el Premio Turing . De nuevo, fue la primera mujer en recibir este reconocimiento, que es algo así como el Nobel de la informática . Otro baldón, porque también hubo, en los 40 años que para entonces tenía el reconocimiento, muchas mujeres que deberían haberlo ganado. En el caso de Allen, fue por sus aportes en la computación de alto rendimiento . Sesgos aparte, nos queda la pregunta más importante. ¿Qué hizo Frances Elizabeth Allen para estar en una posición tan destacada?

Como ocurre con muchas de las cosas tecno, el detalle es increíblemente complejo . Pero los conceptos son muy fáciles de captar . Así que dejaremos los detalles de lado para entender en qué campos el trabajo de Allen fue una divisoria de aguas. El primero tuvo que ver con la optimización de los compiladores. Veamos qué es un compilador.

¿Me lo traduce?

Las computadoras son (¿dije que voy a dejar los detalles de lado?) como calculadoras muy rápidas . Pueden hacer aritmética y lógica a velocidades extraordinarias. Empezaron siendo varias decenas de veces más veloces que las personas . Hoy una computadora personal hace a cada segundo 65.000 años de cálculo humano . Y eso es espectacular, porque la información puede más o menos fácilmente convertirse en números (es decir, digitalizarse ) para luego ser procesada matemáticamente . Es como un superpoder sobre los datos. Todo lo que hacemos hoy en el mundo industrializado se basa en este truco: convertir la información en bits (dígitos binarios) y hacer cuentas con ellos. Pero hay un obstáculo .

Las computadoras trabajan solo con unos y ceros, con bits . Para decirles lo que queremos que hagan deberíamos hablarles en unos y ceros y en lenguaje de máquina , que tiene un número de particularidades que lo vuelven muy incómodo para las mentes humanas (por ejemplo, cada tarea, por simple que sea, se desmenuza en docenas de pequeños pasos).

Cuando el programa consta de varias decenas de miles de páginas de unos y ceros , la cosa, a las personas, se nos complica. Así que usamos otro lenguaje, llamado de alto nivel (porque está más cerca de nuestras mentes, no porque viaja en primera clase). Los lenguajes de alto nivel usan palabras de algún idioma natural (típicamente, en Occidente, el inglés) y una sintaxis estricta pero discursiva , lo que nos permite escribir y editar programas con cierta facilidad. Como las partituras, los programas se leen y se editan fácilmente luego de aprender un lenguaje en particular. Frances Allen en IBM el año que se retiró de la compañía

Cuando creemos que el programa está listo, es menester traducirlo al lenguaje de las máquinas ; de otro modo, el cerebro electrónico no va a poder ejecutarlo. Esa traducción la hace un compilador y el resultado es un programa ejecutable . Ejecutable quiere decir que arranca una aplicación cuando le das doble clic o tocás un ícono en la pantalla del celular. Grace Hopper , una de nuestras pioneras inesperadas, fue de las primeras en crear un lenguaje de esta clase, llamado Cobol , y la primera en pensar en un lenguaje de alto nivel independiente del hardware . O sea, que puedas compilar tus programas para diferentes tipos de computadoras (técnicamente, para diferentes procesadores o arquitecturas ); cuando un lenguaje permite hacer esto se dice, en la jerga, que es muy portable . A todo esto, lo que escribe el programador se llama código fuente y lo que sale del compilador se llama binario . La cadena de bloques, una tecnología que está detrás de criptomonedas como Bitcoin, se basa en el criptoanálisis y, por lo tanto, en el cómputo paralelo

(Paréntesis para que mis amigos ingenieros no sufran un patatús. Por supuesto que no se compila solo cuando el programador "cree que su aplicación anda", sino que se compila muchísimas veces durante el desarrollo, para ver su desempeño y detectar errores; eso en la jerga se llama depurar . Y no existe un solo posible resultado de la compilación. Dejaremos eso por hoy.)

El asunto es que traducir de un lenguaje de alto nivel ( C o Python , por citar dos) al lenguaje de una máquina en particular (tu teléfono, por ejemplo) puede ser más o menos eficiente en un número de cuestiones . El ejecutable resultante puede ser más o menos rápido u ocupar más o menos memoria . Puede incluso, consumir más o menos energía . Todas estas cosas (y varias otras) hacen que un compilador sea más o menos eficiente para una cierta tarea. El que un compilador sea eficiente en uno o varios de estos aspectos es crucial en computación. Pensalo. Alcanzaría con que WhatsApp se comiera la batería de tu teléfono en media hora para que no sirviera de nada . Parte de que WhatsApp no consuma mucha energía se debe al código escrito en un lenguaje de alto nivel por los programadores. Otra parte se debe a la calidad de los compiladores.

Frances Allen fue pionera en esta disciplina. Que la traducción al lenguaje de máquina fuera eficiente. Lo que nos lleva como por un tobogán a su otro gran aporte, el cómputo en paralelo. Porque si escribís código fuente y lo querés correr en un procesador de varios núcleos en el medio está el compilador.

Dos cabezas piensan más que una

El cómputo paralelo es al mismo tiempo más actual y más fácil de comprender; si nos quedamos en las orillas del asunto, por supuesto. Todavía recuerdo lo que me costó digerir esa documentación que me pasó el Dr. Sanz.

Ahí vamos. Originalmente, las computadoras tenían una sola unidad de cómputo . O sea, lo que hoy llamamos núcleo, una sola unidad lógico aritmética . Dicho simple, ejecutaba las instrucciones de a una por vez y hacía el cálculo de a una cuenta por vez . Pero había ciertas tareas en las que este enfoque no iba a funcionar (el criptoanálisis, para volver a Frances), por rápido que fuera ese procesador. Daré un ejemplo cotidiano: los jueguitos .

Cada pantalla que ves en un juego es en realidad una imagen producida por un procesador de gráficos , un tipo de cerebro electrónico. Ese componente no puede hacer las cosas de a una. Tiene que calcular todos los pixeles de la imagen simultáneamente, y tiene que hacerlo tan rápido como para que la siguiente pantalla, y la otra, y la que viene después parezcan fotogramas de una película. Los gamers están habituados a las siglas FPS , por frames per second (fotogramas por segundo); ese valor tiene que ser lo bastante alto para que la ilusión de animación sea creíble . Los veteranos recordarán el haber jugado con los primeros Flight Simulator a velocidades horribles, como 10 FPS o menos . El primer Flight Simulator de 1982, listo para despegar; por la localización de Meigs Field; las aceleradoras de video estaban todavía en el futuro, pero Allen ya trabajaba en cómputo paralelo

(En rigor, si se procesa la imagen secuencialmente a muy alta velocidad, la ilusión se mantiene, y así empezamos con los jueguitos, hace mucho. Pero a medida que las escenas se vuelven más complejas este enfoque no solo es ineficiente, sino que no sirve más.)

Pues bien, para que una placa de video genere imágenes de este modo tiene que ser capaz de hacer cálculo paralelo . O sea, no tiene un solo núcleo, sino cientos o, actualmente, miles. También el procesador principal de tu computadora tiene varios núcleos y la cosa de ejecutar varias instrucciones a la vez viene desde la época del Pentium . Pero, de todos modos, compilar el código para que se ejecute en muchos núcleos a la vez es un desafío que ha tenido a la informática ocupada desde hace cuatro décadas. Dentro de una Blue Gene/P Cadmos de IBM; las supercomputadoras usan decenas de miles de procesadores en paralelo

A propósito, dos de las palabras más repetidas de los últimos años, criptomonedas e inteligencia artificial , se refieren a disciplinas que se basan en cómputo paralelo. Y por supuesto todas las supercomputadoras son máquinas que paralelizan el cómputo. En IBM, el puntapié inicial lo dio a partir de 1980 Frances Allen, que en ese momento estaba cerca de cumplir los 50 . Se dedicó a este tema durante los siguientes 15 años y fue parte del proyecto de supercomputadoras Blue Gene .

Se retiró en 2002, tras una extraordinaria carrera de 45 años . En 2020 , luego de sufrir Alzheimer durante varios años, Frances nos dejó con casi 90 años , el mismo día que había nacido, el 4 de agosto . En el ambiente, es una heroína, y cuando decimos "Frances" sabemos a quién nos estamos refiriendo. Como cuando en el colegio hablábamos de una maestra querida y nos referíamos a ella solo por su nombre de pila.
La Nación Argentina O Globo Brasil El Mercurio Chile
El Tiempo Colombia La Nación Costa Rica La Prensa Gráfica El Salvador
El Universal México El Comercio Perú El Nuevo Dia Puerto Rico
Listin Diario República
Dominicana
El País Uruguay El Nacional Venezuela