02 Grafos Computacion
02 Grafos Computacion
Paralela
Clase 2: Grafos de
Computación
Hugo R. Cordero
Temas
• Paralelismo funcional y de datos
• Grafo de Computación
• Paralelismo con Fork-Join
• Librerías para programación en
Java
Motivación
¿Son los grafos una forma para
representar las tareas que se
ejecutan?
¿Podemos aprovechar la
representación para medir el tiempo
de ejecución?
Terminología
• Nodo: una unidad discreta de un sistema informático que
normalmente ejecuta su propia instancia del sistema operativo
• Procesador: chip que comparte una memoria común y un disco
local
• Núcleo (core): una unidad de procesamiento en un chip de
computadora capaz de soportar un hilo de ejecución
• Coprocesador: un procesador liviano
• Cluster: una colección de nodos que funcionan como un solo
recurso
WORK (G) = 26
CPL (G) = 11
Fuente: http://ferestrepoca.github.io/paradigmas-de-programacion/paralela/paralela_teoria/index.html
Planificación de un grafo de computación
• La planificación de un grafo
de computación es dado sobre
un número fijo P de
procesadores.
• Para el ejemplo, cada nodo en
su etiqueta tiene su tiempo de
ejecución TIME(N)
• La planificación S, permite
calcular el tiempo de
finalización:
TP s
• Cada punto “fork” bifurca el flujo de control del cálculo en dos hilos lógicos. Cuando el
control alcanza el punto de ramificación, las ramas comienzan a ejecutarse. Cuando se
completan todas las ramas, el control “join” (une) los flujos de las ramas.
• JAVA dispone de la clase Thread, que permite lanzar un nuevo hilo y que
se ejecute dentro de la JVM
Fuente: https://www.logicbig.com/tutorials/core-java-tutorial/java-multi-threading/fork-and-
join.html
Librerías para Hilos en Java (4)
• Para estructuras con async-finish , Rice University dispone de HJlib (Habanero Java
Library):
• https://wiki.rice.edu/confluence/display/PARPROG/HJlib+%28Thread-
blocking+Runtime%29+Download+and+Set+Up
• Umut Acar, Parallel Computing: Theory and Practice, Carnegie Mellon University
• Links:
• http://ferestrepoca.github.io/paradigmas-de-
programacion/paralela/paralela_teoria/index.html
• http://www.cs.cmu.edu/afs/cs/academic/class/15210-f15/www/tapp.html
• https://shamsimam.github.io/papers/2014-pppj-hjlib-slides.pdf