Sunteți pe pagina 1din 5

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA

Sistemas distribuidos y paralelos


Tarea # 3: Reporte de Grafos

Nombre: Cesar Leonardo González Torres

Matrícula: 1724056

Carrera: ITS

Plan: 401

Salón: 3103

Grupo: 002

Hora: N4

Día: Martes

Docente: Laura Patricia Del Bosque Vega

Semestre Enero – Junio 2020

San Nicolás de Los Garza, Nuevo León


Introducción

El gráfico de dependencia se define formalmente. (DG) Un gráfico de dependencia


es un gráfico DG = (V, E) que representa un programa P de acuerdo con el
modelo gráfico los nodos en V representan las tareas de P y los bordes en E las
relaciones de dependencia entre las tareas. Un borde eij ∈ E del nodo ni a nj, ni, nj
∈ V, representa la dependencia del nodo nj del nodo ni.

Un gráfico de dependencia DG refleja la estructura de dependencia de un


programa P, que impone un orden parcial de los nodos (es decir, las tareas) en
una ejecución. Cada borde eij ∈ DG restringe la precedencia de ni sobre nj en el
orden de ejecución de los nodos. Gráficamente, uno puede imaginar que los
nodos tienen que ejecutarse siguiendo los bordes: La ejecución de un programa
progresa con la dirección del borde, nunca en contra. Nota que la rigidez del nodo
refleja con precisión la naturaleza de la dependencia: un nodo solo puede
comenzar si se cumplen todas sus relaciones de dependencia entrantes.
Desarrollo

De acuerdo con el modelo gráfico de la Definición 3.7, la comunicación de un


programa está representada por los bordes de un gráfico. Un nivel adicional de
abstracción es introducido por la DG, ya que solo se consideran las relaciones de
dependencia causadas por la comunicación.

De esto queda claro que la dependencia reflejada por una DG es la dependencia


de datos de un programa. Como se discutió en la Sección 2.5.1, hay tres tipos de
dependencia de datos: dependencia de flujo, antidependencia y dependencia de
salida. Todos estos tipos pueden ser representados y distinguido por la DG,
aunque a menudo el mero hecho de que una dependencia existe es relevante.

Para distinguir en una representación pictórica, el borde de una antidependencia a


veces se dibuja como una flecha con una línea que cruza y el borde de una
dependencia de salida como una flecha con un círculo a través de ella. Un borde
de dependencia del flujo se denota con una flecha simple. La figura 3.8 muestra
una DG que utiliza este tipo de notación para el programa del Ejemplo 2: la tarea 4
es antidependiente en la tarea 3 y también salida dependiente de la tarea 2. Todas
las demás relaciones de dependencia son flujo, o dependencias reales.

Gráfico de dependencia de iteración

Un área de utilización típica para gráficos de dependencia es en compiladores. La


DG da un compilador una forma de capturar las restricciones de precedencia que
impiden que se vuelva a ordenar operaciones en el programa. Los compiladores
de paralelismo generalmente se centran en la paralelización de bucles, ya que
comúnmente acomodan la mayor parte de la computación carga. Por lo tanto, una
especialización lógica de la DG es el gráfico de dependencia de iteración,
reflejando relaciones de dependencia en bucles.

El vector de distancia de dependencia corresponde al vector espacial dibujado en


la ilustración gráfica, mediante el cual la dimensión vertical es por la distinción
entre las tareas. Las flechas cortas que van de abajo hacia arriba reflejan el la
dependencia uniforme y las flechas que van de arriba hacia abajo reflejan la
dependencia no uniforme entre instancias de las tareas S y T. Debido a la
dependencia no uniforme entre instancias de tareas S y T, el gráfico es irregular.

Una más descomposición precisa del cuerpo del bucle en una tarea para cada
declaración, como se hace con la iteración DG en la Figura 3.9 agregaría una
dimensión más al gráfico. Depende en el contexto en el que se genera el gráfico si
esto es necesario y / o deseable. Tenga en cuenta que si todo el cuerpo del bucle
se modela como una tarea, el gráfico solo puede reflejar dependencia de
interiteración.
Conclusiones

Los grafos como dependencias son muy importantes, ya que estas están
ordenadas de manera organizable, por lo tanto, podemos decir que es importante
aplicar este tipo de dependencias en algún problema en particular, donde se
requiera llevar nodos de cada tarea a realizar y así resolver cada tarea. Una de las
aplicaciones sumamente importantes de un grafo como dependencia, es que
sirven como compiladores, dando una forma de capturar las restricciones de una
precedencia el cual impide que se vuelva a ordenar las operaciones en un
programa.

S-ar putea să vă placă și