procesamiento paralelo - algoritmos frecuentes y ciencia ... lavisióndeutnbhi id capa ejemplo 1...
TRANSCRIPT
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
Motivaciones
¿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.
Gráfico Computación Científica [Jud14]
Una imagen vale más que 1000 palabras
Imagen cortesía dehttps://computing.llnl.gov/tutorials/parallel_comp/
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).
Proceso de la computación científica [Jud14]
Duendes y computadoras
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
Duende 1: Dense linear algebra [FLSZ12, dwa16]
• Algebra lineal: LAPACK,ATLAS.
• Clustering algorithms /Data-mining: K-means
Duende 2: Sparse linear algebra
• Análisis elementos finitos• Ecuaciones diferencialesparciales
Duende 3: Spectral methods
• Dinámica de fluidos• Mecánica cuántica• Predicción del clima
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
Duende 5: Structured grids
• Procesamiento de imágenes:filtrado gaussiano
• Física: ecuaciones del calor
Duende 6: Unstructured grids
• Dinámica de fluidoscomputacional (CFD)
• Propagación de creencias
Duende 7: Monte Carlo - Map-Reduce
• Monte-Carlo• Búsqueda distribuida
Duende 8: Combinational Logic
• Checksums, CRCs• Criptografía• Hashing
-
Duende 9: Graph traversal
• Búsqueda: depth-first search,breadth-first search
• Ordenamiento: Quick-sort
Duende 10: Dynamic Programming
• Grafos: Floyd’s All Pairs,shortest path
Duende 11: Backtrack and Branch
• Juegos: N-queens,crosswords, Sudoku
Duende 12: Probabilistic Graphical Models
• Bayesian networks• HMM (Hidden MarkovModels)
• Redes neuronales
Duende 13: Finite State Machine
• Codificación y compresión devideo
• Minería de datos
La popularidad de los duendes por áreas [ABC+06]
Modelado de sistema de cómputo
La visión de Berkeley
La visión de Intel
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
Patrones de diseño
Patrones de diseño
Patrones de diseño en paralelo
Temas de investigación en UTN BHI
Ejemplo 1: sumarización de video [ID13]
Dado un video cualquiera, encontrar los cuadros clave querepresenten los momentos más relevantes.
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.
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.
Grupo investigación
Grupo investigación
• Hay un grupo de investigación en formación• Se esperan novedades• Siempre hay lugar para los interesados en participar
¡Muchas gracias!
Referencias y Créditos
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.
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.
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.