´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ ´ paralela Nociones basicas de computacion 2 ´ Javier Cuenca1 , Domingo Gimenez 1
Departamento de Ingenier´ıa y Tecnolog´ıa de Computadores Universidad de Murcia 2 ´ Departamento de Informatica y Sistemas Universidad de Murcia
[email protected], http://dis.um.es/˜domingo
´ curso 2010-11 Tecnolog´ıas para la Investigacion,
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Contenido
1
´ y Bibliograf´ıa Planificacion
2
Sistemas paralelos
3
Sistemas multicore
4
Posibles trabajos
Sistemas multicore
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ Planificacion 5 de noviembre ´ en multicore. 17:00-18:00: Nociones generales y programacion ´ Domingo Gimenez ´ en multicore con OpenMP. Javier 18:00-19:00: Programacion Cuenca ´ ´ con OpenMP (opcional). 19:00-21:00: Practicas de programacion Javier Cuenca
19 de noviembre 17:00-18:00: El supercomputador Ben-Arab´ı. Personal del Centro ´ de la Fundacion ´ Parque Cient´ıfico de Murcia de Supercomputacion ´ en clusters con MPI. Javier Cuenca 18:00-19:00: Programacion ´ ´ con MPI (opcional). Javier 19:00-21:00: Practicas de programacion Cuenca
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ Planificacion 5 de noviembre ´ en multicore. 17:00-18:00: Nociones generales y programacion ´ Domingo Gimenez ´ en multicore con OpenMP. Javier 18:00-19:00: Programacion Cuenca ´ ´ con OpenMP (opcional). 19:00-21:00: Practicas de programacion Javier Cuenca
19 de noviembre 17:00-18:00: El supercomputador Ben-Arab´ı. Personal del Centro ´ de la Fundacion ´ Parque Cient´ıfico de Murcia de Supercomputacion ´ en clusters con MPI. Javier Cuenca 18:00-19:00: Programacion ´ ´ con MPI (opcional). Javier 19:00-21:00: Practicas de programacion Cuenca
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Bibliograf´ıa ´ Francisco Almeida, Domingo Gimenez, Jose´ Miguel ´ a la Mantas, Antonio M. Vidal: Introduccion ´ paralela, Paraninfo Cengage programacion Learning, 2008 ´ y computadores paralelos Cap´ıtulos 1 y 2: introduccion ´ con OpenMP y MPI Cap´ıtulo 3: programacion ´ ´ Codigos de los cap´ıtulos 3, 4 y 6 en la pagina de material suplementario de la editorial (www.paraninfo.es)
´ y otros (mejores) en ingles: Introduction to Parallel Computing. Grama, Gupta, Karypis, Kumar. Addison-Wesley. 2003 Parallel Programming in C with MPI and OpenMP. Quinn. McGrawHill. 2003
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Bibliograf´ıa ´ Francisco Almeida, Domingo Gimenez, Jose´ Miguel ´ a la Mantas, Antonio M. Vidal: Introduccion ´ paralela, Paraninfo Cengage programacion Learning, 2008 ´ y computadores paralelos Cap´ıtulos 1 y 2: introduccion ´ con OpenMP y MPI Cap´ıtulo 3: programacion ´ ´ Codigos de los cap´ıtulos 3, 4 y 6 en la pagina de material suplementario de la editorial (www.paraninfo.es)
´ y otros (mejores) en ingles: Introduction to Parallel Computing. Grama, Gupta, Karypis, Kumar. Addison-Wesley. 2003 Parallel Programming in C with MPI and OpenMP. Quinn. McGrawHill. 2003
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
y material adicional ´ Paralela, quinto Curso de Algoritmos y Programacion ´ Informatica, dis.um.es/˜domingo/app.html Incluye esquemas algor´ıtmicos paralelos ´ Paralela y Computacion ´ de Altas Programacion ´ ´ Prestaciones, master de Informatica, dis.um.es/˜domingo/cap.html Incluye algoritmos matriciales paralelos y librer´ıas matriciales ´ Computacion ´ Cient´ıfica en Clusters, Curso de promocion 2010, www.ditec.um.es/˜javiercm/curso ccc/index.html ´ de clusters y programacion ´ en Incluye administracion GPU ´ de Programacion ´ en el Curso de promocion Supercomputador Ben-Arab´ı, marzo 2011, https://casiopea.um.es
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
y material adicional ´ Paralela, quinto Curso de Algoritmos y Programacion ´ Informatica, dis.um.es/˜domingo/app.html Incluye esquemas algor´ıtmicos paralelos ´ Paralela y Computacion ´ de Altas Programacion ´ ´ Prestaciones, master de Informatica, dis.um.es/˜domingo/cap.html Incluye algoritmos matriciales paralelos y librer´ıas matriciales ´ Computacion ´ Cient´ıfica en Clusters, Curso de promocion 2010, www.ditec.um.es/˜javiercm/curso ccc/index.html ´ de clusters y programacion ´ en Incluye administracion GPU ´ de Programacion ´ en el Curso de promocion Supercomputador Ben-Arab´ı, marzo 2011, https://casiopea.um.es
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
y material adicional ´ Paralela, quinto Curso de Algoritmos y Programacion ´ Informatica, dis.um.es/˜domingo/app.html Incluye esquemas algor´ıtmicos paralelos ´ Paralela y Computacion ´ de Altas Programacion ´ ´ Prestaciones, master de Informatica, dis.um.es/˜domingo/cap.html Incluye algoritmos matriciales paralelos y librer´ıas matriciales ´ Computacion ´ Cient´ıfica en Clusters, Curso de promocion 2010, www.ditec.um.es/˜javiercm/curso ccc/index.html ´ de clusters y programacion ´ en Incluye administracion GPU ´ de Programacion ´ en el Curso de promocion Supercomputador Ben-Arab´ı, marzo 2011, https://casiopea.um.es
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
´ paralela Programacion Uso de varios procesadores trabajando juntos ´ para resolver una tarea comun ´ Cada procesador trabaja en una porcion del problema Los procesos pueden intercambiar datos, a ´ de traves La memoria: modelo de memoria compartida, OpenMP, ´ esta sesion ´ modelo de paso de mensajes, Una red de interconexion: ´ MPI, proximo viernes
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ paralela? ¿Por que´ programacion L´ımites de memoria en los procesadores secuenciales ´ de la computacion ´ Aceleracion ´ de componentes Dificultad de integracion
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
´ paralela Aplicaciones de la programacion Por necesidades de memoria: NUMA, clusters y supercomputadores Problemas con grandes necesidades de ´ computacion ´ Alto coste: 2n , n!,... Metodos aproximados, NUMA, clusters, supercomputadores, grid ´ n3 y n ≥ 10000. NUMA, clusters, Gran dimension: supercomputadores Tiempo real: coste polinomial. Multicore, GPU, procesadores dedicados
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
´ paralela Aplicaciones de la programacion ´ ´ Simulaciones: climaticas, de hidrodinamica, de ´ ´ moleculas, de contaminacion... Problemas combinatorios, metaheur´ısticas: ˜ de filtros, localizacion ´ de centros de diseno ´ de trabajos, analisis ´ servicio, planificacion ADN... ´ y tratamiento de datos: control de Codificacion ´ TDT, sistemas recursos, decodificacion ´ moviles y MIMO...
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Sistemas paralelos
Sistema ´ portatil PC servidor NUMA (Ben) cluster supercomputador (Arab´ı) GPU ´ heterogeneo ´ jerarquico
.. .
Cores 2-4 2-8 4-24 16-256 2-32 × 2-8 32-1024 × 8-32 112-512 cluster+NUMA cluster+NUMA+GPU
´ Programacion OpenMP OpenMP OpenMP OpenMP MPI+OpenMP MPI+OpenMP CUDA MPI+OpenMP MPI+OpenMP+CUDA
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
´ ´ potentes Lista de maquinas mas TOP500 (http://www.top500.org)
Sistemas multicore
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Arquitectura multicore
´ ejemplos en hwloc (http://www.open-mpi.org/projects/hwloc/) Mas
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ Compilacion ´ 4 gnu C, a partir de la version gcc programa.c -fopenmp
Intel C icc programa.c -openmp
´ Ejecucion ´ Seleccionar el numero de threads ´ establecer variable de entorno Antes de la ejecucion: OMP NUM THREADS ´ con funcion ´ openmp Durante la ejecucion: omp set numthreads()
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
´ Compilacion ´ 4 gnu C, a partir de la version gcc programa.c -fopenmp
Intel C icc programa.c -openmp
´ Ejecucion ´ Seleccionar el numero de threads ´ establecer variable de entorno Antes de la ejecucion: OMP NUM THREADS ´ con funcion ´ openmp Durante la ejecucion: omp set numthreads()
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
´ de la computacion ´ Aceleracion
Sistemas multicore
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
´ de la computacion ´ Aceleracion
Sistemas multicore
Posibles trabajos
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Ca´ıda de prestaciones Coste bajo: suma n, matriz-vector n2 ´ de los threads: creacion, ´ asignacion ´ Gestion ´ de recursos, sincronizacion... Conflicto en accesos a memoria ˜ o el orden Aumentan al aumentar el tamano ´ paralela para problemas de Usar programacion alto coste ´ de matrices tiene coste n3 y la multiplicacion se logran mejores prestaciones
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Ca´ıda de prestaciones Coste bajo: suma n, matriz-vector n2 ´ de los threads: creacion, ´ asignacion ´ Gestion ´ de recursos, sincronizacion... Conflicto en accesos a memoria ˜ o el orden Aumentan al aumentar el tamano ´ paralela para problemas de Usar programacion alto coste ´ de matrices tiene coste n3 y la multiplicacion se logran mejores prestaciones
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Librer´ıas Optimizadas para distintos tipos de sistemas ´ por ejemplo, de algebra lineal BLAS, LAPACK, multithreaded (memoria compartida) ScaLAPACK para paso de mensajes CCBLAS para GPU
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Trabajos de aplicaciones ´ de entornos de programacion ´ Utilizacion ´ trabajo de interes ´ para el paralela en algun alumno ´ de utilizacion ´ del paralelismo estudio de interes ´ analisis del tipo de paralelismo ´ de zonas de codigo ´ identificacion susceptibles de beneficiarse del uso de paralelismo ´ y estudio experimental programacion
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
Trabajos de herramientas ´ ´ paralela Analisis de alguna herramienta de computacion HWLOC, Portable Hardware Locality, http://www.open-mpi.org/projects/hwloc/ CUDA, http://www.nvidia.es/object/cuda home new es.html TBB, Threading Building Blocks, http://www.threadingbuildingblocks.org/ PLASMA, Parallel Linear Algebra for Scalable Multi-core Architectures, http://icl.cs.utk.edu/plasma/ ForestGOMP, An OpenMP platform for hierarchical architectures, http://runtime.bordeaux.inria.fr/forestgomp/ UPC, Unified Parallel C, http://upc.gwu.edu/ OpenCL, The open standard for parallel programming of heterogeneous systems, http://www.khronos.org/opencl/ otros a proponer por el alumno
Habra´ que analizar la herramienta e intentar instalarla y usarla en ´ ejemplo sencillo algun
´ y Bibliograf´ıa Planificacion
Sistemas paralelos
Sistemas multicore
Posibles trabajos
´ de los trabajos Gestion ´ de aplicacion ´ con la que trabajar o Seleccion propuesta de herramienta por el alumno (correo a
[email protected]) se asignar´ıa profesor y sistema computacional con que trabajar resumen de trabajo realizado a entregar antes ´ del trabajo con el del 15 de febrero, y revision alumno