Propuesta Cluster Argentino para MD y ML

Luego de la exitosa experiencia de reposicionamiento del hardware de Mendienta Fase 2 con las Supecomputadora para machine learning Nabucodonosor, estamos buscando reconvertir los doce (12) nodos restantes de Mendieta Fase 2.

Doce Nabucodonosor más.

Queremos aumentar el soporte de computación para machine learning ML y dinámica molecular MD. Ambas disciplinas tienen un perfil de cómputo muy parecido entre sí, ya que hacen un uso intensivo de aceleradores de cómputo. Muchos usuarias y usuarios de todo el país están haciendo simulaciones con paquetes como GROMACS, AMBER y LAMMPS, los cuales tienen un excelente soporte para hacer offloading a GPUs.

Con esta propuesta estamos apuntando lograr un cluster de 360 TFLOPS pico de precisión simple en GPUs y además reutilizar los nodos de Mendieta Fase 2 que están en su fin de vida útil. La relación TFLOPS/USD es muy buena, gracias a que solo hay que comprar las GPUs y pagar el servicio de adaptación.

La propuesta está firmada por más de cien investigadoras e investigadores de todo el país que están interesados en contar con esta herramienta que les permitirá mejorar su producción científica.

Documento en PDF: Cluster Argentino de Bajo Costo para MD y ML

Pre-vista:

CCAD ayuda al LaES a modernizar código

El CPA Principal de CONICET Carlos Bederián trajo al 2020 un código «C» que tranquilamente podría haber sido escrito en 1980 para una PDP-11/70. En este back to the future, Carlos logró que el código sea diez veces más rápido, es decir 10 veces más simulaciones o sistemas 10 veces más grandes.

A mediados de agosto el investigador del LaES, Ezequiel Leiva, nos escribe para saber si podemos paralelizar un código que sirve para hacer simulaciones de litio. Nos comenta que el código es secuencial y que lo hicieron con sus rudimentarios conocimientos de «C». Luego de una semana de haber recibido el código, el código se reescribió en C++ paralelizando con OpenMP, se utilizó el sistema de construcción  Meson BuildGoogle Test para pruebas unitarias que confirmaban que los resultados eran exactamente iguales al código original.

Dos semanas más tarde Bederián codifica una variación de sumas acumuladas (prefix sum) específica para este problema utilizando AVX2 intrinsics, obteniendo entre 25% y 40% más de desempeño..

Los resultados en un servidor dual Xeon E5-2680 v4 (28 cores en total) son notables. El punto rojo abajo a la izquierda representa el código original. Con 16 núcleos ya llega a 10x de speedup.

Notamos que GCC presenta algunos problemas de escalabilidad en la implementación GOMP, que Clang-LLVM no tiene. El compilador de Intel, esta vez, proporciona un 20% más de desempeño que sus competidores FLOSS.

El Dr. Leiva nos explica la importancia de este programa.

Este código tiene por objeto simular la inserción de iones de litio en grafito, en sistemas de tamaño finito mediante modelos reticulares. El grafito es el material empleado por excelencia como ánodo en todas las baterías comerciales (ej. celulares), y algunas de las características de este material eran ignoradas hasta hace poco:

  • «A theoretical model to determine intercalation entropy and enthalpy: Application to lithium/graphite», E.M. Perassi, E.P.M. Leiva, Electrochem Commun 65 (2016) 48-52.2
  • «The kinetic origin of the Daumas-Hérold model for the Li-ion/graphite intercalation system», E.M. Gavilán-Arriazu, O.A. Pinto, B.A. López de Mishima, D.E. Barraco, O.A. Oviedo, E.P.M. Leiva, Electrochemistry Communications 93(2018)133–137.

El código modificado va a permitir extender las simulaciones a tamaños que permitan extrapolar el comportamiento de nanosistemas a sistemas mayores, en los que se realizarán simulaciones con herramientas de continuo.