3

download 3

of 14

description

gt

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.