El Max Planck Computing and Data Facility (MPCDF) es un centro de competencia interinstitucional de la Sociedad Max Planck, destinado a apoyar las ciencias computacionales y de datos de Alemania. En esta nota exploramos los desafíos de cómputo de este centro y conversamos con Maximiliano Geier (Cloud+Storage Operator del MPCDF y Doctor en Ciencias de la Computación de Exactas-UBA), quien recientemente estuvo presente en el Departamento de Computación (DC) dictando una interesante charla sobre HPC Cloud.

Actualmente funciona en Múnich, Alemania, el Centro de Computación y Datos Max Planck (MPCDF), un prestigioso centro de competencia interinstitucional de esta sociedad científica, en estrecha colaboración con científicos especializados de los Institutos Max Planck. Su propósito es brindar servicios de cómputo y almacenamiento a los 84 institutos de investigación descentralizados, ubicados en todo el país y asociados a diferentes disciplinas de las ciencias básicas.

Dentro de la infraestructura tecnológica del MPCDF se encuentra HPC Cloud: un sistema de cómputo y almacenamiento administrado en este ámbito, que permite a miles de usuarios a lo largo y ancho de la red académica Max Planck de ese país acceder a recursos «en la nube», al mismo tiempo que habilita el intercambio de datos con los sistemas HPC tradicionales -que el mismo Datacenter almacena hace ya varias décadas- de manera eficiente.

La premisa principal es centralizar el cómputo de cada uno de los grupos de investigación de los institutos miembros (conformado por investigadores formados, investigadores posdoctorales, doctorandos y estudiantes de máster), optimizando los recursos disponibles, ya que en vez de que cada grupo e instituto necesite tener su infraestructura de cómputo con personal especializado que pueda operarla (lo cual implicaría una mayor inversión de su presupuesto y financiamiento), todo se administra y opera en el mismo lugar físico.

En el MPCDF, este centro interinstitucional que es netamente multidisciplinario e internacional ya que trabajan personas de diferentes países y disciplinas, funcionan varios equipos: no sólo está el equipo de Cloud & Storage donde yo trabajo sino también el equipo ingenieril de infraestructura física, que se ocupa de toda la instalación de los servidores, incluyendo los sistemas de enfriamiento de los servidores y el cableado de las redes entre esos equipos para que funcionen de manera coordinada. También hay un equipo de soporte de aplicaciones, conformado por doctores en distintas disciplinas, que ayuda a otros investigadores de los institutos a generar código fuente muy bien optimizado para lograr un mejor aprovechamiento de nuestros sistemas de cómputo. A su vez, recientemente surgió un grupo de inteligencia artificial (IA), que está creciendo exponencialmente por la necesidad cada vez mayor de los grupos de investigación de desarrollar modelos de Machine Learning”, puntualiza Maximiliano Geier, Cloud+Storage Operator del MPCDF, Licenciado y Doctor en Ciencias de la Computación de Exactas-UBA.

Cómputo en la Nube, Datos y Almacenamiento

Teniendo en cuenta las aplicaciones desarrolladas en el MPCDF, el Doctor del DC aclara que es importante entender cuál es la dinámica detrás de un sistema tradicional de computación de alto rendimiento (HPC): es un “sistema de colas”, es decir, que uno tiene un programa que quiere correr en el sistema pero hay muchos otros usuarios que concurrentemente quieren hacer lo mismo, porque tiene recursos muy veloces y un poder de cómputo muy elevado. Entonces se forman turnos de espera. Uno pone a ejecutar su programa pero como en ese momento puede no haber recursos disponibles para ejecutarlo inmediatamente, queda encolado de alguna manera, y dependiendo de su prioridad y de varios factores, eventualmente va a ejecutarse y generar un resultado final.

De acuerdo a la visión de Geier, con el tiempo toda la infraestructura de cómputo del MPCDF, incluyendo la computación de alto rendimiento, quedó un poco limitada respecto a las necesidades reales de los grupos de investigación. Por ese motivo, desarrollaron HPC Cloud, con el soporte específico del equipo de Cloud & Storage. Este equipo se encarga de todo el ciclo de vida de los sistemas del Cloud, desde la compra e instalación de equipamiento, hasta todo el mantenimiento operativo, soporte a usuarios y las actualizaciones a implementar.

Uno de los diferenciales de esta infraestructura en cuanto al tratamiento de los datos es que, en contraposición a alojarlos en alguno de los proveedores privados más conocidos (como por ejemplo AWS), están almacenados en un sistema propio y autónomo, reduciendo significativamente los costos operativos en el largo plazo, no sólo en términos del almacenamiento sino de la transferencia de datos. Al mismo tiempo, la privacidad de los datos está resguardada por las normativas y leyes del propio país (a diferencia de los proveedores comerciales que tienen sus servidores en cualquier parte del mundo). “Nosotros tenemos el control 100% de los datos porque están en nuestro sistema, a pesar de que el volumen generado es enorme. A esto se suma un equipo de datos que provee soluciones para que los usuarios logren un acceso eficiente y rápido a los mismos”, explica el operador del centro. Esto implica poner en funcionamiento servicios que tengan acceso a los datos generados y los puedan mostrar de una manera eficiente, pero también, al mismo tiempo, garantizar que nada se pierda ante eventualidades. Para lograr esto, otro equipo específico se ocupa de generar backups offline de los datos, que se almacenan sobre cintas magnéticas, y de gestionar la eventual recuperación de los mismos cuando un usuario así lo requiera. Estas cintas se almacenan en un edificio separado del centro de cómputos y pueden tener datos que van hasta varias décadas hacia atrás.

HPC Cloud funciona principalmente apoyándose sobre dos tecnologías:

  • OpenStack, una plataforma que provee infraestructura como servicio (IaaS), que está basado en software libre y, que por las características propias del sistema, brinda flexibilidad a los usuarios para que puedan procesar sus datos con todo tipo de aplicaciones, a diferencia del HPC tradicional. Por ejemplo, plataformas de visualización de datos compartidas con otros usuarios o grupos o bien bases de datos para generar índices de resultados, una funcionalidad especialmente útil si los resultados son de gran volumen.
  • Ceph, un sistema de almacenamiento distribuido que funciona sobre servidores con hardware convencional, permitiendo el uso de discos de distinto tipo y tamaño. Esto resulta en una plataforma muy versátil para resolver las necesidades de almacenamiento de OpenStack. Una ventaja importante que tiene es que es muy sencillo escalar las capacidades del sistema agregando almacenamiento extra, mientras que una desventaja es que requiere mayor conocimiento técnico del operador para ponerlo en funcionamiento, cuando se lo compara con soluciones integradas de almacenamiento de los vendedores comerciales.

 

HPC Cloud en números. Brian Standley, MPCDF, 2024.

En el ambiente HPC tradicional, muchas veces surge la necesidad entre los usuarios de realizar pruebas más pequeñas de sus programas mientras están desarrollando una solución, sin tener que esperar su turno en los grandes equipos, resultando muy útil la posibilidad de contar con versiones a escala mucho más reducidas de ese mismo sistema HPC, que pueden ser provistas desde la HPC Cloud. “Estas versiones reducidas son muy requeridas porque permiten a los usuarios realizar pruebas de concepto, teniendo el control sobre los datos y la flexibilidad para realizar los testeos necesarios hasta que haya recursos disponibles para probar la solución real en los sistemas HPC tradicionales”, argumenta Geier. Y explica que con el tiempo van surgiendo requerimientos más sofisticados de los usuarios para mostrar los datos asociados a los resultados de experimentos. “Un ejemplo de esto es lo que sucede con los papers de computación gráfica, donde quizás el resultado es un video que muestra un algoritmo complejo de visualización, que termina ocupando un montón de espacio, pero que uno quiere que el lector de ese trabajo tenga forma de ver y acceder a ese video desde cualquier lugar del mundo, junto con el texto de la publicación científica. Nuestra infraestructura permite eso al otorgarle a ese recurso una URL fija, que puede ser referenciada desde el trabajo escrito”.

Desafíos de computación de alto rendimiento y posibles soluciones

Recientemente Maximiliano Geier dictó en el DC la charla “HPC Cloud: Integrando sistemas HPC tradicionales con una plataforma Cloud privada”. En esta presentación planteó dos problemas centrales en los que están trabajando actualmente en el MPCDF.

1) Uso de GPUs en la Cloud para ejecutar modelos de Machine Learning: ante el problema de que la cantidad GPUs que pueden ser utilizadas para cómputo suele ser muy escasa cuando se la compara con la cantidad de cores de CPU que tiene un servidor (a diferencia de los cores de CPU que pueden ser 128 ó más, un servidor no suele tener más de 8 GPUs), asignar una GPU exclusivamente a una máquina virtual limita excesivamente la posibilidad de compartir estos recursos eficientemente entre todos los usuarios. En este caso, el equipo de Cloud & Storage trabajó en la implementación de una solución basada en una tecnología de NVIDIA que se denomina MIG (multi-instance GPU). “MIG nos permite que dentro de una misma computadora que tiene una GPU, poder asignar una partición, un subconjunto de los cores de cómputo y una porción de la memoria que tiene la GPU, para un programa en particular. Otros usuarios pueden hacer lo mismo en simultáneo mientras haya particiones disponibles. Aunque seguimos dependiendo del soporte que brinda la empresa NVIDIA dado que el hardware y los drivers son de ellos, es una solución mucho más económica que si utilizáramos vGPUs (GPUs virtualizadas), porque no tenemos el costo de comprar la licencia para activar esta función en las GPUs”. Y aclara que, si bien la funcionalidad obtenida con el uso de MIG es inferior a la de las vGPUs, la primera les permite implementar versiones de escala reducida de clusters HPC sobre la Cloud, como ya fue mencionado, porque se aprovecha el flujo de trabajo de este tipo de sistemas para separar los trabajos de distintos usuarios en particiones separadas de los recursos de GPU, de modo que muchos puedan correr paralelamente su modelo en una misma placa y no tengan que esperar a que una GPU completa esté disponible.

2) Compartir archivos entre distintas instancias de usuario en la Cloud: muchos usuarios desean que los datos que generan puedan ser compartidos con otras instancias de usuario, otros usuarios o proyectos, gestionando esto ellos mismos, es decir, sin intervención del operador. Si bien desde el centro se utiliza internamente Ceph, el problema surge ante la necesidad de permitir a los usuarios exportar sus datos. “Implementamos una solución en OpenStack que se llama Manila, que permite que los propios usuarios desde su interfaz web (dashboard propio) puedan crear un espacio compartido, para almacenar sus archivos, guardar lo que quieran y que después esos mismos archivos se puedan acceder incluso simultáneamente desde distintas computadoras, a través de distintas instancias de usuario”, comenta Geier. No obstante, se necesitaría un cliente que hable directamente con el servicio Ceph, y al ser una tecnología bastante específica, muchas veces esto supone una complejidad adicional para el usuario, que puede no contar con el conocimiento técnico necesario para hacerlo por su cuenta. “Esto se puede compensar: una alternativa para el usuario es que en lugar de hablar directamente con el sistema de almacenamiento, lo haga con un servidor intermedio que actúe como puerta de acceso a esos datos utilizando el protocolo NFS para archivos compartidos, que es muchísimo más común y soportado en todos los sistemas operativos. Esta es una solución menos performante que si se usara directamente Ceph, pero que alcanza a cubrir una variedad de casos de uso generales”, concluye Geier. Y aclara que dependiendo del caso y la necesidad del usuario, ofrecen una solución u otra.

 

Arquitectura de la red. Brian Standley, MPCDF, 2024.

El vínculo con Alemania y el MPCDF

Ante nuestra pregunta sobre cómo surgió la colaboración con el MPCDF y cómo es la vida laboral en Alemania, Geier aclara que el contacto puntual se generó a través de su director de tesis de doctorado (Dr. Esteban Mocskos) y que conoció a dos investigadores del centro perteneciente al Max Planck cuando concurrieron a la Argentina en el contexto de la Conferencia de HPC “CARLA”, organizada en 2017 conjuntamente entre investigadores de Buenos Aires y Montevideo.  “Cuando estaba finalizando mi doctorado en diciembre de 2018, además de que económicamente se me estaba haciendo cuesta arriba, surgió esta posición en el MPCDF que era una muy buena oportunidad, a la que apliqué y finalmente fui seleccionado. En 2019 me trasladé a Múnich y hasta ahora soy el único argentino en el MPCDF. El ambiente de trabajo es realmente agradable, hay gente de muchos países y en mi caso el tipo de trabajo en el ámbito académico es algo que siempre me gustó”.

Además de llegar a dominar no sólo el idioma inglés sino también el alemán, Geier destaca sobre cómo la población alemana valora el interés de los extranjeros por aprender el idioma. “Estudié muchos años alemán de adolescente, luego lo dejé y al llegar acá sentía que no entendía nada. Luego hice un curso presencial en Alemania y finalmente con el tiempo pude aprender a dominar el idioma, más allá de que mayormente en el trabajo se habla inglés. Mostrar interés en aprender el idioma es algo que le recomendaría a cualquier persona que quiera venir a vivir a Alemania”. Y en cuanto a su posible regreso a nuestro país, remarca, “por ahora me quedó acá, porque en este momento no creo que sea la situación ideal para volver a Argentina. Pero si las condiciones fueran otras, no descarto volver. Uno nunca termina sabiendo por qué lugares te lleva la vida”.  

Acerca del MPCDF

The Max Planck Computing and Data Facility (MPCDF) se dedica al desarrollo y optimización de algoritmos y aplicaciones para computación de alto rendimiento y análisis de datos, así como al diseño e implementación de soluciones para proyectos con uso intensivo de datos. En este contexto, opera supercomputadoras de última generación, varios sistemas de computación de rango medio y repositorios de datos para varios institutos Max Planck, y proporciona una infraestructura actualizada para la gestión de datos -incluido el archivo a largo plazo y copias de seguridad de toda la información científica que se genera.

Se originó en 1961 como el centro de computación del Instituto Max Planck de Física del Plasma (IPP), que fue fundado en 1960 por Werner Heisenberg y la Sociedad Max Planck (MPS), donde funcionó la primera computadora científica del país. Y a lo largo de las décadas fue evolucionando notoriamente, acompañado por las innovaciones tecnológicas de cada época; de hecho en los años 90 comenzó a implementar la computación de alto rendimiento (HPC). Cabe recalcar que el objetivo principal de la Sociedad Max Planck es la producción científica e investigación en diferentes disciplinas (ciencias exactas y naturales, informática, ciencias de la vida, ciencias sociales y humanidades, etc.) ya que allí se generan en promedio unos 15.000 papers de calidad por año y han salido varios premios Nobel recientes, especialmente en física y óptica cuántica.

Maximiliano Geier es Licenciado en Ciencias de la Computación (Exactas-UBA, 2011) y Doctor en Ciencias de la Computación (Exactas-UBA, 2018). Se desempeñó como administrador de red (Departamento de Computación, Exactas-UBA, 2007-2012), como docente auxiliar en el mismo departamento (2013-2019), y desde 2019 se encuentra trabajando como Cloud+Storage Operator en el Max Planck Computing and Data Facility (MPCDF) en Alemania. Realizó una tesis doctoral sobre sistemas distribuidos, dirigida por el Dr. Esteban Mocskos, que se titula «Análisis del comportamiento de aplicaciones paralelas y distribuidas por medio de técnicas de emulación de redes». Desde 2023 colabora directamente con el DC en la dirección de un estudiante de doctorado, en conjunto al Dr. Mocskos.