Simulación Multi-GPU escalable de dinámica molecular en arquitecturas de computación de alto rendimiento
Fecha
2021
Autores
Título de la revista
ISSN de la revista
Título del volumen
Editor
Universidad Rey Juan Carlos
Resumen
Actualmente en el mundo de las tecnologías de la información y las comunicaciones
están tomando una gran relevancia los sistemas que permiten realizar cálculos
de manera paralela, ya sea utilizando diversos equipos conectados a una misma red,
lo que llamamos clúster, o mediante un solo dispositivo con múltiples procesadores.
Tanto es así que en la actualidad existen grandes centros de supercomputación destinados
a realizar grandes cantidades de cálculos con el objetivo de poder resolver
problemas computacionalmente muy costosos. Dispositivos como las GPUs (Graphics
Processor Unit) se han ido adaptando a este escenario para poder realizar de
forma paralela cálculos de ámbito genérico de una forma eficiente, fragmentando el
problema y realizando cálculos menos costosos en cada uno de sus procesadores.
Estas técnicas de computación paralela encajan muy bien con diversos algoritmos
de simulación mecánica. Concretamente, las técnicas de simulación basadas en partículas,
como la simulación de fluidos o la simulación de dinámica molecular, tienen
las características deseables para poder utilizar estas arquitecturas multi-procesador;
siendo la principal la necesidad de realizar miles de cálculos que implican las mismas
operaciones sobre conjuntos de datos diferentes. Por esta razón el uso de GPUs es
ideal para esta aplicación. Esta tesis se va a centrar en el uso de estas arquitecturas
multi-procesador para llevar a cabo el proceso de simulación de dinámica molecular
de forma escalable sobre las mismas. En este tipo de simulación los átomos se
representan como partículas, las cuales pueden estar enlazadas a otras partículas, y
además existen interacciones entre ellas no relacionadas con los enlaces, como son
las fuerzas electrostáticas y las fuerzas de Van der Waals. Para cada átomo es necesario
calcular todas las fuerzas que actúan sobre este en cada paso de tiempo, lo que se puede hacer en un procesador de la GPU. De esta forma una sola GPU puede
calcular las interacciones atómicas de un sistema molecular compuesto por miles de
átomos en un tiempo mucho mas reducido que el que utilizaría una CPU. Por lo
tanto, teóricamente un clúster compuesto de múltiples GPUs seria capaz de realizar
estos mismos cálculos para millones, o incluso miles de millones de átomos en un
tiempo similar. Sin embargo, al paralelizar la simulación de un sistema molecular es
necesario disponer de cierta duplicidad en los datos, lo que reduce la escalabilidad
del sistema. Esto es debido a que los cálculos de las fuerzas de simulación dependen
tanto de los átomos situados alrededor de cada uno de ellos en un radio predefinido,
así como de todos los demás átomos del sistema. Por lo tanto, cada GPU debe
almacenar los datos de los átomos para los que tiene que calcular las fuerzas, así
como los datos de los que se encuentran alrededor que pueden están localizados en
otra GPU. A lo largo de esta tesis se mostrarán diversas técnicas para optimizar
la paralelización de simulación de dinámica molecular, resolviendo la problemática
expuesta de forma escalable y llegando a simular un sistema molecular de más de
1000 millones de átomos en solo 128 GPUs.
La simulación de dinámica molecular en arquitecturas de computación masiva,
como es un entorno Multi-GPU, no solo implica la problemática de realizar los
cálculos en paralelo de manera óptima, sino que también es necesario gestionar la
infraestructura donde se va a llevar a cabo la ejecución. Este tipo de arquitecturas
se encuentran generalmente en grandes centros de supercomputación o en servicios
de cloud computing. El acceso a los centros de supercomputación puede ser bastante
costoso y, además, su disponibilidad es limitada. Esto hace de los entornos cloud
una buena alternativa al uso de los supercomputadores. Sin embargo, estos entornos
también suponen un elevado coste si se desea contratar el uso de GPUs, lo que hace
necesario tener la capacidad de gestionar su uso para que sea lo más eficiente posible.
Otro punto a tener en cuenta a la hora de realizar la simulación es el preprocesado de los datos de los sistemas moleculares. Los datos de estos sistemas se pueden, o
bien modelar, o bien obtener de repositorios públicos que se encargan de recopilar
esta información. Estos datos por lo general se obtienen con fines científicos en diversos
campos, no solo en el de simulación. Esto supone que pueden estar incompletos
o no ser realistas en términos físicos, por lo que es necesario tratarlos previamente
para poder realizar una simulación correcta. Estos puntos se tratan a lo largo de la
presente tesis, detallando el desarrollo de una aplicación SaaS que permite gestionar
los recursos del entorno cloud de la forma más eficiente posible. Esta herramienta
además permite automatizar tanto el proceso de simulación como el preprocesado
de los datos molecular, simplificando estos procesos para el usuario y permitiendo
que los usuarios no especializados en dinámica molecular puedan llevar a cabo la
simulación de una manera más sencilla.
Descripción
Tesis Doctoral leída en la Universidad Rey Juan Carlos de Madrid en 2021. Director: Alberto Sánchez Campos
Palabras clave
Citación
Colecciones
Excepto si se señala otra cosa, la licencia del ítem se describe como Atribución-NoComercial-CompartirIgual 4.0 Internacional