Uso eficiente de tarjetas gráficas para la visualización volumétrica de campos escalares Responsables M. en I. Oscar Yañez Suárez (yaso@xanum.uam.mx) Dr. Jorge Garza Olguín (jgo@xanum.uam.mx) Perfil deseable del alumno El alumno debe tener conocimientos de programación en C, C++, CUDA y OpenGL para hacer aplicaciones gráficas de alto rendimiento, así como del manejo del entorno de desarrollo de aplicaciones Qt. Presentación del contexto e identificación de la problemática El despliegue gráfico de campos escalares ha estado dominado por el uso intensivo del CPU al tiempo que mediante el uso de bibliotecas gráficas se hace uso básico de la tarjeta gráfica. Algunos de los pasos cruciales para el despliegue gráfico de campos escalares donde interviene el CPU son: a) generación de la malla dde evaluación (dominio), b) evaluación del campo escalar sobre la malla, c) paso de los datos generados a la tarjeta gráfica. 1,2 En años recientes la industria de las tarjetas gráficas ha diversificado su uso. Por ejemplo, en estos días existen tarjetas gráficas que contienen millones de procesadores que ejecutan concurrentemente programas para efectuar operaciones de punto flotante (en precisión simple o precisión doble) que pueden competir con servidores, o agregados de servidores, que contengan un número grande de CPUs. Por supuesto que esta cualidad de las tarjetas gráficas ha sido un blanco para los centros de supercómputo. 3 Una limitante de las tarjetas gráficas para su uso en cómputo de alto rendimiento es la memoria física de la que disponen estos dispositivos ya que no pueden compartir la memoria del sistema a la que tiene acceso el CPU. 4 Por el lado de la visualización se recurre comúnmente al esquema de evaluar campos escalares, o vectoriales, en el CPU (o en un conjunto de CPUs) y después transferir el campo generado para su visualización en un servidor. En este sentido se está perdiendo la cualidad de la tarjeta gráfica de hacer operaciones de punto flotante, además es
necesario hacer transferencia de datos del CPU a la tarjeta gráfica para generar el despliegue gráfico. Naturalmente, la memoria física de la tarjeta gráfica será una limitante y es ahí donde se tienen que explorar los diversos esquemas de uso de memoria de la tarjeta gráfica lo cual implica también una manera eficiente de transferencia de datos entre la tarjeta gráfica y el CPU. En el contexto de las aplicaciones, la química teórica es uno de los campos del conocimiento donde cotidianamente se hace uso de recursos de CPU en un centro de supercómputo para generar campos escalares y analizarlos con software libre o comercial en una estación de trabajo. Por mala fortuna, es realmente escaso el uso de estaciones de trabajo que contengan tarjetas gráficas -con la capacidad de efectuar operaciones de punto flotante- para explotar simultáneamente sus capacidades de cómputo científico y de visualización. He aquí la necesidad de contar con el software adecuado para explotar todas las facetas de una tarjeta gráfica de última generación. Objetivos generales del proyecto de investigación Generar una aplicación que permita evaluar campos escalares sobre una tarjeta gráfica y visualizar en tiempo real el campo escalar generado. Objetivos Específicos 1 Distribución eficiente de una malla tridimensional sobre los hilos contenidos en una tarjeta gráfica. 2 Evaluación de la densidad electrónica de una molécula de tamaño mediano sobre la malla generada en el punto 1. 3 Producción de isosuperficies de densidad para su visualización. 4 Generación de una interfaz de programación de aplicaciones para generar el despliegue gráfico de las isosuperficies del campo escalar del punto 3. Metodología propuesta Uno de los aspectos importantes dentro de este proyecto es el de distribuir de manera eficiente la información sobre los hilos de la tarjeta gráfica, con lo cual el uso de la memoria de la tarjeta gráfica es crucial. Por lo tanto, es necesario que la interfaz de programación de aplicaciones planteada en el objetivo 3 considere diferentes niveles de acceso a la memoria: memoria global, compartida o constante. Así, la metodología que se usará en este proyecto contempla el ajuste necesario de las diferentes memorias
disponibles en la generación de la malla, la evaluación del campo escalar y el despliegue gráfico. Es importante mencionar que se ha generado una tesis de maestría donde se plantea la distribución de la malla sobre tarjetas gráficas usando CUDA C y por lo tanto se evaluará si es pertinente tal algoritmo o se requerirá diseñar uno adicional. 5 Además, existe una tesis de licenciatura donde se evalúa a la densidad electrónica sobre tarjetas gráficas. 6 Naturalmente, se utilizará ese conocimiento como punto de partida para construir los algoritmos de visualización así como el enlace con la interfaz gráfica. Resultados esperados Se reconocen dos productos principales de este proyecto. Por una parte, un usuario final verá una aplicación para el despliegue gráfico de campos escalares en general, y de aquellos que surjan del modelado molecular en particular. No tenemos conocimiento de alguna aplicación de este tipo generada en nuestro país, por lo que se generará conocimiento sobre nuevas tecnologías que den como producto aplicaciones de amplio uso. Naturalmente, este proyecto generará artículos de investigación y participaciones en congresos especializados. Resultados trimestrales Al finalizar el proyecto el alumno habrá construido una aplicación para la visualización tridimensional de campos escalares acompañado de su documentación completa. Asimismo, habrá completado un conjunto de pruebas de funcionamiento que le permitirán evaluar la efectividad de su propuesta. Al término del primer trimestre el alumno generará su protocolo de investigación que, al menos, contendrá una descripción del estado del conocimiento, la problemática que se abordará y la metodología de solución que se sustente en el procesamiento y despliegue de iso-superficies en tarjetas de procesamiento gráfico. Al término del segundo trimestre el alumno entregará un reporte de los avances del proyecto de investigación. El reporte describirá los hitos y avances realizados por el alumno. Entre los avances se presentará una primera versión de la aplicación.
En el tercer trimestre el alumno se centrará en la ejecución de pruebas que le permitan retroalimentar la propuesta y al finalizar entregará la versión final de su idónea comunicación de resultados. Calendarización de actividades 1 Revisión de la literatura y dominar la programación en CUDA C y OpenGL. 2 Evaluar la pertinencia de la malla propuesta en la tesis de maestría de la referencia 5. 3 Adaptar un código escrito en CUDA C donde ya se evalúa la densidad electrónica obtenida de un cálculo de la teoría de funcionales de la densidad para usarlo como campo escalar de prueba. 4 Generar la parte básica de visualización que tendrá como interfaz un usuario. 5 Evaluar diferentes accesos de la memoria en la tarjeta gráfica en el despliegue gráfico de campos escalares modelo. 6 Finalizar la aplicación que permita visualizar un campo escalar generado por técnicas de estructura electrónica de átomos y moléculas. 7 Comunicación idónea de resultados
Actividad Trimestre 1 Trimestre 2 Trimestre 3 1 2 3 4 5 6 7 Infraestructura necesaria y disponible Toda la infraestructura para desarrollar este proyecto está instalada en la Universidad Autónoma Metropolitana-Iztapalapa. Se cuenta con dos servidores que contienen cada uno de ellos 8 cores y dos tarjetas gráfica NVIDIA Quadro 5000. Dos servidores con 12 cores, cada uno de ellos, conectados a un gabinete que contiene 6 tarjetas NVIDIA M2090. Lugar(es) de realización Laboratorio de Neuroimagenología, T.227 Fisicoquímica Teórica, AT-248 Laboratorio de Supercómputo y Visualización en Paralelo Referencias 1. Humphrey, H.; Dalke, A.; Shulten, K. J. Mol. Graph. 14, 33 (1996). 2. Stone, J. E.; Hardy, D. J.; Saam, J.; Vandivort, K. L.; Schulten, K. Chapter 1 in GPU Computing Gems: Emerald Edition. Editor Wen-Mei W. Hwu. Morgan Kaufmann (New York, 2011). 3. Sanders, J.; Kandrot, E. CUDA by example: an introduction to general-purpose GPU programming. Addison-Wesley. (New York, 2011). 4. Ufimtsev, S.; Martínez, T. J. Journal of Chemical Theory and Computation. 4, 222 (2008). 5. Alcalde Segundo, Isaías. Tesis de maestría Evaluación de campos escalares de la química cuántica sobre unidades de procesamiento gráfico. Universidad Autónoma del Estado de México. Enero, 2013.
6. Hernández Esparza, Raymundo. Tesis de licenciatura Análisis del enlace de hidrógeno con la matriz de densidad de orden uno: aplicación sobre tarjetas gráficas. Benemérita Universidad Autónoma de Puebla. Noviembre, 2011.