nociones basicas de computaci´ on...
TRANSCRIPT
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Nociones basicas de computacion paralela
Javier Cuenca1, Domingo Gimenez2
1Departamento de Ingenierıa y Tecnologıa de ComputadoresUniversidad de Murcia
2Departamento de Informatica y SistemasUniversidad de Murcia
[email protected], http://dis.um.es/˜domingo
Tecnologıas para la Investigacion, curso 2010-11
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Contenido
1 Planificacion y Bibliografıa
2 Sistemas paralelos
3 Sistemas multicore
4 Posibles trabajos
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Planificacion
5 de noviembre17:00-18:00: Nociones generales y programacion en multicore.Domingo Gimenez18:00-19:00: Programacion en multicore con OpenMP. JavierCuenca
19:00-21:00: Practicas de programacion con OpenMP (opcional).
Javier Cuenca
19 de noviembre17:00-18:00: El supercomputador Ben-Arabı. Personal del Centrode Supercomputacion de la Fundacion Parque Cientıfico de Murcia18:00-19:00: Programacion en clusters con MPI. Javier Cuenca
19:00-21:00: Practicas de programacion con MPI (opcional). Javier
Cuenca
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Planificacion
5 de noviembre17:00-18:00: Nociones generales y programacion en multicore.Domingo Gimenez18:00-19:00: Programacion en multicore con OpenMP. JavierCuenca
19:00-21:00: Practicas de programacion con OpenMP (opcional).
Javier Cuenca
19 de noviembre17:00-18:00: El supercomputador Ben-Arabı. Personal del Centrode Supercomputacion de la Fundacion Parque Cientıfico de Murcia18:00-19:00: Programacion en clusters con MPI. Javier Cuenca
19:00-21:00: Practicas de programacion con MPI (opcional). Javier
Cuenca
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Bibliografıa
Francisco Almeida, Domingo Gimenez, Jose MiguelMantas, Antonio M. Vidal: Introduccion a laprogramacion paralela, Paraninfo CengageLearning, 2008
Capıtulos 1 y 2: introduccion y computadores paralelosCapıtulo 3: programacion con OpenMP y MPICodigos de los capıtulos 3, 4 y 6 en la pagina de materialsuplementario de la editorial (www.paraninfo.es)
y otros (mejores) en ingles:
Introduction to Parallel Computing. Grama, Gupta,Karypis, Kumar. Addison-Wesley. 2003Parallel Programming in C with MPI and OpenMP. Quinn.McGrawHill. 2003
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Bibliografıa
Francisco Almeida, Domingo Gimenez, Jose MiguelMantas, Antonio M. Vidal: Introduccion a laprogramacion paralela, Paraninfo CengageLearning, 2008
Capıtulos 1 y 2: introduccion y computadores paralelosCapıtulo 3: programacion con OpenMP y MPICodigos de los capıtulos 3, 4 y 6 en la pagina de materialsuplementario de la editorial (www.paraninfo.es)
y otros (mejores) en ingles:
Introduction to Parallel Computing. Grama, Gupta,Karypis, Kumar. Addison-Wesley. 2003Parallel Programming in C with MPI and OpenMP. Quinn.McGrawHill. 2003
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
y material adicional
Curso de Algoritmos y Programacion Paralela, quintoInformatica, dis.um.es/˜domingo/app.htmlIncluye esquemas algorıtmicos paralelos
Programacion Paralela y Computacion de AltasPrestaciones, master de Informatica,dis.um.es/˜domingo/cap.htmlIncluye algoritmos matriciales paralelos y librerıasmatriciales
Curso de promocion Computacion Cientıfica en Clusters,2010, www.ditec.um.es/˜javiercm/curso ccc/index.htmlIncluye administracion de clusters y programacion enGPU
Curso de promocion de Programacion en elSupercomputador Ben-Arabı, marzo 2011,https://casiopea.um.es
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
y material adicional
Curso de Algoritmos y Programacion Paralela, quintoInformatica, dis.um.es/˜domingo/app.htmlIncluye esquemas algorıtmicos paralelos
Programacion Paralela y Computacion de AltasPrestaciones, master de Informatica,dis.um.es/˜domingo/cap.htmlIncluye algoritmos matriciales paralelos y librerıasmatriciales
Curso de promocion Computacion Cientıfica en Clusters,2010, www.ditec.um.es/˜javiercm/curso ccc/index.htmlIncluye administracion de clusters y programacion enGPU
Curso de promocion de Programacion en elSupercomputador Ben-Arabı, marzo 2011,https://casiopea.um.es
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
y material adicional
Curso de Algoritmos y Programacion Paralela, quintoInformatica, dis.um.es/˜domingo/app.htmlIncluye esquemas algorıtmicos paralelos
Programacion Paralela y Computacion de AltasPrestaciones, master de Informatica,dis.um.es/˜domingo/cap.htmlIncluye algoritmos matriciales paralelos y librerıasmatriciales
Curso de promocion Computacion Cientıfica en Clusters,2010, www.ditec.um.es/˜javiercm/curso ccc/index.htmlIncluye administracion de clusters y programacion enGPU
Curso de promocion de Programacion en elSupercomputador Ben-Arabı, marzo 2011,https://casiopea.um.es
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Programacion paralela
Uso de varios procesadores trabajando juntospara resolver una tarea comun
Cada procesador trabaja en una porciondel problema
Los procesos pueden intercambiar datos, atraves de
La memoria: modelo de memoria compartida, OpenMP,esta sesionUna red de interconexion: modelo de paso de mensajes,MPI, proximo viernes
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
¿Por que programacion paralela?
Lımites de memoria en los procesadores secuenciales
Aceleracion de la computacion
Dificultad de integracion de componentes
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Aplicaciones de la programacion paralelaPor necesidades de memoria: NUMA, clustersy supercomputadores
Problemas con grandes necesidades decomputacion
Alto coste: 2n, n!,... Metodos aproximados, NUMA, clusters,supercomputadores, gridGran dimension: n3 y n ≥ 10000. NUMA, clusters,supercomputadoresTiempo real: coste polinomial. Multicore, GPU, procesadoresdedicados
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Aplicaciones de la programacion paralelaSimulaciones: climaticas, de hidrodinamica, demoleculas, de contaminacion...
Problemas combinatorios, metaheurısticas:diseno de filtros, localizacion de centros deservicio, planificacion de trabajos, analisisADN...
Codificacion y tratamiento de datos: control derecursos, decodificacion TDT, sistemasmoviles y MIMO...
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Sistemas paralelos
Sistema Cores Programacionportatil 2-4 OpenMPPC 2-8 OpenMPservidor 4-24 OpenMPNUMA (Ben) 16-256 OpenMPcluster 2-32 × 2-8 MPI+OpenMPsupercomputador (Arabı) 32-1024 × 8-32 MPI+OpenMPGPU 112-512 CUDAheterogeneo cluster+NUMA MPI+OpenMPjerarquico cluster+NUMA+GPU MPI+OpenMP+CUDA.
.
.
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Lista de maquinas mas potentes
TOP500 (http://www.top500.org)
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Arquitectura multicore
Mas ejemplos en hwloc (http://www.open-mpi.org/projects/hwloc/)
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Compilaciongnu C, a partir de la version 4
gcc programa.c -fopenmp
Intel Cicc programa.c -openmp
EjecucionSeleccionar el numero de threads
Antes de la ejecucion: establecer variable de entornoOMP NUM THREADSDurante la ejecucion: con funcion openmpomp set numthreads()
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Compilaciongnu C, a partir de la version 4
gcc programa.c -fopenmp
Intel Cicc programa.c -openmp
EjecucionSeleccionar el numero de threads
Antes de la ejecucion: establecer variable de entornoOMP NUM THREADSDurante la ejecucion: con funcion openmpomp set numthreads()
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Aceleracion de la computacion
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Aceleracion de la computacion
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Caıda de prestaciones
Coste bajo: suma n, matriz-vector n2
Gestion de los threads: creacion, asignacionde recursos, sincronizacion...
Conflicto en accesos a memoria
Aumentan al aumentar el tamano o el orden
Usar programacion paralela para problemas dealto coste
la multiplicacion de matrices tiene coste n3 yse logran mejores prestaciones
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Caıda de prestaciones
Coste bajo: suma n, matriz-vector n2
Gestion de los threads: creacion, asignacionde recursos, sincronizacion...
Conflicto en accesos a memoria
Aumentan al aumentar el tamano o el orden
Usar programacion paralela para problemas dealto coste
la multiplicacion de matrices tiene coste n3 yse logran mejores prestaciones
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
LibrerıasOptimizadas para distintos tipos de sistemas
por ejemplo, de algebra linealBLAS, LAPACK, multithreaded (memoria compartida)ScaLAPACK para paso de mensajesCCBLAS para GPU
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Trabajos de aplicacionesUtilizacion de entornos de programacionparalela en algun trabajo de interes para elalumno
estudio de interes de utilizacion del paralelismoanalisis del tipo de paralelismoidentificacion de zonas de codigo susceptibles de beneficiarsedel uso de paralelismoprogramacion y estudio experimental
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Trabajos de herramientas
Analisis de alguna herramienta de computacion paralela
HWLOC, Portable Hardware Locality,http://www.open-mpi.org/projects/hwloc/CUDA, http://www.nvidia.es/object/cuda home new es.htmlTBB, Threading Building Blocks,http://www.threadingbuildingblocks.org/PLASMA, Parallel Linear Algebra for Scalable Multi-coreArchitectures, http://icl.cs.utk.edu/plasma/ForestGOMP, An OpenMP platform for hierarchicalarchitectures, http://runtime.bordeaux.inria.fr/forestgomp/UPC, Unified Parallel C, http://upc.gwu.edu/OpenCL, The open standard for parallel programming ofheterogeneous systems, http://www.khronos.org/opencl/otros a proponer por el alumno
Habra que analizar la herramienta e intentar instalarla y usarla enalgun ejemplo sencillo
Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos
Gestion de los trabajosSeleccion de aplicacion con la que trabajar opropuesta de herramienta por el alumno(correo a [email protected])
se asignarıa profesor y sistema computacionalcon que trabajar
resumen de trabajo realizado a entregar antesdel 15 de febrero, y revision del trabajo con elalumno