26
Planificaci ´ on y Bibliograf´ ıa Sistemas paralelos Sistemas multicore Posibles trabajos Nociones b ´ asicas de computaci ´ on paralela Javier Cuenca 1 , Domingo Gim ´ enez 2 1 Departamento de Ingenier´ ıa y Tecnolog´ ıa de Computadores Universidad de Murcia 2 Departamento de Inform ´ atica y Sistemas Universidad de Murcia [email protected], http://dis.um.es/˜domingo Tecnolog´ ıas para la Investigaci´ on, curso 2010-11

Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 2: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 3: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 4: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 5: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 6: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 7: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 8: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 9: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 10: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 11: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 12: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 13: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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...

Page 14: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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.

.

.

Page 15: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos

Lista de maquinas mas potentes

TOP500 (http://www.top500.org)

Page 16: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos

Arquitectura multicore

Mas ejemplos en hwloc (http://www.open-mpi.org/projects/hwloc/)

Page 17: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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()

Page 18: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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()

Page 19: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos

Aceleracion de la computacion

Page 20: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

Planificacion y Bibliografıa Sistemas paralelos Sistemas multicore Posibles trabajos

Aceleracion de la computacion

Page 21: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 22: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 23: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 24: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 25: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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

Page 26: Nociones basicas de computaci´ on paralela´dis.um.es/~domingo/apuntes/TecnologiasInvestigacion/1011/...Nociones basicas de computaci´ on paralela´ Javier Cuenca1, Domingo Gimenez´

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