PRÁCTICA DE AED II, SESIÓN PRÁCTICA DE PARALELISMO CON OpenMP En esta sesión de analizará experimentalmente el comportamiento de algunos programas paralelos. Se utilizará un cluster de 4 nodos, cada uno con 8 cores. La ejecución con OpenMP se puede realizar usando un único nodo. El trabajo realizado en estas sesiones de laboratorio contará en la segunda práctica con una puntuación adicional de hasta 0.3 (evaluando la práctica sobre 10) por sesión. Los alumnos realizarán estas sesiones preferentemente en grupos de dos, y con autorización del profesor en grupos de uno o tres. NOMBRES DE LOS ALUMNOS: - - - DÍA: Antes de acabar la sesión práctica, se enviará al profesor de prácticas por correo este documento, con comentarios breves a cada una de las cuestiones que se plantean, o a las que haya dado tiempo a analizar durante la sesión práctica. 1) EL CONCURSO DE PROGRAMACIÓN PARALELA En esta sesión y en la correspondiente a MPI se utilizará como entorno de trabajo el subcluster de Arabí utilizado en el Concurso de Programación Paralela, así como ejemplos de los utilizados en este concurso. Hay que conectarse a la página del concurso (cpp.fpcmur.es) y consultar las instrucciones de la prueba de calentamiento de la edición de 2011 en La Laguna. CUESTIÓN Identificar el sistema con el que se realizan las pruebas e indicar también cómo se lanzan ejecuciones de programas secuenciales y OpenMP. RESPUESTA 2) ACCESO AL SISTEMA A cada grupo se le proporcionará una cuenta de acceso a la prueba de calentamiento, que consta de dos problemas, uno de multiplicación de matrices y otro de ordenación por mergesort. CUESTION Acceder al sistema y ejecutar los programas secuenciales, tanto de multiplicación de matrices como el mergesort. ¿Qué tiempo de ejecución se tiene en ambos casos? RESPUESTA 3) MULTIPLICACIÓN DE MATRICES En el directorio de la prueba de calentamiento se proporcionan cuatro programas para la multiplicación de matrices. CUESTIÓN Modificar el programa secuencial para mejorar la forma de acceder a los datos. Obtener el tiempo de ejecución y compararlo con el de la versión secuencial anterior. RESPUESTA CUESTIÓN Ejecutar el programa OpenMP variando el número de threads de 1 hasta 8. Obtener los tiempos de ejecución y compararlo con los de las versiones anteriores. ¿Con cuál se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA CUESTIÓN Programar una versión OpenMP donde la multiplicación se realice mejorando el acceso a memoria. Ejecutar el programa variando el número de threads de 1 hasta 8. Obtener los tiempos de ejecución y compararlos con los de las versiones anteriores. ¿Con cuál se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA 4) ORDENACIÓN POR MEZCLA De la ordenación por mezcla sólo se proporciona un programa secuencial. CUESTIÓN Realizar una versión OpenMP de este programa de ordenación. Utilizar para esto los ejemplos vistos en las sesiones de teoría y de prácticas. Ejecutar el programa variando el número de threads de 1 hasta 8. Obtener los tiempos de ejecución y compararlos con los de las versión secuencial. ¿Con qué número de threads se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA