Acelerando la Evaluación Virtual en el Descubrimiento de Medicamentos
Mejoramos la velocidad de cribado virtual usando preparación de datos optimizada y arquitectura de GPU.
― 7 minilectura
Tabla de contenidos
La búsqueda virtual es una etapa temprana en la búsqueda de nuevos medicamentos. Este proceso ayuda a los científicos a elegir los mejores candidatos para probar más a fondo. En el mundo acelerado de hoy, es importante obtener resultados rápido.
En esta charla, analizamos cómo hacer que una aplicación específica de búsqueda virtual funcione más rápido. Nos enfocamos en usar las características tanto de los datos de entrada como de la arquitectura de computadoras, especialmente usando GPUs, para obtener un mejor rendimiento.
Los resultados de los experimentos en una supercomputadora moderna muestran que podemos casi duplicar la velocidad de nuestros esfuerzos de búsqueda virtual. También descubrimos que usar SYCL, un modelo de programación similar a CUDA, proporciona beneficios consistentes en términos de rendimiento.
El papel de la búsqueda virtual en el descubrimiento de fármacos
Cuando los científicos buscan nuevos medicamentos, buscan moléculas pequeñas que puedan ayudar a combatir enfermedades. El proceso de descubrimiento de fármacos es normalmente complejo y caro. Involucra etapas que incluyen pruebas de laboratorio en células (in-vitro) y pruebas en organismos vivos (in-vivo). Estas etapas pueden llevar mucho tiempo y dinero, limitando cuántos medicamentos potenciales se pueden probar.
Estudios recientes han destacado las ventajas de usar métodos in-silico antes de las pruebas in-vitro. Los métodos in-silico, como la búsqueda virtual, permiten a los investigadores estimar qué tan bien una molécula pequeña, o ligando, interactúa con una proteína objetivo. Esto ayuda a clasificar una gran colección de Ligandos, permitiendo que solo los más prometedores avancen a pruebas adicionales.
Al simular reacciones químicas conocidas, los investigadores pueden crear una inmensa biblioteca de compuestos químicos. El tamaño de esta biblioteca depende de los recursos de computación utilizados para la búsqueda virtual. Por eso, las Supercomputadoras son clave para campañas de búsqueda virtual efectivas.
Desafíos en la búsqueda virtual
Las supercomputadoras modernas a menudo incluyen GPUs, que están diseñadas para manejar grandes tareas en paralelo. Sin embargo, como diferentes GPUs son fabricadas por varias empresas, no hay un único lenguaje de programación que funcione mejor para todas. Esto hace que sea complicado aprovechar al máximo el poder de cómputo disponible.
En situaciones urgentes, como durante una pandemia, obtener resultados rápidamente puede reducir significativamente los impactos sociales y económicos. Por lo tanto, nuestro software de búsqueda virtual debe usar todos los recursos de computación disponibles de manera efectiva.
Un estudio de caso: Mejorando el rendimiento de la búsqueda virtual
Analizamos de cerca una aplicación de búsqueda virtual como un estudio de caso. Uno de los enfoques que tomamos fue preparar los datos de una manera que facilitara el procesamiento por parte de la GPU. Este paso de preparación busca hacer que los cálculos se realicen de manera más eficiente.
Después de implementar esta optimización y probarla, encontramos que podíamos mejorar el rendimiento tanto para los marcos de programación SYCL como para CUDA. Aunque nuestros hallazgos son específicos para la búsqueda virtual, potencialmente se aplican a otras aplicaciones similares.
Desglosando el proceso de búsqueda virtual
Para llevar a cabo la búsqueda virtual, hay tres pasos principales:
- Identificación de sitios de acoplamiento: El primer paso implica encontrar partes de la proteína donde el ligando puede unirse.
- Acoplamiento del ligando: El segundo paso es estimar cómo interactuará el ligando con los sitios de acoplamiento identificados.
- Evaluación de la fuerza de interacción: Por último, medimos qué tan fuerte es esta interacción, lo que nos permite clasificar los ligandos en nuestra biblioteca.
Este proceso ha sido investigado extensamente, y se han probado varios métodos para mejorar el rendimiento. En escenarios urgentes, se pone el foco en repensar el software existente para aprovechar mejor los recursos de computación modernos, especialmente las GPUs.
Preparación de datos inteligente para un mejor rendimiento
Un desafío en la computación con GPU es que cada ligando tiene un número diferente de átomos. Al diseñar núcleos de GPU (el código que se ejecuta en la GPU), se necesita reservar suficiente memoria para los ligandos más grandes. Esto puede hacer que el proceso se ralentice ya que la memoria debe ser reservada incluso si no se necesita para ligandos más pequeños.
Para abordar esto, creamos núcleos especializados para diferentes grupos de ligandos que comparten tamaños similares. Al hacer esto, reduzimos los recursos desperdiciados y hicimos que los cálculos fluyeran mejor. El objetivo principal era organizar los ligandos en "cubos" donde compartieran características similares antes de pasar por la búsqueda virtual.
Cómo funciona el agrupamiento
El agrupamiento implica dos decisiones principales:
- ¿Cuántos ligandos deberían incluirse en cada cubo?
- ¿Cómo deberíamos agrupar los ligandos según sus características?
Para decidir el número de ligandos por cubo, usamos funciones específicas para evaluar la capacidad de la GPU, lo que nos ayudó a optimizar la cantidad incluida sin sobrecargar la memoria.
Para la agrupación, consideramos diferentes formas de clasificar los ligandos según sus características estructurales, para asegurarnos de que cada cubo tuviera ligandos que fueran similares. Este método permite el procesamiento paralelo, lo que acelera las cosas de manera significativa.
Portando a SYCL
También tomamos nuestras optimizaciones y las adaptamos para SYCL, otro marco de programación. Si bien el proceso de preparación es similar a CUDA, necesitábamos considerar las diferencias entre ellos. Nos aseguramos de utilizar características de SYCL para mantener niveles de rendimiento equivalentes a los que logramos con CUDA.
Resultados experimentales muestran éxito
Llevamos a cabo una variedad de experimentos para ver cómo funcionaban estas optimizaciones en la práctica. Todas las pruebas se realizaron en una supercomputadora con potentes CPUs y GPUs.
Los resultados mostraron mejoras claras en el rendimiento, que mide cuántos ligandos pueden procesarse en un período determinado. Evaluamos el rendimiento basado en diferentes tipos de ligandos y el número de clústeres utilizados.
En las pruebas, descubrimos que tener la cantidad correcta de ligandos agrupados en cubos condujo a un mejor rendimiento. Este enfoque generalmente duplicó el rendimiento en muchos casos.
Comparando las implementaciones de SYCL y CUDA reveló que, aunque CUDA era ligeramente más rápido en algunos aspectos, ambos métodos ofrecieron mejoras significativas respecto a enfoques anteriores. Notamos que los mismos principios de diseño podrían trasladarse a otras aplicaciones que necesitan estrategias de procesamiento similares.
Conclusión
En resumen, analizamos cómo mejorar la velocidad y eficiencia de las aplicaciones de búsqueda virtual. Al preparar los datos de manera inteligente y utilizar las especificidades de la arquitectura de la GPU, logramos aumentos significativos en el rendimiento. La ganancia en velocidad fue consistente en ambos marcos, SYCL y CUDA.
Si bien grandes conjuntos de datos y entradas homogéneas generan los mejores resultados, este nivel de eficiencia es especialmente importante para esfuerzos extensos de búsqueda virtual. En escenarios de computación urgentes, aplicar estas optimizaciones podría conducir a un descubrimiento más rápido de medicamentos potenciales, beneficiando en última instancia a la sociedad en su conjunto.
Título: Improving computation efficiency using input and architecture features for a virtual screening application
Resumen: Virtual screening is an early stage of the drug discovery process that selects the most promising candidates. In the urgent computing scenario it is critical to find a solution in a short time frame. In this paper, we focus on a real-world virtual screening application to evaluate out-of-kernel optimizations, that consider input and architecture features to improve the computation efficiency on GPU. Experiment results on a modern supercomputer node show that we can almost double the performance. Moreover, we implemented the optimization using SYCL and it provides a consistent benefit with the CUDA optimization. A virtual screening campaign can use this gain in performance to increase the number of evaluated candidates, improving the probability of finding a drug.
Autores: Gianmarco Accordi, Emanuele Vitali, Davide Gadioli, Luigi Crisci, Biagio Cosenza, Mauro Bisson, Massimiliano Fatica, Andrea Beccari, Gianluca Palermo
Última actualización: 2023-03-09 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2303.06150
Fuente PDF: https://arxiv.org/pdf/2303.06150
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.