PRÁCTICA DE AED II, SESIÓN PRÁCTICA DE PARALELISMO CON MPI 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 MPI se puede realizar usando todos los nodos. El trabajo realizado en estas sesiones de laboratorio contarán 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 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) USO DE MPI Consultar las instrucciones de la prueba de calentamiento de la edición de 2011 en La Laguna. CUESTIÓN Identificar cómo se lanzan ejecuciones de MPI utilizando un único nodo, dos nodos... RESPUESTA 2) MULTIPLICACIÓN DE MATRICES Utilizar el programa ejemplo de multiplicación de matrices con MPI. CUESTIÓN Ejecutar el programa usando 2, 4, 6 y 8 procesos, todos dentro del mismo nodo, y en nodos distintos. Comparar los tiempos de ejecución cuando se ejecutan en un nodo y en más de uno. Justificar las diferencias. ¿Con cuál se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA CUESTIÓN Comparar los tiempos de ejecución cuando se ejecutan en un nodo con los obtenidos con la versión OpenMP. ¿Con cuál se obtiene el menor tiempo? Justificar el por qué. RESPUESTA CUESTIÓN Realizar ejecuciones utilizando todo el sistema para obtener la configuración que proporciona menor tiempo de ejecución. ¿Con cuál se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA CUESTIÓN Modificar el programa para mejorar el acceso a memoria. Repetir los experimentos anteriores y comparar los tiempos de ejecución con los de las versiones anteriores. RESPUESTA 3) ORDENACIÓN POR MEZCLA De la ordenación por mezcla sólo se proporciona un programa secuencial. CUESTIÓN Realizar una versión MPI 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 procesos. Obtener los tiempos de ejecución y compararlos con los de la versión secuencial. ¿Con qué número de procesos se obtiene el menor tiempo? ¿Cuál es el máximo valor alcanzado del speed-up? RESPUESTA 4) PROGRAMACIÓN HÍBRIDA Las ejecuciones se realizan siempre con MPI. En la versión secuencial se lanza un proceso MPI y un único thread dentro de él. En la versión OpenMP se lanza un proceso MPI y dentro de él se establece el número de threads OpenMP. En la versión MPI se lanzan varios procesos MPI y dentro de cada uno un único thread. Si se lanzan varios procesos MPI y dentro varios threads OpenMP se tiene una versión con paralelismo híbrido. CUESTIÓN Lanzar el programa híbrido de multiplicación de matrices variando el número de procesos y de threads. ¿Con qué configuración se tiene mejores tiempos? RESPUESTA CUESTIÓN A partir de las versiones OpenMP y MPI de la ordenación por mezcla, realizar una versión híbrida, ejecutarla con distintas configuraciones y comentar los resultados. RESPUESTA