computación biológica, HMPI, Vtune, Vampir, threads en Valgrind

Anuncio
Algoritmos y Programación Paralela y Metodología de la Programación Paralela, Prácticas y trabajos 2012-2013
Presentación sobre temas alternativos de computación paralela (10% en la nota final)
Cada alumno o grupo de dos alumnos realizará una presentación el día 7 de noviembre (se puede hablar con el profesor
para cambiar el día) de aproximadamente 15 minutos, sobre algún tema de programación paralela no incluido en el temario
de la asignatura. Habrá que proponer el tema y el grupo de trabajo al profesor por correo, para que dé su aprobación.
Algunos posibles temas (los alumnos pueden proponer otros): OpenCL, Green computing, c omputación cuántica,
computación biológica, HMPI, Vtune, Vampir, threads en Valgrind, paralelismo en Mathematica, paralelismo en
dispositivos móviles, entornos paralelos en eclipse, Matlab paralelo, paralelismo en .Net, mpC, Linda, MPI I-O,
parallel Java, TBB, SSE, BSP, Clik, UPC, CUDA, PVM, Co-array fortran.
Práctica básica de OpenMP y MPI (10% y 10% en la nota final)
La práctica es individual. Cada alumno tendrá que resolver con OpenMP, MPI y MPI+OpenMP el problema D del
concurso de programación paralela de 2011 (http://cpp.fpcmur.es/2011/results.php).
Se trata de la multiplicación de cuatro matrices. En la tabla de records del concurso se pueden ver varias implementaciones.
El alumno tendrá que entender las implementaciones y hacer sus propias versiones OpenMP, MPI y MPI+OpenMP. El
trabajo no consiste sólo en entender las implementaciones disponibles y probar algunas de ellas, sino que el alumno tendrá
que realizar implementaciones distintas a las disponibles, intentando mejorarlas aunque no lo consiga.
En esta práctica básica sólo hay que hacer las versiones paralelas para resolver el problema, y se revisarán con el profesor,
pero no hay que entregar documentación. Se valorará: el haber entendido las implementaciones disponibles y las mejoras
que cada una incluye, el hacer implementaciones originales justificando cómo se pretende mejorar el tiempo de ejecución,
y si se llega a mejorar el record actual.
Es condición indispensable para aprobar la asignatura el hacer implementaciones correctas (en el sentido de que reduzcan
el tiempo de ejecución del correspondiente programa secuencial cuanto sea posible) de programas paralelos tanto en
OpenMP como en MPI, por lo que habiendo hecho esta práctica de manera correcta ese requisito mínimo se habría
alcanzado.
Las sesiones de prácticas de OpenMP, MPI y MPI+OpenMP serán los días 4, 11 y 18 de octubre, en el laboratorio 2.7 de
15:30 a 17:10. Tras estas sesiones los alumnos trabajarán en la práctica y cuando la tengan terminada quedarán con el
profesor para su revisión. El plazo de revisión de la práctica es el 30 de noviembre.
Trabajo individual sobre esquemas algorítmicos paralelos y Práctica de desarrollo y evaluación de programas
paralelos (10% y 40% en la nota final)
El trabajo es individual. Cada alumno trabajará con dos problemas, uno de ellos (le llamamos P1) de los Concursos de
Programación Paralela de 2011 (problemas A, B, C, D, E), de la prueba de MPI+OpenMP de 2012 (problemas A, B, C) y
de la prueba de OpenMP+CUDA de 2012 (problema A). El otro problema (le llamamos P2) será el D o el E del concurso
de MPI+OpenMP de 2012.
Para decidir los problemas con los que trabaja cada alumno se usará el número de su cuenta en Saturno. Las cuentas son
appXX y se usará XX.
Para obtener el problema P1 asignamos los siguientes números a los posibles problemas:
problema
número
2011 A
1
2011 B
2
2011 C
3
2011 D
4
2011 E
5
2012 MPI+OpenMP A
6
2012 MPI+OpenMP B
7
2012 MPI+OpenMP C
8
2012 OpenMP+CUDA A 9
Y P1=XX mod 9+1. Por ejemplo, al alumno con cuenta app17 le corresponde P1=17 mod 9+1=9, el problema A de la
prueba OpenMP+CUDA de 2012.
Para obtener el problema P2 asignamos los siguientes números a los posibles problemas:
problema
número
2012 MPI+OpenMP D
1
2012 MPI+OpenMP E
2
Y P2=XX mod 2+1. Por ejemplo, al alumno con cuenta app17 le corresponde P2=17 mod 2+1=2, el problema E de la
prueba MPI+OpenMP de 2012.
Cada alumno preparará una presentación (un valor de 10% en la nota final de la asignatura) para el 12-19 de diciembre, de
un máximo de 10 minutos. Se presentará, para los problemas asignados: una explicación de las ideas sobre su
paralelización, incidiendo en el estudio de las prestaciones (tiempo, speed-up, eficiencia, isoeficiencia...) y en los esquemas
algorítmicos paralelos de los estudiados en clase que se pueden utilizar en la resolución paralela de los problemas. La
discusión en estas presentaciones servirán para orientar a los alumnos sobre la forma en que resolver los problemas, por lo
que no se espera que el alumno realice una presentación definitiva del trabajo que pretende realizar.
La entrega de la práctica (tiene un valor del 40% de la nota final de la asignatura) será hasta el 20 de enero. La semana
siguiente a la entrega se realizará una revisión con el profesor. El lugar y hora de la revisión se fijará a la entrega de la
práctica. Se recomienda realizar consultas previas al profesor antes de realizar la entrega definitiva. Para sucesivas
convocatorias hasta septiembre 2012 se hará la misma práctica.
Los apartados y puntuaciones de la práctica son:
1) Implementación OpenMP eficiente para resolver P2. Hasta 1 punto.
2) Implementación MPI eficiente para resolver P2. Hasta 1 punto.
3) Implementación MPI+OpenMP eficiente para resolver P2. Hasta 1 punto.
4) Análisis teórico de los algoritmos implementados para resolver P2, con estimación del tiempo de ejecución, speed-up,
eficiencia, escalabilidad (con función de isoeficiencia), esquemas algorítmicos utilizados. Hasta 1 punto.
5) Análisis experimental de los programas para resolver P2, con estudio del tiempo de ejecución, speed-up, eficiencia,
escalabilidad. Hasta 1 punto.
6) Contraste de los resultados teóricos y experimentales para P2, con justificación de las discrepancias y conclusiones.
Hasta 1 punto.
7) Implementación OpenMP eficiente para resolver P1. Hasta 1 punto.
8) Implementación MPI eficiente para resolver P1. Hasta 1 punto.
9) Implementación MPI+OpenMP eficiente para resolver P1. Hasta 1 punto.
10) Estudio teórico y experimental de las tres implementaciones de P1. Hasta 1 punto.
Se entregará una documentación que contenga claramente diferenciado (para facilitar su evaluación) cada uno de los
apartados anteriores. Los apartados 1) a 3) y 7) a 9) contendrán los algoritmos en pseudocódigo y su explicación, y en los
apartados del 7) al 9) habrá que indicar las modificaciones y mejoras introducidas con respecto a las soluciones que se
encuentran en la tabla de records.
Con las puntuaciones anteriores se puede llegar a un 10, pero el alumno tiene la opción de subir nota (sin superar el 10 y
siempre que con la puntuación de los apartados del 9) al 10) tenga al menos un 5) por:
-cada implementación suficientemente buena (a criterio del profesor) de cualquiera de los problemas de los distintos
concursos. Por ejemplo, una implementación suficientemente buena puede ser una con la que se mejore el record del
problema realizando un uso eficiente de OpenMP y/o MPI. Por cada uno de los problemas para los que un alumno realiza
alguna de estas implementaciones "suficientemente buenas" se puede obtener un máximo de una puntuación adicional de
0.5 puntos.
-cada implementación CUDA eficiente (a criterio del profesor) de alguno de los problemas de los concursos. Por cada
problema una puntuación adicional máxima de 1 punto.
Descargar