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 #1 · Palabras #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 #4horas 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 explica cómo funciona el acceso a los superordenadores y describe la necesidad de refrigeración para estos equipos.
Habla: Héctor SocasSignificado #2cá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 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 SocasPalabras #4có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.…