Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Una competencia de la NASA para optimizar código

La agencia abre un concurso para optimizar su código de simulación

La NASA trabaja en muchos frentes. Uno de ellos es la exploración espacial, que nos es bastante popular porque a diario hay noticias de las sondas que están en los diferentes planetas y astros del sistema solar. Pero también la NASA se dedica a desarrollar aviones experimentales y evidentemente este no es un trabajo trivial que hoy en día involucra además mucho software.

Por ello, en su último desarrollo de un avión experimental, la NASA está buscando ayuda de los programadores para que hagan más rápido el código que será usando en su nueva nave. La competencia tiene un fondo de 55 mil dólares, que será compartida por aquellos que hagan que el software FUN3D corra 10 mil veces más rápido de lo que lo hace actualmente.

FUN3D se usa para modelar cómo el aire fluye alrededor de una nave simulada dentro de una supercomputadora. Se desarrolló en los años 1980s y fue escrito en un lenguaje que hoy en día pudiese pensarse que se usa poco: FORTRAN (que a todo esto significa: FORmula TRANslation).

Un alumno encuentra un error de la NASA

“Este podría considerarse la tarea definitiva para los ‘geeks”, dijo Doug Rohn, jefe de la NASA en el programa de conceptos aeronaúticos, que hace uso extensivo del código de FUN3D. Rohn ha dicho que el software se usa en la supercomputadora de la NASA (llamada Pleiades) para probar los diseños de las futuras aeronaves.

El software es una suite de pruebas que usa la dinámica de fluidos simulada en la computadora, la cual usa un enorme grupo de fórmulas matemáticas y diversas estructuras de datos para ver cómo los diseños de las naves se comportan frente al paso del aire. La dinámica de fluidos no es un asunto trivial, pues genera un sinfín de fenómenos que no están totalmente modelados, como las turbulencias, por ejemplo.

Después de que los diseños se prueban en las supercomputadoras, los modelos se escalan y se hacen pruebas en los túneles de vientos, para a la postre construir prototipos de estos nuevos aviones para hacer las pruebas en el mundo real.

Hay mucho que se puede hacer para que un programa corra más rápido. Hay muchas rutinas que podrían mejorarse significativamente cambiando un par de instrucciones y ahorrándose milisegundos, pero que al usarse extensivamente en las simulaciones puede ahorrar horas de cómputo y de desarrollo. Si una rutina se llama millones de veces durante una simulación, esto podría recortar significativamente los tiempos de prueba, afirman en el sitio de la NASA.

La NASA da acceso a su software de forma gratuita

La NASA ha indicado que podría dar copias del código a todos aquellos que quieran participar en el reto, de manera que puedan analizar el sistema, hallar los cuellos de botella (tal vez incluso usando programas como un “profiler”, cuya tarea es ésa en particular), y así modificar el código para que se ejecute mucho más rápido. La NASA busca que al menos el código corra 10 veces más rápido, pero claramente quiere que la optimización haga que corra hasta 10 mil veces más rápido. Aclara que los cambios en el código no deben hacer que el sistema pierda precisión.

Debido a la naturaleza del código y su uso, esta competencia está abierta solamente a ciudadanos estadounidenses que tengan 18 años en adelante.

Referencias: BBC, NASA

Comentarios