procesamiento paralelo - algoritmos frecuentes y ciencia ... lavisióndeutnbhi id capa ejemplo 1...

42
Procesamiento Paralelo Algoritmos frecuentes y ciencia computacional Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina [email protected] http://www.frbb.utn.edu.ar/hpc/ 27 de junio de 2016

Upload: others

Post on 14-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Procesamiento ParaleloAlgoritmos frecuentes y ciencia computacional

Javier Iparraguirre

Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca11 de Abril 461, Bahía Blanca, Argentina

[email protected]://www.frbb.utn.edu.ar/hpc/

27 de junio de 2016

Page 2: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Motivaciones

Page 3: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

¿Que es la computación científica? (ciencia computacional)

• Usar técnicas computacionales para entender y resolverproblemas complejos.

• Es naturalmente multidisciplinario.• No es lo mismo que las ciencias de la computación.• Fusiona al menos tres áreas:

• Ingeniería y Ciencia.• Matemática.• Computación.

Page 4: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Gráfico Computación Científica [Jud14]

Page 5: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Una imagen vale más que 1000 palabras

Imagen cortesía dehttps://computing.llnl.gov/tutorials/parallel_comp/

Page 6: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Cuarto paradigma de la ciencia [HTT+09]

1 Inicialmente, la ciencia era experimental.2 Luego se teorizó a partir de modelos (Newton).3 Con la aparición de las computadoras se puede simular el

fenómeno a estudiar (mediados sigo XX).4 A partir de la acumulación de datos, se puede adquirir

conocimiento usando técnicas computacionales (principios desiglo XXI).

Page 7: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Proceso de la computación científica [Jud14]

Page 8: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duendes y computadoras

Page 9: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duendes y computadoras

• Dado un problema de computación científica, es posibledescomponerlo en duendes.

• En 2004, Phill Colella propuso 7 duendes.• En 2006, un grupo en Berkeley lo extendió a 13.• El informe de Berkeley esta disponible en:http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html

Page 10: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 1: Dense linear algebra [FLSZ12, dwa16]

• Algebra lineal: LAPACK,ATLAS.

• Clustering algorithms /Data-mining: K-means

Page 11: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 2: Sparse linear algebra

• Análisis elementos finitos• Ecuaciones diferencialesparciales

Page 12: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 3: Spectral methods

• Dinámica de fluidos• Mecánica cuántica• Predicción del clima

Page 13: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 4: N-body methods

• Química computacional:plegado de proteínas,modelado de moléculas

• Astronomía: formación degalaxias

• Física: física del plasma

Page 14: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 5: Structured grids

• Procesamiento de imágenes:filtrado gaussiano

• Física: ecuaciones del calor

Page 15: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 6: Unstructured grids

• Dinámica de fluidoscomputacional (CFD)

• Propagación de creencias

Page 16: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 7: Monte Carlo - Map-Reduce

• Monte-Carlo• Búsqueda distribuida

Page 17: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 8: Combinational Logic

• Checksums, CRCs• Criptografía• Hashing

-

Page 18: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 9: Graph traversal

• Búsqueda: depth-first search,breadth-first search

• Ordenamiento: Quick-sort

Page 19: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 10: Dynamic Programming

• Grafos: Floyd’s All Pairs,shortest path

Page 20: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 11: Backtrack and Branch

• Juegos: N-queens,crosswords, Sudoku

Page 21: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 12: Probabilistic Graphical Models

• Bayesian networks• HMM (Hidden MarkovModels)

• Redes neuronales

Page 22: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Duende 13: Finite State Machine

• Codificación y compresión devideo

• Minería de datos

Page 23: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

La popularidad de los duendes por áreas [ABC+06]

Page 24: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Modelado de sistema de cómputo

Page 25: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

La visión de Berkeley

Page 26: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

La visión de Intel

Page 27: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

La visión de UTN BHI

ID Capa Ejemplo

1 Interfaces (HCI) PC, tablet, glass, CAVE

2 Aplicaciones Propósito

3 Lenguajes Matlab, Python, C, C++

4 APIs verticales OpenCV, OpenFOAM

5 APIs horizontales OpenCL, CUDA, MPI

6 Infraestructura Software Sistemas operativos, firmware

7 Infraestructura Hardware CPUs, GPUs, FPGAs

Page 28: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Patrones de diseño

Page 29: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Patrones de diseño

Page 30: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Patrones de diseño en paralelo

Page 31: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Temas de investigación en UTN BHI

Page 32: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Ejemplo 1: sumarización de video [ID13]

Dado un video cualquiera, encontrar los cuadros clave querepresenten los momentos más relevantes.

Page 33: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Ejemplo 2: Particle swarm optimization (PSO)

• Algoritmo de optimización basado en enjambre de partículas.• Hay varias implementations disponibles.• No se ha encontrado una implementación en corra en cualquierplaca gráfica (GPU) y además soporte más de un GPU a lavez.

Page 34: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Ejemplo 3: Cuantificación incertidumbre de simulacionesusando Monte-Carlo

• Simulación de la dinámica de sistemasmagneto-electro-elásticos.

• Se usa Monte-Carlo para cuantificar incertidumbre en losparámetros.

• Código Matlab disponible.• Caminos a explorar:

1 Buscar los duendes usados en el código.2 Buscar librerías científicas que implementen los duendes.3 Pasar de Matlab a SciPy.4 Usar C++ para acelerar cuellos de botella.

Page 35: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Grupo investigación

Page 36: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Grupo investigación

• Hay un grupo de investigación en formación• Se esperan novedades• Siempre hay lugar para los interesados en participar

Page 37: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

¡Muchas gracias!

¿[email protected]

Page 38: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Referencias y Créditos

Page 39: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Créditos

• Los iconos están basados a Google Designwww.design.google.com

Page 40: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Referencias I

[ABC+06] Krste Asanovic, Ras Bodik, Bryan ChristopherCatanzaro, Joseph James Gebis, Parry Husbands, KurtKeutzer, David A Patterson, William Lester Plishker,John Shalf, Samuel Webb Williams, et al.The landscape of parallel computing research: A viewfrom berkeley.Technical report, Technical ReportUCB/EECS-2006-183, EECS Department, University ofCalifornia, Berkeley, 2006.

[dwa16] The computational dwarfs of opencl.https://streamcomputing.eu/blog/2013-06-03/the-application-areas-opencl-can-be-used/,2016.Accessed: 2016-03-09.

Page 41: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Referencias II

[FLSZ12] Wu-chun Feng, Heshan Lin, Thomas Scogland, and JingZhang.Opencl and the 13 dwarfs: a work in progress.In Proceedings of the 3rd ACM/SPEC InternationalConference on Performance Engineering, pages291–294. ACM, 2012.

[HTT+09] Anthony JG Hey, Stewart Tansley, Kristin Michele Tolle,et al.The fourth paradigm: data-intensive scientific discovery,volume 1.Microsoft research Redmond, WA, 2009.

Page 42: Procesamiento Paralelo - Algoritmos frecuentes y ciencia ... LavisióndeUTNBHI ID Capa Ejemplo 1 Interfaces(HCI) PC,tablet,glass,CAVE 2 Aplicaciones Propósito 3 Lenguajes Matlab,Python,C,C++

Referencias III

[ID13] Javier Iparraguirre and Claudio A. Delrieux.Speeded-up video summarization based on localfeatures.In Multimedia (ISM), 2013 IEEE InternationalSymposium on, pages 370–373. IEEE, 2013.

[Jud14] Hill Judith.Supercomputing 102: The toolbox of a successfulcomputational scientist.HPC Workshop, 2014.