Entrevista a Manuel Ujaldón Martínez: premio CUDA Fellow de NVIDIA

Por: Isaac P. E.

manuel ujaldon Entrevista a Manuel Ujaldón Martínez: premio CUDA Fellow de NVIDIA

El Dr. Manuel Ujaldón Martínez es el primer español en ganar un premio internacional CUDA Fellow otorgado por NVIDIA. Ujaldón ha accedido a realizar una entrevista para nuestro portal en la que nos cuenta interesante información sobre sus proyectos y su trabajo, además de su relación con GNU Linux.

Manuel Ujaldón es profesor del Dpto. de Arquitectura de Computadores en la UMA (Universidad de Málaga),  autor de diversos libros y tutoriales, ponente de conferencias e imparte interesantes cursos. Por todo este extenso y excelente trabajo, Manuel ha conseguido numerosos premios y galardones.

LinuxAdictos: La primera pregunta es casi inevitable. ¿Sueles utilizar GNU Linux? ¿Qué distribución?

Manuel Ujaldón Martínez: Siempre he sido devoto de Linux. Ahora utilizo las distribuciones Linux que instalan los técnicos de mi Departamento en la UMA, donde predominan Ubuntu y SUSE. En mis comienzos, elegí Red Hat / Fedora.

L.A.: Tengo entendido que eres el primer español en ganar el premio internacional CUDA Fellow otorgado por NVIDIA. Tres galardones más (CUDA Research Center y dos CUDA Teaching Center) han caido sobre la Universidad de Málaga, donde trabaja. Primero darle la enhorabuena a usted y a la UMA desde nuestro blog. ¿Cómo empezó todo este periplo con CUDA?

M.U.: Primero llegaron los reconocimientos a la institución, en los que yo he ejercido de investigador principal. Y finalmente, el galardón individual. La historia se resume en aquella frase de Voltaire,
“Suerte es cuando la preparación se cruza con la oportunidad”. En 2003, durante mi primera estancia en Ohio State University, aprendí a implementar códigos científicos sobre la GPU de forma autodidacta y artesanal, primero con shaders y luego con Cg. En 2005 acabé el libro donde documenté todo el proceso. Sólo pensaba en transmitirlo a los estudiantes en mis cursos de verano, pero poco más tarde nació CUDA y todo cambió. En 2008 ya se escribían más de 4.000 artículos científicos sobre el fenómeno CUDA (en 2014 se superaron los 60.000), y yo recibí el primer reconocimiento por parte de Nvidia, un “Professor Partnership” por el que donaron a la UMA un servidor Tesla S2050 con 4 GPUs de gama alta. Estaba rodeado de colaboradores muy buenos, en la UMA, en Ohio State, … Ese talento produjo todos los galardones que has comentado. Sólo había que tirar del carro.
En 2015 se produce una descarga del SDK de CUDA cada 9 segundos, y el censo de GPUs que ejecutan CUDA supera los 600 millones. Ahora los premios son mucho más competitivos, pero a mí me siguen renovando como CUDA Fellow cuatro años más tarde porque Nvidia apoya a los “early adopters” y a los que tenemos pasión por enseñar CUDA. Con más de 50 cursos y seminarios impartidos en todo este tiempo (algunos después de volar más de 20 horas), la empresa valora mi esfuerzo. Y a mí me da la oportunidad de conocer por dentro la compañía líder en mi área de investigación, una experiencia impagable. Moraleja: Sin preparación, no exijas suerte

L.A.: NVIDIA nos ha dejado momentos agridulces a los linuxeros. Recordarás ese “Fuck you!” de Linus Torvalds dedicado a NVIDIA. Poco después Linus aplaudió que NVIDIA liberase los drivers de Tegra K1… ¿A qué crees que se deben estos cambios de actitud?

M.U.: En sus inicios, Nvidia era una empresa pensada para hacer caja. Pero en la última década, al menos en la división que yo conozco, se ha llenado de científicos procedentes de las mejores universidades, principalmente Stanford. Gente como Bill Dally o David Luebke conocen el valor añadido de distribuir conocimiento y formación. El lucro llega finalmente, pero pasando por ahí. Ahora hay más de 800 Universidades censadas que enseñan CUDA y a las que Nvidia mima con donaciones, becas, cursos, … Se invierte en la cantera, antes se buscaban los fichajes estrella para ganar ¡ya!. Las empresas del Silicon Valley saben mirar a largo plazo, muchas iniciativas parecen un pozo sin fondo, pero son semillas que germinan más adelante. Entiendo que para Linus Torvalds la Nvidia de hace 15 años fuera el mismísimo Lucifer. Y que ahora le haga algún que otro guiño.

L.A.: Su trabajo está contribuyendo en el ámbito de la salud. Con el procesamiento de imágenes biomédicas para detección de regiones de interés como tumores o tejidos regenerados y el análisis de enfermedades degenerativas mediante aplicaciones computacionales. Haznos una introducción a estos interesantes proyectos…

M.U.: Antes que nada, los proyectos no son míos, sino de un colectivo que coordino, y que trabaja tanto o más que yo. Dicho esto, nosotros no inventamos nuevas técnicas biomédicas porque no somos expertos en ese área, tratamos de entender los procesos más innovadores y costosos computacionalmente para acelerarlos usando la GPU. Las técnicas para detectar el cáncer son cada vez más certeras y preventivas, pero requieren un análisis de imagen que puede tardar meses en una CPU. En una GPU la cosa puede quedarse en días e incluso horas, eso convierte el proceso en viable. Un ingeniero es un tipo pragmático, ésa es la etimología de la palabra que identifica a nuestro gremio, éso es lo que nos “pone”.

L.A.: Hemos visto cómo la computación puede mejorar nuestra vida y cómo está afectándola. Pero quizás no tan directamente como sus proyectos, que parecen sólo orientados a una labor meramente humanitaria. Quiero decir, que la finalidad de ellos no es desarrollar una tecnología que luego pueda ser utilizada en el terreno sanitario, sino que son proyectos por y para la salud. Detrás de ese gran investigador se esconde también una gran persona… ¿No cree?

M.U.: Más que gran persona, me tengo por tipo sensato. Cuando trabajas en un hospital y ves el cáncer tan cerca, es magnífico aportar un granito de arena. Que a un paciente puedan adelantarle el diagnóstico días e incluso semanas es magnífico aunque no puedas hacer nada para curarle si resulta enfermo. Pero piensa que está sano, y lo que pasa por su cabeza cada día que está pendiente del resultado médico. Acortar ese calvario supone tal satisfacción que a mí no me la puede aportar el desarrollo de un video-juego, por ejemplo. La sociedad tiene un poco estigmatizados a los informáticos como tipos raros (“freakies”), pero hay de todo. Trabajar en un hospital te humaniza, te vuelves más hedonista, es un gran contrapunto, y más en el mundo en que vivimos, con tanta adicción insana…

L.A.: Ha permanecido investigando sobre bioinformática en centros de Estados Unidos y Australia. ¿Ningún centro de investigación u hospital nacional se ha interesado por su trabajo para llevarlo a la práctica?

M.U.: El año pasado la Junta de Andalucía me concedió un Proyecto de Excelencia por cuatro años para acelerar aplicaciones bioinformáticas en GPU, y en la década pasada tuvimos otro similar. En este caso, analizamos la actividad neuronal para detectar lesiones cerebrales. Colaboramos con la empresa Brain Dynamics del Parque Tecnológico de Andalucía, y desde ahí, tenemos acceso a diversos hospitales de la zona. El Hospital Clínico y el Hospital Carlos Haya, ambos en Málaga, y el Hospital Costa del Sol, en Marbella, son clientes potenciales, y esperamos que puedan beneficiarse de los resultados del proyecto. Por ahora es prematuro hacer balance, quedan 3 años de trabajo, pero navegamos con buen rumbo y el barco tiene orientada la proa a la sanidad andaluza. Esperamos llegar a buen puerto. Ya sucedió así con el proyecto anterior.

L.A.: Utilizar la potencia de una GPU para aplicaciones de propósito general que requieren capacidades de cálculo elevada (GPGPU) es algo que parece estar de “moda”. ¿Por qué cree que la industria ha tardado tanto en ver que una tarjeta gráfica valía para algo más que para los videojuegos?

M.U.: Toda gran innovación debe vencer una resistencia al cambio. Los procesadores de Intel y AMD llevan 40 años ejecutando código x86, un conjunto de instrucciones calamitoso que sólo se sostiene porque el usuario valora la compatibilidad hacia atrás. Intel siempre ha sido consciente de ello, pero sus intentos de “modernizar” el x86 han sido fracasos tan estrepitosos que con el tiempo se le han ido quitando las ganas de perseverar. AMD ha sido muy autocomplaciente en todo este tiempo, y en los últimos años, bastante ha tenido con sobrevivir. En esas llegó un “outsider” como Nvidia, y sin ambicionarlo, lo está logrando. Muchos queríamos olvidarnos de una melodía desafinada, y más cuando parecíamos condenados a escucharla a diario. Ahora tenemos música celestial, e hipnotizados abrimos los ojos y vemos que la GPU es una plataforma barata, polivalente (que sólo con jugar o gestionar el monitor, ya tenemos amortizada) y omnipresente (actualmente se venden tres GPUs por cada CPU). Es cuando pensamos, ¿por qué no? Y entonces despiertas, porque aprender a programar en CUDA tiene poco de fácil, y más si vienes de Python donde todo funciona a alto nivel y se hace de espaldas a la plataforma. CUDA es el triunfo del currante, de las ganas de trabajar, de la perseverancia, de tantos valores en desuso, pero que necesitamos recuperar. Es un milagro que haya calado tan hondo y tan rápido en nuestra sociedad actual.

L.A.: Usted comenzó hace más de 10 años con esto, de hecho en 2005 publicó aquel libro sobre cómo programar GPUs para acelerar aplicaciones científicas. ¿Era ya un secreto a voces?

M.U.: Creo que ni los más optimistas hubieran pensado entonces que llegaríamos donde estamos, ni tan pronto. La GPU tiene un ritmo evolutivo muy superior a la CPU, cada generación es más corta e introduce más innovaciones. Eso hace más bonito el camino, pero también más difícil la labor del visionario.

L.A.: Además han surgido iniciativas como la HSA Foundation para gestionar el desarrollo de los sistemas HSA. ¿Podría explicarle al resto de los mortales la importancia de la computación heterogénea?

M.U.: La inmensa mayoría de procesadores actuales integra una CPU y una GPU en el mismo chip. La CPU es un multi-core (pocos núcleos complejos, en torno a diez) y la GPU es un many-core (muchos núcleos simples, en torno a tres mil). ¿Qué es más potente, diez martillos o tres mil bisturíes? Depende del problema que quieras resolver. Pero todos coincidimos en que lo mejor es diez martillos *y* tres mil bisturíes. Eso es computación heterogénea: No renunciar a nada. Suscribirlo todo y luego tratar de dar servicio al 100% de los recursos. Para ocupar la CPU, necesitarás la vieja escuela: C hace dos décadas, Java la década pasada, y Python esta década. Para aprovechar la GPU, necesitarás CUDA esta década, y ya veremos lo que toca la próxima. Muchos códigos lucen más en CPU, y otros en GPU. Si sólo sabes programar uno de los procesadores, te pierdes la dualidad, y has pagado por ella al comprar el PC. A cada día que pasa, el programador que desconoce la GPU está más manco, y la empresa siempre preferirá un trabajador ambidiestro.

L.A.: Los desarrolladores de Linux están poniendo especial atención en ARM últimamente. Eso se debe a algo. Dicha familia arrasa en los dispositivos móviles. Pero parece tener interés más allá del bajo consumo, por ejemplo, AMD ha desvelado su arquitectura K12 y se anuncian Opteron A-Series para servidores. ¿ARM es el futuro? ¿Crees que conquistará el sector HPC y el de la informática doméstica desplazando a AMD64, SPARC, POWER,…?

M.U.: Más que bajo consumo, lo que ARM aporta es un nuevo modelo, porque no te vende el chip, sino los planos del diseño junto con la licencia para construirlo. Los otros personajes que mencionas son más un producto final patentado. Es como si un restaurante te vendiera una paella, y otro, la receta para que tú la hagas en casa (pero garantizándote que te va a salir tan buena como la del restaurante). A la larga, si te gusta la paella, es mejor invertir en la segunda opción, vas a disfrutar más y te va a costar menos. Además, vendiendo la receta haces más amigos, porque el día que la paella sale mala, el cliente asume su culpa, no se la puede echar al restaurante. Así es como ARM colecciona clientes satisfechos, y eso siempre es una gran inversión. Un buen ejemplo son los Tegra de Nvidia que mencionabas antes. Llevan un procesador de ARM y compiten con sus chips en el mismo segmento de bajo consumo en el que ARM es el rey. Cuando Nvidia entró en ese mercado, ARM le ayudó dándole una receta clave. Ahora, ARM gana dinero con los Tegra que vende Nvidia. Por innovador, y por cómo ha implementado sus ideas, ARM merece su suerte (y además, es una empresa europea). Yo espero que siga creciendo.

L.A.: El HPC es territorio *nix, más concretamente Linux. Una de las respuestas a esta tendencia podía ser su código abierto, pero también lo tiene FreeBSD y sin embargo la cuota habla por si sola. ¿Puedes justificar este papel dominante de Linux en la HPC?

M.U.: Para mí, FreeBSD es un sucedáneo de Linux. Si tienes el sabor puro, para qué cambiar. Y fuera del mundo Linux, no veo a Windows o MacOS asomándose a HPC. Llevo 20 años siguiendo el top500.org y siempre fueron meras comparsas. La comunidad HPC está formada por científicos, y cada pieza que suscribimos se ha ganado su crédito, no sólo el sistema operativo. ¿Sabes qué usamos los científicos para escribir nuestros artículos? LaTeX. En nuestro mundo, Word tiene difícil mercado. Y sin embargo, en la informática de usuario, Word gana por goleada.

L.A.: La Universidad de Málaga ocupa el puesto 22 en el ranking de universidades que más contribuyen al software libre. ¿Qué puede decir de esta posición como miembro de la UMA?

M.U.: Puedo decir que estoy rodeado de compañeros brillantes que podrían presumir mucho más de sus creaciones software. Y nunca los he visto urdiendo un plan económico para volverse ricos. El trabajo bien hecho dignifica más que el dinero.

L.A.: Normalmente terminamos la entrevista con una especie de juego. Consiste en poner una breve opinión personal sobre los siguientes términos:

M.U.: Código abierto: Trabajar para aportar intangibles, difícilmente comprensibles para aquellos que se mueven por parámetros económicos. Allá ellos, las mejores cosas de la vida son gratis.
OpenGL: El primer estándar para la programación de gráficos, al que tanto debemos.
OpenCL: El estándar para la programación de GPGPU, una bella historia que sorprendentemente camina hacia el fiasco como no revierta tendencia pronto. La vida no siempre es justa.
Arduino: El OpenGL de la capa hardware, al que seguramente también debamos mucho en pocos años.
Linus Torvalds: Un gurú. Por debajo de los dos mejores, para mí Steve Jobs y Robert Noyce, pero entre los 50 personajes más influyentes de la historia de la tecnología.

 

Espero que os haya gustado esta nueva entrevista de la serie que iremos publicando. Y os animo a los interesados a que os apuntéis a la 11º edición del curso de programación de GPUs con CUDA. Lo organiza el mismo Ujaldón y tendrá lugar en julio en la UMA. Además, cuenta con el aval CUDA Teaching Center, lo que lo hace único en España.

El curso está abierto a cualquier persona con unos mínimos conocimientos de programación en C. Los asistentes aprenderán a programar tarjetas gráficas empleando CUDA. Disfrutarán de 60 horas, mayormente prácticas. Además se sorteará una tarjeta gráfica GeForce GTX 480 donada por NVIDIA.