Acercamiento a la programación paralela usando CUDA - Del Toro Melgarejo, Leonardo Flavio; Gálvez Lio, Daniel; Triana Brito, Diana Isabel; Cepero Alejo, Abel (Feijóo, 2013)
La tecnología CUDA (Compute Unified Device Architecture) de NIVIDIA se ha convertido en una poderosa herramienta para el desarrollo de diversas aplicaciones paralelas sobre las GPU (Graphic Processor Unit). Esta se ha explotado en diversos campos de la investigación científica tales como el Análisis numérico, la Física, la Defensa e Inteligencia, la Bioinformática y la Minería de datos, entre otras. Actualmente existen cientos de publicaciones científicas que describen y fundamentan aplicaciones paralelas usando esta tecnología. CUDA permite desarrollar aplicaciones empleando lenguajes de programación estándares como C y C++. El rendimiento que han alcanzado estas aplicaciones ha superado al de los computadores multinúcleos e incluso a algunos clústeres de computadores al tratar los mismos problemas. El rendimiento de las aplicaciones desarrolladas es estudiado por herramientas tales como el Visual Profiler y su versión para línea de comandosCommand Line Profiler permitiendo optimizar su código. Muchos centros científicos en todo el mundo han comenzado a explorar esta tecnología, incluyendo al Centro de Estudios en Informática (CEI) de la Universidad Central “Marta Abreu” de Las Villas para aplicarla en el área de la Bioinformática. En este trabajo se presenta esta tecnología, se describen algunas de las aplicaciones más importantes que emplean CUDA en la actualidad, y se analizan su utilidad y estrategia de desarrollo. Mediante la presentación de ejemplos sencillos, se proporciona un marco de trabajo para aquellos programadores que pretendan iniciar sus proyectos con esta tecnología
Keywords: Tecnologia CUDA