3
description
Transcript of 3
-
3.3
Recordar el debate de la dependencia en la Seccin 2.5 , donde dirige las relaciones de
dependencia son analizadas entre las tareas. Intuitivamente, se puede representar los programas
de tareas como nodos y el las relaciones de dependencia como bordes, correspondiente al grfico
modelo definido en la seccin anterior. Consideramos que el programa en el Ejemplo 1 de la
Seccin 2.5 , el cual contiene flujo las relaciones de dependencia. Representantes de cada tarea,
en este caso cada una de sus declaraciones, en un nodo y cada relacin de dependencia por un
borde de la causa de la tarea dependiente y un grfico que refleja la estructura de dependencia.
Figura 3.7 se repite el programa cdigo de ejemplo 1 y representa la correspondiente dependencia
grfico. En este grfico uno intuitivamente percibe que las tareas 2 y 3 se pueden ejecutar al
mismo tiempo. Luego, la dependencia grfica se define oficialmente.
Definicin 3.10 (Dependencia Grfico (DG) Un grafico de dependencia es un objeto grfico DG =
(V, E), que representan un programa P de acuerdo con el grfico modelo de definicin 3.7 . Los
nodos de V representan las tareas de P y los bordes de la las relaciones de dependencia entre las
tareas. Un borde eij E desde el nodo ni de nj, ni, nj V, representa la dependencia del nodo nj
en el nodo ni.
Definicin 3.11 (Programa factible) un programa P es factible si y slo si una tarea puede
encontrar que cumpla con las restricciones de precedencia de las relaciones de dependencia. Es
evidente que la viabilidad de un clculo se indica por su dependencia grfico. Lema 3.4 (DG de
Programa viable es acclicos) un programa P es factible si y slo si su dependencia grfico DG
acclicos.
Prueba . Este lema puede ser fcilmente demostrado por contradiccin con Lema 3.3 (orden
topolgico y grficos). : Supongamos que la DG es cclico. De acuerdo al lema 3.3 , sin orden
topolgico existe para los nodos de un grfico. Pero entonces, que el orden de los nodos, al menos
dos nodos no estn en orden de prioridad. Como los nodos representan las tareas de P, tambin
sin orden de prioridad existe para ellos-P no es viable. : Supongamos que P no es factible, por lo
tanto, no hay ningn pedido de las tareas se pueden encontrar que cumpla con las restricciones de
precedencia. Por lo tanto, ninguna orden topolgico de DIRECCIN GENERAL. Entonces, sin
embargo, la DG es cclico segn Lema 3.3 .
De acuerdo con el grfico modelo de definicin 3.7 , la comunicacin de un programa es
representado por los bordes de un grfico. Un nuevo nivel de abstraccin es presentado por el
director general, ya que slo el las relaciones de dependencia causada por comunicacin se
consideran. De ello se deduce claramente que la dependencia se refleja en una direccin general
los datos dependencia de un programa. Como se explica en la Seccin 2.5.1 , hay tres tipos de
datos dependencia: dependencia, antidependence y la salida dependencia. Todos estos tipos se
pueden representar y se caracteriza por la DG, aunque a menudo el mero hecho de que la
dependencia
-
La figura 3.8. El cdigo de Ejemplo 2 y el grfico de dependencia correspondiente. Una lnea a
travs de la flecha de un borde denota la antidependencia y un crculo a travs de la flecha denota
dependencia de la salida; una flecha clara significa la dependencia del flujo. existe es relevante.
Para distincin en una representacin ilustrada, el borde de una antidependencia es a veces
dibujado como una flecha con una lnea que se cruza a travs de y el borde de una dependencia de
la salida como una flecha con un crculo a travs de ello (Banerjee [15], Wolfe [204]). Un borde de
dependencia del flujo es denotado por una flecha clara. La figura 3.8 muestra un DG esto usa esta
clase de la nota para el programa de Ejemplo 2: la tarea 4 es antidependiente en tarea 3 y tambin
dependiente de la salida en tarea 2. Todas otras relaciones de dependencia son flujo, o verdadero,
dependencias.
3.3.1 Iteration Dependence Graph
Un rea de utilizacin tpica para grficos de dependencia est en compiladores. El DG da a el
compilador una manera de capturar las coacciones de precedencia que le impiden pedir de nuevo
operaciones en el programa. Los compiladores de Parallelizing por lo general se concentran en el
parallelization de lazos, ya que comnmente acomodan la parte ms grande del computacional
carga. Una especializacin lgica del DG es por lo tanto el grfico de dependencia de iteracin, el
reflejo de relaciones de dependencia en lazos. El fondo terico para la transicin de DG simple a
una dependencia de iteracin dan un grfico en el Artculo 2.5.2, donde las relaciones de
dependencia en lazos fueron analizadas. Reconsidere el lazo en el Ejemplo 5, aqu mostrado en la
Figura 3.9 (a). Una representacin grfica de las relaciones de dependencia el dan el grfico de
dependencia de iteracin en la Figura 3.9 (b).
En un bucle anidado, la iteracin DG adquiere una dimensin de cada bucle. La figura 3.10 (a) Se
muestra el doble bucle del ejemplo 7 y su repeticin. Aqu, el enfoque es diferente de la que se
muestra en la Figura 3.9 , dado que cada nodo del grfico encapsula todas las declaraciones de
una iteracin, es decir, el bucle completo ncleo es una de las tareas. UNA ms precisa
descomposicin del cuerpo del bucle en una tarea para cada una de sus declaraciones, como lo
hizo con la iterationDGin Figura 3.9 ,sera aadir una dimensin adicional de la grfica. Que
depende del contexto en el que el grfico se genera si es necesario y/o conveniente. Tenga en
cuenta que si todo el cuerpo del bucle se modela como una tarea, el grfico slo es capaz de
reflejar interiteration dependencia. Algunos en paralelo las tcnicas, por ejemplo, el software
pipelining (p. ej., Aiken y Nicolau [ 8] ), se basan en tanto intra como interiteration dependencia.
En la Seccin 2.5.2 , los vectores de distancia (1, 1) y (1, 0) se identificaron las relaciones de
dependencia en el cdigo de la figura 3.10 (a): S(i 1, j 1) depende de T(i, j), y T(1, j) depende de S(i,
j). Al igual que con el bucle de la Figura 3.9 (a), las flechas de la iteracin LA DG corresponden
directamente a la dependencia vectores de distancia; pero hay que recordar que las dos
declaraciones del kernel se fusionaron en una sola tarea, es decir, un nodo en el grfico. El
uniforme las relaciones de dependencia del bucle crear una iteracin. Para la construccin de la
iteracin dependencia grficos, es evidente que el conocimiento de los vectores de distancia de
todas las relaciones de dependencia es crucial. En otras palabras, si el vector-distancia no puede
-
ser determinado para cada relacin de dependencia, Iteracin LA DG no se puede construir. Este
hecho es destacable, especialmente en relacin con la observacin que se ha formulado al final de
la Seccin 2.5.2 : "las conocidas tcnicas de anlisis de dependencia slo pueda calcular en tiempo
razonable de los vectores de distancia para las relaciones de dependencia basada en simples,
aunque comunes, tipos de subndice funciones. No hay que olvidar que a veces es incluso
imposible para determinar la las relaciones de dependencia, por ejemplo, cuando subndices de
matriz son funciones de las variables de entrada del programa. La nica solucin es entonces a
crear una dependencia de cada posible relacin de dependencia con el fin de obtener un
conservador dependencia grfico, es decir, un grfico que incluye todos los bordes que la
verdadera dependencia grfica.
Tal como su nombre lo indica, la dependencia grfico es una representacin de la estructura de
dependencia de un programa. En su forma general, como en la definicin 3.10 , la DG no est
vinculada a ningn particular computacin tipo o granularidad. Esta forma terica es ampliamente
empleado, siempre que sea necesario para razonar sobre la estructura de dependencia de un
programa, la viabilidad de los clculos, o de la validez del programa transformaciones (vase la
bibliografa referida en la seccin 2.5.1 ). En uso prctico, la direccin general se limita a un granos
gruesos representacin parcial o de un programa, porque su tamao (y, con ello, su ordenador
representacin) crece con el nmero de tareas.
La estructura de dependencia de continuo los clculos est representada por la iteracin
dependencia grfica, donde cada nodo del grfico est asociado con las coordenadas de la
iteracin espacio abarcado por el ndice variables del bucle anidado. Para anlisis de dependencia
de los loops y, sobre todo, para el bucle transformaciones, el iterationDGis un valioso instrumento.
Banerjee et al. [ 17] encuesta muchas de las tcnicas actuales. Aunque varios de ellos no requieren
la construccin de la grfica, la teora subyacente de estas tcnicas se basa en la dependencia
grfico. Granularidad en los bucles es generalmente pequea a mediana, que es por lo tanto la
granularidad de la iteracin dependencia grficos. El tamao de la general de la DG es la evasin
por beneficiando de la regular iterativo estructura del clculo.Acompact ordenador
representacin, dado que la dependencia las distancias son uniformes, slo comprende las tareas
del bucle kernel, el intraiteration dependencia relaciones y los vectores de la distancia del
relaciones de dependencia de interiteracin.
La iteracin DGs es empleada no slo en compiladores parallelizing sino tambin en VLSI diseo
del procesador de la serie (Kung [109]). All, la iteracin DG, construido de una inicial la
especificacin de aplicacin tpicamente seala el procesamiento saques como un
intermedio representacin para la correlacin y programacin de la aplicacin poner en orden
procesadores. Aquellos grficos poseen dos atributos distintivos: (1) un nodo representa una
iteracin, no slo una parte de ello; y (2) las relaciones de dependencia son locales, es decir el
absoluto los valores de los elementos de los vectores de la distancia son tpicamente 1 o 0 (Karp et
al. [101]). El la correlacin y la programacin del proceso transforman la iteracin DG en un grfico
del flujo, que es tratado en la siguiente seccin. Mientras el grfico de dependencia no tiene
afinidad para ninguna arquitectura paralela particular, el grfico de dependencia de iteracin,
-
debido a su estructura iterativa regular, es por lo general empleado para sistemas homogneos,
con SIMD o corrientes SPMD.
3.4 FLOW GRAPH (FG)
El grfico de dependencia de iteracin, como hablado en la seccin anterior, no es el nico modelo
del grfico para la representacin de clculos cclicos. Intuitivamente, un modelo para tales
clculos se pueden beneficiar de la estructura regular inherente, como insinuado durante la
discusin de la representacin del ordenador de un grfico de dependencia de iteracin en el
seccin anterior. Parece que es suficiente para un modelo reflejar las tareas de una iteracin con
su intra - y comunicaciones 1 de interiteracin El grfico del flujo (FG) consigue una representacin
concisa de la estructura de un iterativo el clculo introduciendo el cronometraje de la informacin
en el grfico, que permite un para distinguirse entre intra - y comunicacin de interiteracin. Esto
es ilustrado con Ejemplo 10.
Analizando la dependencia de datos de su lazo (el Artculo 2.5.2), las comunicaciones siguientes
puede ser identificado. La consideracin de las tres declaraciones S, T y U como tareas, hay dos
comunicaciones de intraiteracin la salida de S es la entrada de T y U, causado por (i) y dos
comunicaciones de interiteracin la salida de T (i) es el la entrada de U (yo 1) (ponen en orden
B) y la salida de U (i) es la entrada de S (yo 2) (ponga en orden C). El grfico del flujo para este
clculo es como representado entonces en la Figura 3.11.
El grfico consiste en tres nodos para las tareas S, T, y U y cuatro bordes para el comunicaciones
entre estas tareas. Los bordes, que reflejan las comunicaciones entre nodos, son dibujados como
flechas como de costumbre, por lo cual una comunicacin de interiteracin es distinguido por una
etiqueta mostrando su distancia de comunicacin, es decir la distancia de dependencia (ver el
Artculo 2.5.2). Como a menudo es hecho en la literatura (p.ej., Parhi [145], Yang y Fu [208]), la
distancia de comunicacin, que es la tardanza del comunicacin en trminos de iteraciones, es
expresado como mltiplos de D, donde D est de pie para una iteracin. Tan borde el eTU tiene
una tardanza de D para la distancia de comunicacin de una la iteracin y el borde eUS tienen una
tardanza de 2do, es decir dos iteraciones. Antes de examen de este grfico las propiedades del
modelo, es definido formalmente.
Definicin 3.12 (Grfico de flujo) un grfico de flujo es un objeto grfico GF = (V, E, D) que
representan un programa P de un proceso iterativo clculo de acuerdo con el grfico modelo de
definicin 3.7 . Los nodos de V representan las tareas de P y los bordes de las comunicaciones
entre las tareas. Un borde eij E desde el nodo ni de nj, ni, nj V, representa una comunicacin
desde el nodo ni al nodo nj . Cada borde e E se asocia con un entero positivo peso D(e),
representa un retraso. Durante la ejecucin del programa P, cada tarea representada por los
nodos de FG se ejecuta una vez en cada iteracin. Slo cuando todos los nodos han terminado su
ejecucin, pueden una nueva iteracin. A diferencia de los datos de modelo de ejecucin se
explica ms adelante, esta forma de ejecucin se denomina iteracin. No hay comunicacin o
dependencias existen en P otros a los que se reflejan en los bordes de FG. La demora D(e)
asociado a cada borde refleja el nmero de iteraciones la comunicacin se demora entre su salida
-
del nodo de origen hasta su entrada en el nodo de destino. Comunicacin entre los nodos dentro
de una iteracin (es decir, intraiteration comunicacin) tiene por lo tanto el valor de retardo 0. En
el grfico de ejemplo de la figura 3.11 , los bordes esu y est se demora cero, que por convencin se
omite en la ilustracin. Es posible que un grfico de flujo de cantos paralelos, es decir, distintos
bordes que tienen el mismo origen y el nodo destino. Los grficos con esta propiedad se
denominan a veces multigraphs (Cormen et al. [ 42] ). Cantos paralelos en la flowgraph deben ser
diferentes, sin embargo, en su valor de retardo, en la que por lo tanto pueden ser distinguidos. La
figura 3.12 muestra un ejemplo de programa cuyo caudal grfico contiene cantos paralelos. Dos
comunicaciones de la tarea a tarea T: uno intraiteration (a travs de un(i)) y un interiteration (a
travs de un(i - 1), con un retraso de 1.
El grfico de flujo FG no contiene informacin sobre el nmero de iteraciones. Esto tambin
significa que el nmero de iteraciones no tiene que ser conocido cuando se construye el grfico,
como es el caso, por ejemplo, con un bucle cuyo ndice enlazado es una variable (N en el ejemplo
10). Cabe mencionar, que todas las comunicaciones deben ser uniformes, con el fin de representar
a su distancia de comunicacin como un valor entero. Intentan comunicacin, como las que se
encuentran en el bucle de la Figura 3.9 , no se puede expresar como un valor entero. Sin embargo,
un grfico de flujo puede ser construido en tales casos mediante un conservador aproximacin de
la distancia, por ejemplo, " 1" para indicar un desconocido dependencia distancia mayor o igual a
uno. Para algunos bucle en paralelo algoritmos, dicha informacin puede ser suficiente. Si la
representacin exacta de la estructura de dependencia es indispensable, un grfico de flujo slo
puede utilizarse con uniforme para la comunicacin. Se establece una limitacin importante del
grfico de flujo, lo que se refiere a la que se puede representar tipos de clculos. En comparacin
con la DG o la iteracin DG (Seccin 3.3 ), el grfico de flujo tiene dos caractersticas esenciales. En
primer lugar, los nodos en el grfico de flujo representan las tareas que se pueden ejecutar varias
veces, y no instancias de tareas como de la DG, en donde cada uno de ellos representado nodo se
ejecuta exactamente una vez. En segundo lugar, la flowgraph es, en general, no acclicos. Ciclos
pueden surgir en relacin con interiteration dependencia, pero en contraste con la DG, el clculo
es an posible.
Leyendo el cdigo de Ejemplo 10, uno concluye que es un programa factible, pero de hecho su FG
en la Figura 3.11 contiene dos ciclos S, U, S y S, T, U, S. El el grfico del flujo rompe una
limitacin impuesta al grfico de dependencia: en contraste con el DG, un grfico del flujo puede
incluir ciclos. Como expresado por Lemma 3.4, un DG debe ser acclico a fin de representar un
clculo factible. De este modo, cmo puede un grfico del flujo, basado en el mismo modelo del
grfico general de la Definicin 3.7, ser una representacin vlida de a programa factible? Segn
la Definicin 3.8 (severidad del nodo), los nodos deben ser estricto en cuanto a su entrada y salida.
Aunque unos modelos FG los datos flowamong nodos, y no como el DG las relaciones de
dependencia, comunicaciones entre nodos cree (fluyen) relaciones de dependencia de datos (ver
el Artculo 2.5.1). En otras palabras, los bordes implcitamente represente relaciones de
dependencia; as, un ciclo de comunicacin conducira a un ciclo de dependencia. La razn un FG
permanece factible, a pesar de los ciclos, est en la introduccin de las tardanzas en los bordes,
-
que previenen ciclos en el grfico de convertirse en la dependencia ciclos. En el grfico del flujo,
cada ciclo debe contener al menos un borde retrasado, rompindose la cadena de dependencia.
Visto el otherway alrededor, los caminos en flowgraphs slo estn cerrados a ciclos por
comunicaciones de interiteracin, que por definicin son retrasadas.
Lemma 3.5 (Feasible Flow Graph) A flow graph FG = (V, E,D) represents a feasible iterative computation P if and only if any cycle pc in FG contains at least
one edge e with a nonzero delay D(e) _= 0:
Prueba . : Supongamos que FG contiene por lo menos un ciclo cuyos bordes tienen demora cero.
Demora. Esto corresponde a un ciclo de la DG, que, sin embargo, deben ser acclicos para
representar un programa viable (lema 3.4 ). : La viabilidad del programa se muestra mediante la
demostracin de que el director general correspondiente al grfico de flujo no tiene ciclos (lema
3.4 ). Uno de los nodos de la DG representa una instancia de un nodo de FG, es decir, la DG consta
de i-veces los nodos del FG, por lo tanto |VDG| = i |VFG|, VDG y VFG es el nodo conjuntos de DG
y FG, respectivamente, y que el nmero de iteraciones. (La figura 3.13 muestra la direccin general
del flujo grfico de la figura 3.11 suponiendo tres iteraciones de N = 3 en el programa de Ejemplo
10-y cada iteracin comprende los nodos S, T y U. ) Comunicacin bordes inFGwith demora cero {e
EFG : D(e) = 0 }, corresponden a la dependencia en los cantos DGbetween los nodos de la misma
iteracin; por lo tanto, hay i | {e EFG : D(e) = 0 }| bordes de este tipo. (Estos son tres veces los
bordes la esu y est en la figura 3.13 .) como cada ciclo en FG contiene al menos un cero edge, no
puede haber un ciclo en la DG entre los nodos de una iteracin. Bordes, con cero demora son
dirigidas desde un antes a un despus iteracin, nunca al revs, ya que el peso es positivo, D(e)
0E VFG. (El grfico de la figura 3.13 tiene tres cantos: et(1)U(2), y(2)U(3), y de la unin
europea(1)S(3) .) Esto significa que la entrada en los bordes de un nodo siempre tienen su origen
en el mismo o en una iteracin anterior, dejando los bordes tienen su nodo de destino en la
misma o una nueva iteracin. Pero, a continuacin, no hay dependencia de la DG de iteraciones,
ya que no puede volver a su nodo de origen.
La tcnica empleada en la anterior prueba de crear una dependencia grfico de un flowgraph-se
llama desenrollar o despliegue (Parhi [ 144] ) .Por el contrario tcnica, llamada proyeccin, un
grfico de flujo puede ser obtenida de una iteracin DG (Kung [ 109] ). Ambas tcnicas, que
aparezcanlos relacin estrecha de la grfica los modelos, se examinan en la seccin siguiente.
3.4.1 Data-Driven Execution Model
Una comunicacin de un grfico de flujo tambin puede ser interpretado como una comunicacin
entre dos nodos a travs de un intermediario cola. La comunicacin de datos es escrita por el nodo
de origen de la comunicacin en la cola desde el punto en que se es ledo por el nodo de
destino.Adelay surge cuando otros elementos de datos, a menudo designado los tokens (Kung [
109] ), que ya est llena la cola en el momento en que un nuevo elemento se coloca en la cola,
puesto que estos artculos se leen antes de la newone, debido a la FIFO (primero en entrar,
primero en salir) caracterstica de la cola. Cuando la ejecucin del grfico de flujo se inicia, las
colas de los bordes con un valor distinto de cero demora contienen datos iniciales, o fichas, cuyo
-
nmero es dado por el retardo en cuenta D(e) de los bordes. Para el cdigo de ejemplo 10, estos
primeros elementos de datos corresponden a los valores iniciales de los elementos de la matriz de
B y C. Este punto de vista de la comunicacin retrasada tambin explica cmo los nodos siendo
estrictos con respecto a su entrada y salida (Definicin 3.8 ), mientras que al mismo tiempo ciclos
son factibles: por el retraso los bordes, se proporciona la entrada a un nodo de la cola, lo que
permite que el nodo para iniciar la ejecucin independientemente de la calidad de los bordes del
nodo de origen en la iteracin actual. Como ejemplo, considere la figura 3.14 , donde el mismo
grfico de flujo de la figura 3.11 se representa grficamente, excepto que ahora con la cola y token
interpretacin basada. Los lugares en las colas (que se muestran en nmero finito en esta figura)
son, por ejemplo, las lneas de los bordes de las flechas y las primeras fichas por puntos, a saber,
en el caso de una ficha en el borde etu y dos en la eus
Con la introduccin de las colas y los tokens, el estado del clculo es en cualquier momento se
refleja en la distribucin de las fichas entre las colas de los bordes. Un nodo est habilitado para
iniciar la ejecucin, "fuego", si cada entrada borde contiene un nmero positivo de fichas y cada
salida borde tiene al menos un espacio en la cola, es decir, el nodo es estricta (Definicin 3.8 ).
Antes de comenzar a ejecutar, el nodo elimina un smbolo (token) de cada entrada borde y coloca
un token en cada salida borde despus del acabado. El modelo de token se puede considerar
como una basada en datos modelo de ejecucin, ya que el flujo de los tokens invoca la ejecucin
de un nodo sin necesidad de sincronizacin. Comunicacin entre los nodos se realiza de forma
asincrnica con un tiempo ejecucin de los nodos desencadenada por el flujo de los testigos. Por
otra parte, la distincin estricta entre iteraciones no es necesario debido a la oportuna ejecucin.
Uno de los primeros grficos de flujo para los clculos es la computacin grfica (CG) (Karp y Miller
[ 100], Reiter [ 162] ). Cada extremo tiene una cola PEPS sin restriccin de su longitud y un peso
asociado a cada indicacin de borde el nmero inicial de palabras de datos de la cola. El concepto
tambin se utiliza en el flujo de datos idiomas (Ackerman [ 1], Davis y Keller [ 53] ), un enfoque
grfico para el desarrollo de software. Flujo de datos programa los grficos les permiten la
programacin de flujo de datos los equipos, ya que ambos comparten el tiempo y los datos de los
usuarios. El flujo de datos grfico (DFG) (Kung [ 109], Parhi [ 145]) beneficios, especialmente de la
centrada en el hardware vista de los datos de modelo de ejecucin, tal como se utiliza en VLSI
array diseo del procesador. Con dos peso adicional, en comparacin con el simple grfico de
flujo, la DFG refleja tambin el tiempo de clculo de los nodos y la capacidad de la FIFO colas.
Restringir la capacidad de la cola puede conducir a una situacin de estancamiento, que es de una
real preocupacin en VLSI los procesadores de la matriz. DFGs se utilizan para la asignacin de
paralelos clculos de VLSI wavefront los procesadores de la matriz (Kung [ 109] ). Los datos de
ejecucin modelo es un valioso mecanismo cuando una vista exacta del flujo de datos en el
espacio y el tiempo necesarios, como, por ejemplo, en hardwareoriented puesta en paralelo. Para
muchos propsitos, sin embargo, una vista detallada del flujo de datos no es necesaria y la
iteracin de modelo de ejecucin es adecuada y suficiente. En cualquier caso, el grfico de flujo
definido en la definicin 3.12 es adecuado para una controladas por datos mediante language
viewas pronto como el borde delaysD(e) se consideran primeras fichas (Kung [ 109] ), como se ha
-
descrito anteriormente. La iteracin de modelo de ejecucin simplemente supone un mecanismo
de cola para la comunicacin retrasada que sea lo suficientemente grande, y por lo tanto, no es
necesario un examen ms profundo.
3.4.2 Summary
El grfico de flujo es una representacin eficaz de iterativo clculos, debido al hecho de que las
partes de computacin y comunicacin son modelado slo una vez. Por otro lado, el grfico de
flujo est limitado a un cclico clculos con suele ser uniforme relaciones de comunicacin (no
uniformes relaciones de comunicacin slo puede ser aproximada). La granularidad del grfico de
flujo es bsicamente heredada del iterativo clculo tipo y por lo tanto, es un grano entre fino y
medio. Muchos en paralelo las tcnicas de iterativo programas se basan en el programa de
representacin como un grfico de flujo con o sin clculo y/o los costos de las comunicaciones:
despliegue, sincronismo, software pipelining, asignacin y programacin, slo para nombrar unos
pocos. Un grfico de flujo de la computacin y los gastos de comunicacin se define sencillamente
como FG = (V, E, D, w, c) (vanse las definiciones 3.9 y 3.12 ). La flowgraphs utilizado por Parhi y
Messerschmitt [144, 146] para algunas de estas tcnicas se denomina iterativo flujo de datos
programas e incluir clculo costo, es decir, el nodo los pesos (w) .y Yang Fu [ 208] emplean un
grfico llamado el iterativo tarea grfico (ITG), con tanto clculo (w) y los gastos de
comunicaciones (c), lo que se conoce como una comunicacin sensible flujo de datos grfico (CS-
DFG) por Tongsima et al. [ 185]. El flujo de la seal grfica (SFG) (Kung [ 109], Parhi [ 145] ), la
contrapartida de la DFG (vase anteriormente controladas por datos modelo de ejecucin), se
utiliza para replicacin sincrnica y uniforme los clculos asignada y programada en VLSI Sistlica
los procesadores de la matriz, para lo cual por lo tanto, ni a los datos de modelo de ejecucin ni el
modelado del clculo de los costes de comunicacin es necesaria.
3.5 TASK GRAPH (DAG)
Esta seccin est dedicada a la obra grfica, la cual es utilizada para programacin de tareas. Con
el entendimiento de la grfica los modelos construidos en las secciones anteriores, es fcil de
comprender y analizar la tarea grfica. Durante el debate subsiguiente, las relaciones entre el
grfico se desarrollarn modelos, incluyendo tcnicas de transformacin. En la literatura, el
trabajo grfico es a menudo conocido simplemente como DAG, que se limita a describir el grfico
terico propiedades del modelo, es decir que se trata de una dirigidos acclicos grfico. Con el fin
de evitar cualquier ambigedad con otros dirigidos acclicos grficos, el nombre tarea grfico se
utiliza en este texto. El debate se inicia con la definicin de la tarea grfica.
Definicin 3.13 (Tarea Grfico (DAG) una tarea grfico es un dirigido acclicos grfico G = (V, E, w,
c) representa un programa P de acuerdo con el grfico modelo de definicin 3.7 . Los nodos de V
representan las tareas de P y los bordes de las comunicaciones entre las tareas. Un borde eij E
desde el nodo ni de nueva jersey , ni, nj V, representa la comunicacin desde el nodo ni al nodo
nj . El peso w(n) asociado con el nodo n V representa su clculo coste y el positivo peso c(eij)
asociado con el borde eij E representa el coste de la comunicacin.
-
Durante la ejecucin del programa P, cada trabajo representado (por ejemplo, nodo) se ejecuta
exactamente una vez. Se supone que el programa P es un programa viable, de ah la acclicos
propiedad del grfico (ver Lema 3.4 ). No hay comunicacin o dependencias existen en P que la
reflejada en los bordes de G. La tarea funciones grficas nodo y edge los pesos que representan el
coste de computacin y comunicacin, respectivamente, con la notable diferencia de que el nodo
peso se define aqu como positivo en lugar de nmeros como en la definicin 3.9 . Esta pequea
diferencia es importante para ciertas propiedades de la tarea grfica, como se ver en la Seccin
4.4 . La figura 3.15 muestra una muestra grfica de una pequea ficticio programa; los nodos son
designados por las letras a a k, mientras que el nodo y los pesos que se observ junto a los
respectivos elementos del grfico. Este ejemplo grfico va a ser empleada como un ejemplo en
todo los siguientes captulos. Algunos de los primeros algoritmos de planificacin y los que se usan
en condiciones limitadas (vase el captulo 4) emplear tarea simplificada grficos, en la medida en
que comunicacin y a veces clculo costes son descuidados. En este sentido, la define aqu tarea
grfico es un modelo general, que se pueden utilizar en estos algoritmos, ya sea haciendo caso
omiso de la computacin y/o los costos de comunicacin o su valor a cero.
Los bordes de la tarea grfica slo reflejan los datos relativos a las corrientes dependencia
(recuerde, las comunicaciones establecer flowdependence las relaciones). Si otros las relaciones
de dependencia existentes en
Una versin preliminar del programP, han sido eliminados antes de la construccin de la tarea
grfico G (la eliminacin de la produccin y antidependence se explica en la seccin 2.5.1 ). Para
algunos fines prcticos, la diferencia entre los tres datos dependencia (p. ej., dependencia,
antidependence y de salida, dependencia) no es pertinente. En tales casos, una tarea grfico
puede definirse, cuyos bordes pueden representar todos los tipos de dependencias. La nica
diferencia con una direccin general, a continuacin, el clculo y los gastos de comunicacin de la
labor grfica. Sin embargo, la definicin de " gastos de comunicacin" para la salida dependencia y
antidependence se vuelve muy problemtico. Por otra parte, la produccin dependencia y
antidependence son provocados por variable su reutilizacin. En un sistema distribuido sin
memoria compartida, este problema no existe cuando las respectivas tareas se ejecutan en
procesadores diferentes. Por estas razones, y con el fin de tener una modelo general, la tarea
definida grfico aqu slo representa flowdependences.
Es decir, que puede reflejar iterativo y noniterative los clculos. Sin embargo, al igual que la DG, no
est adaptado a un cclico los clculos en modo alguno, lo que hace que el tamao del grfico, en
trminos de nodos, proporcional al nmero de iteraciones. Esa es la razn por la cual la tarea
grfica se utiliza comnmente para granos gruesos, noniterative clculos -de ah su nombre tarea
grfico. Comparte otra limitacin de la DG con respecto al nmero de iteraciones: si el nmero
depende de la entrada del programa, la tarea grfico no se construyen para el caso general. En
cambio, la tarea grfico no se limita a uniformes interiteration comunicaciones como es el
(aproximacin libres) grfico de flujo. De la definicin de la tarea grfica, varias similitudes con la
dependencia grfica y el grfico de flujo puede ser observado. La tarea grfico hereda la topologa
de la La DG de programas viables. Recuerde que aunque el DG se define como un objeto grfico
-
(definicin 3.10 ), lema 3.4 exige que es acclicos para representar un programa viable. En
consecuencia, cada nodo se ejecuta slo una vez durante la ejecucin de P, que corresponde a
theDGmodel pero no al flowgraph. Por otro lado, los bordes reflexin acerca de la comunicacin,
como en el grfico de flujo, y no slo las relaciones de dependencia, como en la direccin general.
Evidentemente, la reflejan las comunicaciones representan implcitamente los datos reales las
relaciones de dependencia (vase la seccin 2.5.1 ). Otra similitud con el grfico de flujo es la
inclusin de la computacin y los gastos de comunicaciones (Definicin 3.9 ), que figuran en varios
de los grfico de flujo modelos citados (Seccin 3.4 ). Los tres considerados grfico modelos de
dependencia grfico, grfico de flujo, y la tarea de grficos comparten una base comn, que es
descrito por Definicin 3.7 . Como se mencion anteriormente, hay muchas otras similitudes entre
los modelos y no es de sorprender, pues, que es posible, y comn, para convertir o transformar un
modelo en otro (Sinnen y Sousa [173, 174] ). La siguiente seccin se describen algunas de estas
tcnicas, que tambin ayuda a obtener una visin general de la grfica.
3.5.1 Graph Transformations and Conversions
En la discusin subsecuente, una distincin spera ser hecha entre transformaciones y
conversiones. Aquellas tcnicas que requieren la creacin o el retiro de nodos ser llamado
transformaciones y deben llamar a los que conservan los nodos originales conversiones. La
discusin comienza con las conversiones, que son a veces un poco ms que una interpretacin
diferente del modelo del grfico dado. Grfico de la tarea toDG La conversin del grfico de la
tarea en aDGis muy simple, dado que las relaciones de dependencia sean implcitamente
expresadas a travs de la comunicacin bordes. De ah, esta conversin es mejor dicho una
interpretacin del grfico de la tarea como un DG por no hacer caso del nodo y pesos del borde.
Hay que notar que el tipo de la dependencia de datos reflejado por los bordes es el flujo, o
verdadero, dependencia. Otras relaciones de dependencia no hacen exista por definicin del
grfico de la tarea. Por esta razn, la conversin de enfrente, de DG para encargar el grfico, no es
en general vlido, porque los grficos de dependencia pueden comprender todos los tipos de
dependencia.
La extraccin de Grano Iterativo Grfico del Flujo para Encargar Grfico Aunque el el grfico de
la tarea no est diseado expresamente para la representacin de clculos cclicos como el grfico
del flujo, resulta til para la representacin del grano de el clculo iterativo el cuerpo del lazo. Si
una iteracin consiste en ms de un tarea, seguramente un grfico de la tarea puede ser
construido para representar las tareas de la iteracin y sus comunicaciones. El mismo grfico de la
tarea tambin puede ser obtenido convirtindose el el grfico del flujo que representa el clculo
iterativo entero. La conversin simple es realizado quitando todos los bordes del grfico que
tienen tardanzas distintas a cero, es decir {e E: D (e) = 0\: en otras palabras, todos los bordes que
representan comunicaciones de interiteracin. Obtenido son los nodos relacionados slo por la
comunicacin de intraiteracin
Los bordes, que es el grupo grfico del iterativo kernel.Por ejemplo, esta conversin se realiza con
el caudal de la muestra grfica de la figura 3.11 en la seccin anterior, se muestra en la figura 3.16
-
(a). Quitando el cero comunicacin bordes, el grfico se muestra en la figura 3.16 (b). La
correccin de la tarea grfico es verificado por anlisis del cdigo del programa de ejemplo 10: la
salida de S (A(i)) es la entrada de T y U crear los dos intraiteration las comunicaciones. Utilizando
una tarea grfica para modelar el iterativo kernel es utilizado con xito en la programacin de los
clculos (Sandnes y Megson [ 164], Sandnes y Sinnen [ 166], y Yang Fu [ 208] ). La principal ventaja
es que una vez que el iterativo clculo est representado por un grupo grfico, programacin de
tareas, como se discute en los captulos siguientes, se puede utilizar. Tenga en cuenta que el
nmero de iteraciones no necesita ser conocido por esta tcnica.
El desenrollo grfico FlowGraph toTask tcnica de Analternative para crear una tarea el grfico
de un flowgraph se desenrolla o se despliega, whichwas ya usado para la prueba de Lemma 3.5. El
desenrollo, segn la susodicha definicin suelta, es una transformacin ya que crea un nuevo
grfico. En contraste con la conversin anterior, no slo es el el grano del lazo representado por el
grfico de la tarea pero el clculo iterativo entero es. Esto sigue esto el nmero de iteraciones
debe ser conocido en el momento de la construccin a la condicin que no siempre es realizada
en el tiempo de compilacin, desde el nmero de iteraciones puede depender de la entrada del
clculo. Recuerde que el grfico del flujo es construido independientemente del nmero de
iteraciones (el Artculo 3.4). Para construir el grfico de la tarea desenrollado, un grfico es creado
consistiendo en el respectivo nodos y bordes del grfico de la tarea del cuerpo del lazo para cada
iteracin. Un nodo es identificado por su nombre en el grfico del flujo y el ndice de iteracin al
cual pertenece. Aquellos nodos y los bordes ya reflejan todos los casos de la tarea del clculo
iterativo y su comunicaciones de intraiteracin. Los bordes de comunicacin de interiteracin
restantes son aadidos al grfico considerando cada nodo del nuevo grfico y aadiendo bordes
para sus comunicaciones de interiteracin de salida, mientras el ndice de iteracin del el nodo del
destino es la parte del clculo. Si el nodo considerado n es de la iteracin yo, el borde e es creado
entre n y el nodo del destino respectivo de la iteracin yo D (e), a menos que yo D (e)> N para 1 i
N, con N ser el nmero de iteraciones. El nodo y pesos del borde que representan los gastos de
comunicacin y clculo, respectivamente, son puestos a los valores de los elementos del grfico
del flujo correspondientes.
La figura 3.17 muestra el ejemplo que se desenrolla del Artculo 3.4, donde el grfico del flujo de
La figura 3.16 (a) es desenrollada para tres iteraciones (es decir, N = 3) en el cdigo subyacente de
Ejemplo 10. Uno claramente ve los tres grficos de la tarea del grano distintos para los tres
iteraciones y las tres comunicaciones de interiteracin. No hay borde de salida de nodo U en la
segunda iteracin, ya que el nodo del destino potencial (en la iteracin 4) es no parte del clculo.
Lo mismo sostiene para las comunicaciones de interiteracin de los nodos de la tercera iteracin.
Un grfico construido de un grfico del flujo sin la atribucin de pesos al los nodos y los bordes
pueden ser interpretados como el grfico de dependencia el reflejo slo fluye dependencias de
datos del clculo iterativo. Esta estrecha relacin entre tarea el grfico y DG fueron examinados
antes. Ms exactamente, el DG obtenido desenrollndose un grfico del flujo es la iteracin DG del
clculo, comprendiendo slo el uniforme relaciones de dependencia. A veces el desenrollo slo es
hecho para una fraccin del nmero total de iteraciones. Este desenrollo parcial, que es suficiente
-
con algunos objetivos (Sandnes y Megson [164], Yang y Fu [208]), tiene dos ventajas: (1) el nmero
total de iteraciones hace no tengo que ser conocido y (2) la talla del grfico desenrollado, en
trminos de nmero de nodos, no es proporcional al nmero de iteraciones. Sin embargo, el
grfico que resulta permanece un grfico del flujo; no es un grfico de la tarea. Por esta razn, el
desenrollo parcial es a veces empleado como una preetapa a la extraccin del grano iterativo
como descrito antes (p.ej., Yang y Fu [208]).
Proyeccin Iteracin DG para Fluir Representa grficamente La contratcnica a desenrollo es la
proyeccin de una iteracin DG a un grfico del flujo (Kung [109]). Mltiple igual son proyectados
los nodos de la iteracin DG (es decir, nodos que representan el mismo tipo de la tarea) en un
nodo del grfico del flujo. Un ejemplo ilustrativo es la proyeccin de una iteracin de dos
dimensiones DG en un grfico del flujo, reduciendo la iteracin DG por uno dimensin. La figura
3.18 muestra tal proyeccin para la iteracin de dos dimensiones DG de la Figura 3.10 a lo largo
del i-eje, causando el grfico del flujo representado. Esencialmente, la proyeccin es realizada
combinando todos los nodos a lo largo de la proyeccin direccin en un nodo y transformando los
bordes de comunicacin en nuevos bordes con tardanzas. Una tardanza substituye el componente
espacial del vector de la distancia del el borde que es paralelo a la direccin de la proyeccin. En
otras palabras, una dimensin espacial de la distancia vectores es transformado en uno temporal.
En el ejemplo, el la i-dimensin es transformada en la dimensin temporal de las tardanzas. La
proyeccin en el susodicho ejemplo es lineal a lo largo de una de las hachas de la iteracin DG. En
general, no se requiere que la proyeccin est a lo largo de un eje, de hecho, ni siquiera es
requerido ser lineal (Kung [109]). Sin embargo, una estructura iterativa inherente debe ser
presente en el DG; por otra parte el clculo no puede ser descrito como un grfico del flujo, por
tanto normalmente DG general no puede ser transformado en un grfico del flujo. Una aplicacin
comn de la proyeccin est en el diseo del procesador de la serie de VLSI (Kung [109]), donde la
iteracin DG a menudo sirve de un modelo inicial para obtener el flujo el grfico, que est una
descripcin de la aplicacin ms cerca al nivel del hardware. Las conversiones y las
transformaciones demuestran las relaciones cercanas del varios modelos del grfico. Concluir y
resumir la discusin de estas tcnicas, las relaciones son ilustradas en la Figura 3.19. Mostrado son
los tres principales modelos del grfico DG, grfico del flujo, y grfico de la tarea unido por
las conversiones y las transformaciones hablaron en esta seccin.
3.5.2 Motivations and Limitations
Esta subdivisin habla de las motivaciones para la adopcin del modelo del grfico de la tarea para
la programacin de la tarea, que es acompaada por una discusin crtica de sus limitaciones.
Bsicamente, este objetivo es conseguido resumiendo y comparando las propiedades principales
de los modelos del grfico presentados. Motivaciones Hasta ahora, este captulo ha demostrado
que la abstraccin de un programa ya que un grfico puede capturar muy bien la dependencia y la
estructura de comunicacin de a programa. El modelo del grfico de la tarea tiene varias
propiedades que lo hacen particularmente conveniente para programacin de la tarea. General.
Es deseable que el modelo del grfico sea el ms general posible, en trminos de los tipos de
clculo y el grfico de la tarea es tal modelo. En comparacin, el el grfico del flujo es restringido a
-
clculos iterativos con comunicaciones uniformes (por otra parte no es exacto). Simple. El grfico
de la tarea se concentra en comunicaciones, que equivalen al verdadero dependencia de datos,
tarea de permisos que programa concentrar en stos precedencia esencial coacciones. Otras
dependencias reflejadas en el DG pueden ser eliminadas y no son inherentes al clculo
representado. Modelado de Gastos de Comunicacin y Clculo. Programacin de algoritmos
para los sistemas paralelos modernos deben ser conscientes del clculo y comunicacin gastos. Es
por lo tanto crucial que sean representados en el modelo del grfico; de ah, un DG no basta.
Estrecha relacin con Otros Modelos. La seccin anterior perfil el vario relaciones entre los
modelos hablados. En relacin a una conversin o la transformacin, las tcnicas y los algoritmos
basados en el grfico de la tarea pueden ser empleado para otros modelos.
Las limitaciones El grfico de la tarea como un modelo general no proporcionan ningn
mecanismo representar eficazmente un clculo iterativo. Clculos iterativos. Para clculos
iterativos, la talla del grfico de la tarea depende del nmero de iteraciones, que directamente
influye en el consumo de memoria y el tiempo de procesamiento de algoritmos de programacin
de la tarea. Con la prdida de la informacin de la regularidad en el grfico de la tarea,
programando algoritmos tambin no puede ventaja de la regularidad inherente de clculos
cclicos. Adems, si el nmero de iteraciones slo es conocido en el tiempo de ejecucin, el grfico
de la tarea no puede sea construido para el caso general. De todos modos, programando tcnicas
para cclico clculos (Sandnes y Megson [164], Sandnes y Sinnen [166], Yang y Fu [208]) realmente
usan el grfico de la tarea y tcnicas asociadas, por ejemplo, a represente el grano iterativo.
Otra limitacin no es una limitacin de la tarea grfico, sino de todos los modelos tratados en este
captulo. De hecho, ya fue introducida durante la definicin de la grfica general modelo en la
Seccin 3.2 . Modelo esttico. El grfico modelos de acuerdo a la definicin 3.7 , a la que la tarea
grfica modelo pertenece, no muestran las sentencias condicionales del cdigo; es decir, que no
hay ramificaciones. Estas dependencias son convertidos en dependencias de datos o encapsulada
dentro de un nodo (ver Seccin 3.2 ).
3.5.3 Resumen La tarea grfico es el grfico modelo de eleccin de programacin de tareas. Que
claramente muestra la tarea y comunicacin estructura de un programa, mientras que tambin es
reflejo de la computacin y los gastos de comunicacin. Sus propiedades se resumen en la seccin
anterior, cuando se trata de analizar las motivaciones para el modelo de eleccin y sus
limitaciones. El carcter general de la tarea grfico, junto con la gruesa granularidad de los
representados tareas, indica la adecuacin de la labor grfica de sistemas paralelos con SPMD o
MIMD arroyos. Captulo 4 vuelve a la tarea grfica modelo despus de establecer un
entendimiento bsico de la programacin de tareas problema en sistemas paralelos. Es all que la
tarea grfica modelo y sus propiedades se examinan en el contexto de programacin de tareas.
Tambin, en el Captulo 4 se refiere a la computacin y la comunicacin los costos asociados a los
nodos y los bordes de la tarea grfica, respectivamente. Hasta ahora, el nodo y el borde pesos slo
fueron introducidos como abstract anotaciones de computacin y los gastos de comunicacin.
Evidentemente, esos costos estn relacionados con la meta sistema paralelo en el que el programa
-
de la tarea grfico es ejecutado. Por lo tanto, es necesario definir el sistema paralelo modelo,
antes de que el concepto de los costos de la tarea grfico puede ser justificada.