Durante esta actividad el alumno será capaz de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Esta actividad debe ser elaborada de manera individual.
El producto punto de dos vectores a y b con n elementos cada uno, se define de la siguiente manera:
Escribe en lenguaje C dos versiones para resolver este problema: una versión secuencial normal y una versión paralela usando instrucciones intrínsecas SIMD para la arquitectura x86. Con el fin de simplificar su implementación, considera las siguientes restricciones:
Para resolver la versión paralela SIMD se sugiere utilizar las siguientes operaciones intrínsecas:
_mm_setzero_si128
_mm_load_si128
_mm_store_si128
_mm_add_epi16
_mm_madd_epi16
Compara varios tiempos de ejecución de las versiones secuenciales y paralelas y realiza un breve reporte donde documentes el speedup obtenido.
En la parte superior de los archivos fuente de C coloca en comentarios tus datos personales. Por ejemplo:
/*-------------------------------------------------------------------- * * Actividad de programación: Producto punto con SIMD * Fecha: 2-Abr-2013 * Autor: 1160611 Anthony Stark * *--------------------------------------------------------------------*/
Coloca en un archivo tarball llamado tarea5.tgz
todos los archivos fuentes de tu programa así como el reporte del speedup en formato PDF.
Sube el archivo tarball usando el Sistema de Entrega de Tareas Automatizado.
Fecha límite: Martes, 2 de abril.
Esta actividad será evaluada usando los siguientes criterios:
100 | La actividad cumple con todos los requerimientos. |
---|---|
-10 | No se incluyó en comentario los datos del autor. |
10 | El programa fuente produce uno o más errores al momento de compilarlo. |
50-90 | El programa funciona, pero produce algunos errores a tiempo de ejecución y/o los resultados no son del todo correctos. |
DA | La solución es un plagio. |