Paralelización del Algoritmo Expectación–Maximización Utilizando OpenCL - Insua-Suárez, Ernesto; Fulgueira-Camilo, Marlis; Henry-Fuenteseca, Venus (Lámpsakos (revista descontinuada), 2015)
Actualmente, las organizaciones y empresas almacenan grandes volúmenes de datos para lograr sus propósitos. Una de las variantes para obtener información valiosa consiste en el empleo de la Minería de datos. Dentro de esta, existen diferentes tareas, una de ellas es el agrupamiento. En esta tarea los datos se agrupan según sus semejanzas entre si y diferencias con elementos de otros grupos. Dentro de los algoritmos que realizan estos agrupamientos se encuentra Expectación-Maximización, el cual presenta elevados tiempos de ejecución en la medida que aumenta el tamaño de los datos. En el presente artículo se discute acerca de la paralelización del algoritmo, utilizando técnicas de programación paralela. El diseño del algoritmo propuesto se basa en el uso de las tarjetas de procesamiento gráfico, GPU. OpenCL, lenguaje empleado para la programación en arquitecturas híbridas, permite aprovechar las arquitecturas de hardware disponibles, con lo que se logra disminuir el tiempo de ejecución de la implementación realizada. La razón principal por lo cual es posible mejorar este tiempo se debe a la cantidad de procesos paralelos que se pueden lanzar en hilos de procesamientos independientes. Para el logro de los resultados descritos se integran conocimientos del campo de la Minería de datos y la Computación Paralela y Distribuida. Como parte de esta investigación, se realizó una implementación del algoritmo utilizando las bibliotecas de OpenCL, para disminuir su tiempo de ejecución. La implementación logra disminuir en un 82% la implementación secuencial. Esto significa que el algoritmo paralelo se ejecuta 5,5 veces más rápido que su correspondiente implementación secuencial.