Héctor Socas explica cómo funciona el trabajo con superordenadores, comparándolo con la conexión remota a un servidor web.
…lo metas ahí un minuto y ya está fría. Él está trabajando en eso, no sé si lo conseguirá. Hay muchas patentes ya. Hay cosas. Bueno, yo quería hacer un comentario más sobre esto: primero uno en serio y luego otro medio en broma, en el espíritu de la respuesta. Porque a lo mejor mucha gente no conoce cómo funciona esto de trabajar con superordenadores, pero un superordenador no es una cosa que tenga un teclado y una pantalla. Es algo a lo que tú te conectas remotamente, como quien se conecta a un servidor en la web. Tú tienes tu programa, lo subes, normalmente allí te dan Una cuenta, en esa cuenta tienes un directorio; los que estén acostumbrados a trabajar en Linux, pues sabrán de lo que estoy hablando. Cuando tienes un directorio home con una cierta configuración y tú en ese directorio home subes tu programa, puedes hacer pequeñas cositas y luego tienes un espacio en El almacenamiento, el almacenamiento masivo que es un espacio que se te asigna para almacenar ahí el resultado de tu simulación, como espacio de trabajo para tu simulación. Entonces, tú allí compilas el código en el superordenador con las herramientas que tienen para compilar y luego hay un sistema de colas porque no lo estás usando tú solo; hay mucha gente usando ese superordenador y entonces tú envías tu trabajo. Tu trabajo es básicamente suele haber un script, un pequeño programita que lanza tu código numérico con las condiciones iniciales adecuadas y entonces ahí tienes que especificar también cuáles son las opciones. A ti normalmente te han asignado un cierto número de horas de CPU que tú puedes repartir en poquitos procesadores: muchas horas o pocas horas en Muchos procesadores normalmente tú tienes libertad para configurar cuántos procesadores y cuántas horas quieres consumir dentro de esa cuota que te han dado, y entonces se lanza y entra en un pool donde hay otros usuarios, cada uno con su prioridad dependiendo de lo que te hayan asignado, y entonces ese sistema de colas va consumiendo, va alternando entre los diferentes procesos que se han lanzado, cada uno con su prioridad. Esto es complicadísimo, pero tú no te tienes que preocupar de eso; hay un sistema que lo hace: el Slurm, hay diferentes sistemas de colas y va metiendo la ejecución de un código, la de otro. ¿Cómo sabes que has terminado? Efectivamente, tú podrías poner que haga un ping el ordenador, pero no tiene mucho sentido porque el superordenador está en un sitio a miles de kilómetros de distancia, ¿no? Por ejemplo, el Mare Nostrum de Barcelona. Yo me conecto a Barcelona y a mí no me sirve de nada que aquello en la catedral allí de Barcelona se oiga un ping, que por otra parte no lo hace porque no tiene altavoces, ¿no? Pero no te serviría de nada. Lo que se suele hacer es ponerle que te dé un aviso, por ejemplo, que tú tengas un programita que esté monitorizando determinado fichero y cuando tu fichero, yo suelo poner que cuando mi simulación termina, cree un fichero con una especie de sumario del resultado; cuando ya tú ves que ese fichero existe, es que aquello ha terminado o el sistema de colas te manda un correo. Exacto, puedes ponerle también eso, que te manda un correo. Y luego esa es la parte un poco en serio, o sea que no es ninguna tontería. Pero antes de que sigas, que da cuenta de tu nivel, en fin, de investigador y académico: el hecho de que hables de la posibilidad de disponer de CPUs durante horas, o sea, eso para…
Héctor Socas explica cómo funciona el trabajo con superordenadores, comparándolo con la conexión remota a un servidor web.
Habla: Héctor SocasSignificado #1superordenadores conexión remotatrabajo con superordenadores hector socasprogramas subidos a superordenadordirectorio home linuxconfiguración directorio homesubir programa directorio homealmacenamiento masivo para simulacionessistema de colas en superordenadorscript para lanzar código numéricohoras de cpu asignadas a usuariossistema de gestión tareas superordenadorescolas usuarios compiten recursosslurm sistema de colasprioridad procesos lanzados slurmslurm gestión de tareashector socas superordenadoresping al superordenador mare nostrumconexión a barcelona inútilmonitorización de simulaciones hector socasfichero sumario resultado simulaciónsistema de colas envía correo…lo metas ahí un minuto y ya está fría. Él está trabajando en eso, no sé si lo conseguirá. Hay muchas patentes ya. Hay cosas. Bueno, yo quería hacer un comentario más sobre esto: primero uno en serio y luego otro medio en broma, en el espíritu de la respuesta. Porque a lo mejor mucha gente no conoce cómo funciona esto de trabajar con superordenadores, pero un superordenador no es una cosa que tenga un teclado y una pantalla. Es algo a lo que tú te conectas remotamente, como quien se conecta a un servidor en la web. Tú tienes tu programa, lo subes, normalmente allí te dan Una cuenta, en esa cuenta tienes un directorio; los que estén acostumbrados a trabajar en Linux, pues sabrán de lo que estoy hablando. Cuando tienes un directorio home con una cierta configuración y tú en ese directorio home subes tu programa, puedes hacer pequeñas cositas y luego tienes un espacio en El almacenamiento, el almacenamiento masivo que es un espacio que se te asigna para almacenar ahí el resultado de tu simulación, como espacio de trabajo para tu simulación. Entonces, tú allí compilas el código en el superordenador con las herramientas que tienen para compilar y luego hay un sistema de colas porque no lo estás usando tú solo; hay mucha gente usando ese superordenador y entonces tú envías tu trabajo. Tu trabajo es básicamente suele haber un script, un pequeño programita que lanza tu código numérico con las condiciones iniciales adecuadas y entonces ahí tienes que especificar también cuáles son las opciones. A ti normalmente te han asignado un cierto número de horas de CPU que tú puedes repartir en poquitos procesadores: muchas horas o pocas horas en Muchos procesadores normalmente tú tienes libertad para configurar cuántos procesadores y cuántas horas quieres consumir dentro de esa cuota que te han dado, y entonces se lanza y entra en un pool donde hay otros usuarios, cada uno con su prioridad dependiendo de lo que te hayan asignado, y entonces ese sistema de colas va consumiendo, va alternando entre los diferentes procesos que se han lanzado, cada uno con su prioridad. Esto es complicadísimo, pero tú no te tienes que preocupar de eso; hay un sistema que lo hace: el Slurm, hay diferentes sistemas de colas y va metiendo la ejecución de un código, la de otro. ¿Cómo sabes que has terminado? Efectivamente, tú podrías poner que haga un ping el ordenador, pero no tiene mucho sentido porque el superordenador está en un sitio a miles de kilómetros de distancia, ¿no? Por ejemplo, el Mare Nostrum de Barcelona. Yo me conecto a Barcelona y a mí no me sirve de nada que aquello en la catedral allí de Barcelona se oiga un ping, que por otra parte no lo hace porque no tiene altavoces, ¿no? Pero no te serviría de nada. Lo que se suele hacer es ponerle que te dé un aviso, por ejemplo, que tú tengas un programita que esté monitorizando determinado fichero y cuando tu fichero, yo suelo poner que cuando mi simulación termina, cree un fichero con una especie de sumario del resultado; cuando ya tú ves que ese fichero existe, es que aquello ha terminado o el sistema de colas te manda un correo. Exacto, puedes ponerle también eso, que te manda un correo. Y luego esa es la parte un poco en serio, o sea que no es ninguna tontería. Pero antes de que sigas, que da cuenta de tu nivel, en fin, de investigador y académico: el hecho de que hables de la posibilidad de disponer de CPUs durante horas, o sea, eso para…
Héctor Socas explica que el acceso a superordenadores es similar al tiempo de telescopio, requiriendo la aprobación de un comité que evalúa las propuestas y asigna una cuota limitada de tiempo.
Habla: Héctor SocasSignificado #10horas de cpu en superordenadoresreducir simulaciones a minutossimulaciones con superordenador gilacceso a superordenadores comitécuota de horas asignada superordenadorproyecto apto superordenador interesante…que da cuenta de tu nivel, en fin, de investigador y académico: el hecho de que hables de la posibilidad de disponer de CPUs durante horas, o sea, eso para mí, horas, muchas horas de CPU, eso es un pedazo de simulación increíble; más bien yo hablaría de minutos, minutos de CPU, porque muchas horas da tiempo para hacer muchas cosas. Es una broma, depende obviamente del tamaño de la simulación pero horas de un superordenador es algo tremendo. No, que te las den es lo difícil; ahora que tú tengas un problema en el cual requieras horas de CPU no es tan complicado, lo difícil es reducirlo a minutos. Echarle más horas siempre es fácil, ¿no? Otra cosa es que te los den, porque esto funciona también; igual es interesante para algunos oyentes que no estén. Familiarizados funciona muy parecido al tiempo de telescopio, o sea, hay un comité al cual tú le envías el proyecto que quieres hacer y hay un comité que evalúa las propuestas y dice cuáles son aptas y cuáles no, porque ese superordenador hay que utilizarlo para algo interesante y bueno, luego un poco la tontería. Perdona, otra cosita: tienes una cuota de horas, de minutos asignada y no te pases estos, porque si tienes 120 minutos y tu programa no ha acabado, acaba sí o sí te lo mata; acaba contigo y te has quedado con la simulación en el punto de vista. Bueno, una cosa muy importante: Estas simulaciones siempre se deben hacer que guarde un snapshot a cierto tiempo, de forma que se pueda continuar. Reiniciar, reiniciar, sí, sí. Y un poco la anécdota tonta es que hay una escena en la película El Marciano, que yo no recuerdo si está así en la…
Héctor Socas describe una escena cinematográfica dramatizada donde un personaje recibe la confirmación de cálculos correctos en su portátil conectado a un superordenador.
Habla: Héctor SocasSignificado #2 · Palabras #1cálculos complejos portátilproblema de tres cuerpos portátilsimulación superordenador jplpasadena cálculos ordenadorsuperordenadores y equipo técnicooptimización de código en salas refrigeradasenfriamiento de superordenadores por aire acondicionadosuperordenador y portátil conectadorefrigeración de salas con superordenadoresjoven conectado a superordenadorcálculos correctos portátil linuxsuperordenador terminal linux hector socasescena cinematográfica portátil…que yo no recuerdo si está así en la novela, ¿no? pero hay una parte en la película en la que el astrodinamicista tiene que hacer los cálculos para comprobar si la maniobra esta que se le ocurre para resolver el problema de la película, si eso es viable o no. Y entonces, para eso, tiene que hacer unos cálculos en superordenador. Que bueno, ya empezamos mal porque eso se hace en un portátil; realmente es un problema de, no sé, tres cuerpos: aquello en un portátil corriendo por la noche lo haces. Pero bueno, para darle ahí un poco de drama, pues se tiene que conectar un superordenador, que no me acuerdo, creo que era en JPL. Entonces, lo primero, se coge en un avión para ir a Pasadena y ir allí, cuando Eso no funciona así, tú te conectas desde tu casa a ese superordenador, pero bueno, van allí. No solo va allí, que tú podrías entenderlo; bueno, quiere hablar con el equipo técnico de allí para ver cómo optimizar el código, pero no solo eso, sino que el chaval se mete dentro de la sala donde está el superordenador con aire acondicionado, por eso hay que enfriarlo. Y sí, Borja está haciendo así el gesto como que está con frío. El chaval está allí con frío, conectado con su portátil por un cable al superordenador. ¿Que eso no tiene ningún sentido? Nadie se mete en esa sala ni te dejan meterte en esa sala donde hace mucho frío porque tiene que estar refrigerado, pero es que luego lo más gracioso. De todo es que la escena para demostrar cinematográficamente que su idea funciona es que él en su portátil allí con una terminal de Linux le aparece un mensajito que dice: Calculations Correct, Calculations Correct. El cálculo es correcto, entonces eso nos pareció muy gracioso y entre el grupito de amigos ahí en el IAC después de salir la película durante un cierto tiempo tuvimos un cachondeo con eso del Calculation Is Correct y entonces en un momento dado decidí que yo tenía que implementar también en mi código un Calculation Is Correct para que cuando acabe el…
Héctor Socas explica cómo su código llamado Nicole incluye un módulo de comprobación con cálculos de prueba para verificar su funcionamiento.
Habla: Héctor SocasPalabras #6cálculos de prueba en código nicolemódulo calccorrect en pythoncomprobaciones al instalar el código…la ventanita y entonces bueno yo tengo un código, lo voy a mostrar para la gente que lo esté viendo en YouTube que bueno yo tengo este código que se llama Nicole que es una cosa en la que he trabajado durante gran parte de mi carrera y está por ahí en GitHub Y hay un módulo que es el módulo que hace comprobaciones cuando tú te lo instalas y tal, pues hay una serie de cálculos de prueba que puedes hacer a ver si el código funciona o no. O sea, son problemas conocidos, entonces lo resuelve y ves si el resultado es el correcto. Y dentro de este hay un módulo en Python que se llama CalcCorrect, que lo que hace es justamente sacar el mensajito. Y bueno, lo tengo por aquí para que vean una idea. Esto es una terminal. ¿O buenísimo? Igual que la película del Marciano, tú abres una ventana de Python, importas el módulo y simplemente invocas el método mensaje y te sale la ventanita de calculación. ¡Buenísimo! Es una tontería muy grande, pero bueno, es herencia un poco de la chorrada de la…
Héctor Socas explica la estructura del código 'Nicole', indicando que la parte central que corre en un superordenador está escrita en Fortran, mientras que la interfaz de usuario y las tareas auxiliares como pruebas y manejo de archivos se realizan en Python.
Habla: Héctor SocasSignificado #17 · Palabras #5código nicole en fortraninterfaz de usuario en pythonpruebas con módulos pythonficheros de entrada y salida python…importas el módulo y simplemente invocas el método mensaje y te sale la ventanita de calculación. ¡Buenísimo! Es una tontería muy grande, pero bueno, es herencia un poco de la chorrada de la película. Y para quien quiera usarlo, ahí está disponible. Eso lo Incorporaste a la versión en Python, pero la versión anterior era en Fortran, no lo tenía, ¿no? El código es en Fortran, pero todo el interfaz con el usuario es en Python. Entonces, la parte que corre en un superordenador está en Fortran, pero tiene los módulos en Python que son los que se usan para, por ejemplo, hacer pruebas, para generar los ficheros de entrada, para leer los ficheros de salida, todo eso está en Python. ¿Me deja, Héctor, que proyecte yo mi código también? Me ha dado miedo morriña. ¿Pero tiene Calculations Correct? No exactamente. ¿Se está viendo? No, no vemos nada. Bueno, te vemos a ti, pero no sé si es la intención. Sí, es que estoy en un sitio que no es el mío. Está en ello, está en ello. Ya, ahora, ahora, ahora va. Vale. Ah, Simulation has complete successfully. Esto, yo ponía Simulation has complete successfully.…
Héctor Socas menciona el Centro Nacional de Supercomputación en Suiza, donde se procesan datos del CERN y del LHC. Describe la ubicación de uno de sus centros de datos en Lugano, cerca de un lago grande y frío.
Habla: Héctor SocasSignificado #18cern y lhc en suizacentro nacional supercomputación luganolago frío de lugano…porque lo utilizas para calentar las casitas de las personas que tienes encima. Sí, seguro que me parece que tiene potencia Sí, sí, vamos, lo que tú has dicho, delicioso, me parece más efectivo que la aerotermia, sobre todo en determinadas latitudes, vaya En Suiza, el Centro Nacional de Supercomputación, que tiene ahí, bueno, es donde se procesan datos del CERN, por ejemplo, del LHC. El centro de datos principal que tienen pues tiene cierta distribución geográfica, pero hay uno que está en Lugano, que hay un lago allí enorme que es muy frío porque Es de agua de hielo de las montañas y de los Alpes. Toman agua del lago para refrigerar el centro de datos y el agua caliente que sacan va al circuito de agua caliente de la ciudad; o sea que la gente cuando se ducha se está duchando con agua que ha producido…