Simulación Multi-GPU escalable de dinámica molecular en arquitecturas de computación de alto rendimiento
Abstract
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.
Description
Tesis Doctoral leída en la Universidad Rey Juan Carlos de Madrid en 2021. Director: Alberto Sánchez Campos
Collections
- Tesis Doctorales [1552]