Il titolo del New York Times è di quelli che non passano inosservati: Geniuses Wanted: NASA challenges coders to speed up its supercomputer. Pur facendo la tara per lo stile iperbolico, sorge la curiosità circa la richiesta della NASA che, avendo evidentemente un problema, lancia una sfida nel mondo dei programmatori. La vera sorpresa è leggere i termini del problema. Si tratta di velocizzare un codice di simulazione fluidodinamica, quello che studia come l’aria scivola (e sostiene) le pale rotanti di un elicottero, oppure la forma ottimale per le ali di un aereo oppure mille altre problematiche aerospaziali. La fluidodinamica è molto difficile e utilizza equazioni (e teoremi) da brivido (provate a scorrere questa bella trattazione per rendervi conto della complessità della materia). Tuttavia, è grazie a queste equazioni e a questi teoremi che andiamo in aereo con la massima tranquillità.
Il codice che la NASA vuole migliorare è ovviamente molto complicato e, per risolvere numericamente le equazioni di cui sopra, tiene impegnato per giorni il supercomputer Pleiades, uno dei più potenti del mondo sito nel centro di ricerche della NASA ad Ames in California. Un tempo giudicato troppo lungo dai progettisti dei veicoli del futuro che vorrebbero avere delle risposte più rapide.
Il codice di simulazione ha bisogno di una accelerata. Peccato che il codice sia cresciuto nel tempo con aggiunte successive che si sono sempre innestate sul primo nucleo scritto in fortran, un linguaggio molto amato dagli scienziati della mia generazione ma ora molto meno popolare nel mondo della programmazione.
Che fare? Riscrivere completamente il codice, magari in un altro linguaggio, sarebbe costosissimo. Meglio lanciare la sfida offrendo un premio (interessante, ma, tutto sommato, modesto) per chi riesca a trovare soluzioni per ringiovanire il vecchio codice, mantenendo il vecchio linguaggio.Diciamo che è un modo molto cost effective di affrontare un problema convincendo un buon numero di persone a lavorare a costo (quasi) nullo.
Alla fine i premi saranno due: uno di 20.000 dollari per una riorganizzazione del codice ed uno di 35.000 dollari per chi riuscirà ad aumentarne l’efficienza, diminuendo i tempi di calcolo. Per ambire al premio bisogna proporre soluzioni che velocizzino i calcoli di almeno un fattore 10. Ovviamente più si accelera, meglio è, anche se il premio rimane sempre lo stesso. Immagino già che a qualcuno/a brillino gli occhi all’idea di partecipare a questa sfida, ma devo darvi una cattiva notizia. Dal momento che bisognerà esaminare e maneggiare un codice definito “sensibile” , è richiesto che i partecipanti siano cittadini USA e maggiorenni. Sfida a parte, vi invito a dare un occhio alle equazione della fluidodinamica, magari le troverete affascinanti.