Multiprocesadores Universidad de Sevilla 2003 2004

76
Sistemas Multiprocesadores Arquitectura y Tecnología de Computadores Universidad de Sevilla Prof. Saturnino Vicente Díaz

description

Multiprocesadores Universidad de Sevilla 2003 2004

Transcript of Multiprocesadores Universidad de Sevilla 2003 2004

  • Sistemas Multiprocesadores

    Arquitectura y Tecnologa de ComputadoresUniversidad de Sevilla

    Prof. Saturnino Vicente Daz

  • 1. Introduccin Niveles de paralelismo Introduccin a los sistemas multiprocesadores Argumentos a favor de los multiprocesadores Argumentos en contra de los multiprocesadores Investigacin actual

  • Introduccin

    Paralelizador/ reescrituraHLL

    S.O.

    Implemen-tacin

    ISA

    LgicaDigital

    Electrnica

    Compilador/libreras

    TLP(Multiprocesadores)

    DLP extrado(SIMD / PV)

    Vectorizador

    ILP(VLIW / Superesc)

    DLP extrado(Ncleos

    Multimedia)

    Encadenamiento

    Paralelismo a nivel de bits

    Desenrollado

    Si existe DLP

    Fig. 1.1

    Niveles de paralelismo

  • Introduccin Sistemas multiprocesadores

    En los sistemas actuales la CPU es un todo monoltico est separada de la memoria principal y de la E/S Alcanza grandes velocidades

    Vamos a romper con esta concepcin para disear los multiprocesadores

    Lo que vamos a construir se parece a:

    Cuidado conel progreso de las apli. reales

    SistemasMultiprocesadores

    UniProc. baratoaltas prestaciones

    APROVECHAR

    CdigoParalelo

    ESCRIBIR

    Comunicacineficiente

    DISEARReduce el n de mensajes

    Fig. 1.3

    Fig. 1.2

  • Introduccin Idealmente, , lo cual es imposible

    La red de interconexin juega un papel importante Comunicacin entre procesadores Comunicacin entre procesadores y memoria

    La memoria est separada de los procesadores, pero no totalmente Cada procesador tiene su cach local. La forma de organizar la jerarqua de memoria es vital

    Nt

    t uniejecmultejec,

    , =

    Fig. 1.4

  • Introduccin Argumentos a favor de los Multiprocesadores

    En 15 20 aos, el rendimiento de los Uniprocesadores llegar a su fin, debido a dos razones:

    Incrementar el rendimiento conectando uniprocesadoresen paralelo

    Menos costoso que disear un nuevo procesador Ms flexible para todo tipo de soft que un nuevo diseo

    El ritmo de innovacin en la endoarquitectura es difcil de mantener indefinidamente

    Actualmente el incremento en transistores es superior al de rendimiento (ntran x 4 ; rend. x 3 cada 3 aos)

    Algunos estudios indican el inicio de la saturacin en prestaciones de los uniprocesadores

    Parece que los MPrs son la nica forma de aumentar considerablemente el rendimiento a un precio razonable

    Coste

    PrestacionesUniprocesador

    Coste de saturacin 1990s

    1980s (VLSI)

    1970s (Circuitos integrados)

    1960s (Transistores discretos)

    Fig. 1.5

  • Introduccin Argumentos en contra de los Multiprocesadores

    Cada 2 3 aos, alguien anuncia el fin de los UniPr A los 2 3 aos se disparan las prestaciones por una

    nueva idea arquitectnica. Esto es debido a que hay mucho mercado mucha inversin mucho avance

    Segmentacin Vectorizacin Superescalaridad HyperThreading, etc.

    Lentitud en las comunicaciones Latencia a memoria local es del orden de pocos ns En MPr, si un Pr necesita un dato remoto alta latencia,

    del orden de microsegundos (Ejemplo) Limitacin del paralelismo de las aplicaciones

    La ley de Amdahl nos indica el efecto del paralelismo de las aplicaciones en la aceleracin

    Intuitivamente Sin embargo, la mejora solo afecta al porcentaje de

    cdigo que se pueda paralelizar Dado un cdigo normal, un compilador intenta

    paralelizar el cdigo, y lo consigue en la mitad del programa

    Suponer que queremos conseguir una aceleracin de 80, con 100 procesadores Qu fraccin del programa debe ser paralela?

    Ntt uniejecmultejec ,, =

    ( ) 212

    *21

    21

    1

    1

    1 +=+=

    +=

    NN

    NNFF

    A

    75,99F

  • Introduccin Investigacin actual

    Software ms adaptado a la computacin paralela Nuevos algoritmos

    Se obtendran mayor rendimiento Nuevos lenguajes paralelos Que los compiladores extraigan el paralelismo implcito

    en los programas no escritos explcitamente en paralelo Portabilidad de los programas entre distintas plataformas

    Reducir/ocultar la alta latencia remota Mediante hardware (p.e. cachs de datos compartidos) Mediante software, (p.e. reestructurando los accesos a

    datos para que sean ms locales, ocultar los accesos remotos mediante ejecucin de otras partes del cdigo, etc.)

    Flexibilidad en los multiprocesadores Distintas aplicaciones pueden requerir distintas

    topologa para extraer ms paralelismo. Los MPrdeberan poder cambiar su estructura (topologa, distribucin de la memoria, etc) de forma dinmica y fcil, para as, adaptarse a las distintas aplicaciones

  • 2. Taxonoma

    Clasificacin en funcin del flujo de instrucciones y datos

    Clasificacin en funcin de la organizacin de la memoria

    Clasificacin en funcin de la granularidad

  • Taxonoma

    Clasificacin en funcin del Flujo de instrucciones y datos Propuesta por Flynn hace 30 aos SISD (Single Instruction, Single Data)

    Basados en arquitectura Von Neumann Monoprocesador (normal o segmentado) Velocidad limitada:

    Velocidad de ejecucin de las instrucciones Velocidad de transferencia de informacin entre la

    CPU y el sistema de memoria

    SIMD (Single Instruction, Multiple Data) Una simple unidad de control y mltiples unidades

    de procesado (U.F.) Pensados para procesamiento vectorial

    La misma operacin con mltiples datos Deben tener una parte SISD para el control de flujo

    de datos (bucles, bifurcaciones, etc) Suelen ser de propsito especfico Los PV son muy similares. La diferencia est en

    que los PV slo disponen de una U.F. MISD (Multiple Instruction, Single Data)

    No existe ninguno comercial hoy en da

  • Taxonoma

    MIMD (Multiple Instruction, Multiple Data) Sistemas multiprocesador y multicomputador de

    propsito general Son flexibles, con el soporte hard y soft adecuados.

    Pueden ser: Mquinas monotarea, multitarea, hbridas e incluso mquinas SIMD

    Pueden construirse con las ventajas coste/prestacin del microprocesador de propsito general

    Fig. 2.1.

  • Taxonoma

    Clasificacin en funcin de la organizacin de la memoria La memoria es determinante en un sistema con

    tanto ancho de banda de memoria (ABmem) El ABmem de 1 slo procesador es muy grande La memoria puede servir para comunicarse entre

    los procesadores UMA (Uniform Memory Access)

    Espacio de direcciones de memoria compartido Tiempo de acceso uniforme para toda direccin Hardware bastante simple. El cuello de botella es el acceso a memoria

    principal, lo cual implica: Grandes cachs en cada procesador El nmero de procesadores no puede ser muy

    alto. Hoy en da N32.

    Fig. 2.2.

  • Taxonoma Multiprocesadores muy populares hoy en da:

    Todos los SMPs (Multiprocesadores simtricos con memoria compartida basado en bus comn)

    bi, quad-Pentium Sun Enterprise 10000 (crossbar)

    Programacin y comunicacin Al tener espacio de direcciones de memoria

    compartida Se adapta perfectamente a la programacin multihilo (multi-thread)

    Tambin se puede usar para programacin multiprocesos, pero sera ms lento. La comunicacin entre procesos sera mediante intercambio de variables en la memoria compartida

    Surge el problema de la coherencia entre cachs disponer de Hard adicional para solucionarlo

    Fig.2.3. Organizacin del Pentium Pro de 4 procesadores quad pack

  • Taxonoma

    NUMA (NonUniform Memory Access)

    Espacio de direcciones de memoria compartido Tiempo de acceso no uniforme para toda direccin.

    Depende de si accedemos a memoria local (no a cach) o a remota.

    Debido al incremento de prestaciones del uniprocesador y del AB requerido, sta es la nica solucin para sistemas con muchos procesadores

    tacc pequeo en accesos a memoria local Hard de la red es complejo, necesita redes de

    interconexin especiales. Existen distintas lneas de comunicacin separadas mayor AB

    El problema de la coherencia es ms difcil de mantener en hard

    Fig.2.4. Modelo de multiprocesador NUMA con memorias locales compartidas

  • Taxonoma Estos multiprocesadores son escalables

    Escalable: Si crece el nmero de procesadores N, entonces la memoria crece como orden(N). Esto es gracias a que cada procesador lleva su propia memoria

    Los procesadores UMA no son escalables, puesto que si aumentamos el nmero de procesadores, la memoria es la misma.

    Programacin y comunicacin Comunicacin entre procesadores es mediante

    variables globales Al tener espacio de direcciones de memoria

    compartida Se adapta perfectamente a la programacin multihilo (multi-thread)

    Debe existir cacheo de datos remotos en hard, aunque la coherencia sea compleja

    Debe existir soporte hard para el acceso remoto Ld local, provoca acceso a cach o memoria

    local Ld remoto, provoca interrupcin I/O a la red

    Si existe coherencia, el cdigo NUMA es totalmente compatible con UMA. Esto supone una ventaja, puesto que los UMA estn muy extendidos y hay muchas aplicaciones desarrolladas. El programador debe tener cuidado con los accesos remotos

    Ejemplos: TC2000, KSR-1, Standford Dash, BBN Butterfly, Cray T3D

  • Taxonoma MPM (Message Passing Machines)

    Espacio de direcciones de memoria distribuido Son compatibles en hard a los NUMA Cada procesador es un computador independiente del

    resto Fcilmente escalable

    El mecanismo de comunicacin es a travs de mensajes (igual que la comunicacin entre procesos del S.O.). No necesita mecanismos hard ni para controlar la coherencia de cachs (pues son espacios distintos de direcciones), ni para implementar los accesos remotos

    La red es la parte ms compleja de escalar

    Fig.2.5. Modelo de multiprocesador MPM

  • Taxonoma Programacin y comunicacin

    Programacin orientada a multiprocesos Comunicacin se realiza por mensajes. Existen

    libreras estndar que: Realizan la mensajera Distribuyen los procesos por la mquinas

    declaradas del multicomputador Comunicacin explcita, lo cual tiene que ser tenido

    en cuenta por los programadores. Esto obliga a estar pendiente de ella e intentar ocultar la latencia

    El overhead de comunicacin es muy alto, luego interesa enviar datos grandes, p.e. Pginas

    Ejemplos de multiprocesadores MPM Todos los Clusters del mercado Constelaciones

    Es un cluster Cada nodo es un UMA con uno nmero de

    procesadores >= 16 IBM SP-2 (CPU: RS6000) Intel/Sandia Option Red (CPU: Pentium Pro) Intel Paragon (CPU: i860) CRAY T3E (CPU: DEC Alpha 21164) CM-5, nCUBE 2, Comic Cube, etc.

  • Taxonoma

    Fig.2.6. Modelos de multiprocesadors MPM. a) IBM SP-2, b) Intel Paragon, c) CRAY T3E

    a) b)

    c)

  • Taxonoma

    Fig.2.7. Resumen de la clasificacin segn la organizacin de la memoria

    UMA No tienesentido

    MPMNUMA

    Disposicinlgica

    Disposicinfsica

    Espacio de direc.compartido

    Espacio de direc.disjuntos

    Memoriacentralizada

    Memoriadistribuida

    Distinto software, casi igual hardware

    Igual software, distinto hardware.

    Threads en Paralelo

    Procesos en Paralelo

  • Taxonoma

    Emulacin Se puede emular un MPM en un NUMA o

    viceversa. El hard es muy parecido El MPM se emula fcilmente con un NUMA. La

    emulacin de paso de mensajes es sencilla si se tiene memoria compartida (escribir/leer en una determinada direccin de memoria)

    El NUMA es ms difcil de emular con un MPM Cualquier Ld/St requiere un overhead tremendo

    Llamar al S.O. para traducir la direccin Comprobar protecciones Crear el mensaje

    No tiene sentido enviar 1 solo byte o palabra, sino muchos datos de una sola vez, para ello podemos limitar la comparticin de datos solo a pginas de memoria virtual Tamao de datos comunicados es muy grande y, por tanto, el overhead por byte es pequeo

  • Taxonoma

    Mercado actual de los multiprocesadores Los UMA se han introducido con gran xito en el

    mercado (memoria centralizada) Fciles de contruir

    Basados en bus comn Hard especial para mantener la coherencia

    Los microprocesadores comerciales estndar llevan soporte para UMA

    Bien caracterizados y documentados Se adaptan bien a sistemas multiusuario Limitacin: n de procesadores que soporta AB solicitado por cada procesador crece y el bus

    comn tiende a saturarse cada vez ms Se adaptan bien a los cluster y son utilizados para

    construir las constelaciones. Tendencias hacia memoria distribuida

    Escalables Los NUMA son compatibles en soft con los UMA,

    luego puede aprovechar el soft ya desarrollado El nico problema es que el hard para mantener

    la coherencia de los cachs es ms complejo, pero en los nuevos procesadores (Alpha 21364) ya se incluye dicho hard

  • Taxonoma Los supercomputadores se fabrican con cientos, o

    miles de microprocesadores comerciales (MPP, Massively Parallel Processors). Existen gran interesen ellos, pero:

    El mercado no es muy grande comparado con UMA

    Las herramientas de programacin no estn maduras: Lenguajes de programacin, compiladores, etc

    No est claro el mecanismo de comunicacin, tipo NUMA (mem. Compartida), tipo MPM (mensajes), o hbridos (slo acceso remoto compartido a una pgina entera)

    Los MPM se estn expandiendo rpidamente, slo necesitan:

    Una librera (p.e. PVM, MPI) Una red, que puede ser la Ethernet estndar

    CLUSTERS

  • Taxonoma

    328 320293

    343

    254

    195

    10 21

    69112

    145

    206161 157131

    1758

    643

    93

    280

    50

    100

    150

    200

    250

    300

    350

    400

    1997 1998 1999 2000 2001 2002

    MPP

    Cluster

    Constellations

    SMP

    Tipos de sistemas usados en los 500 computadores ms rpidos del mundo

  • Taxonoma

    Tipos de procesadores con los que estn construidos los NOW - ClustersNOW (Network of Workstations)

  • Taxonoma

    Clasificacin en funcin de la granularidad Relacin entre el n de procesadores que tiene el

    sistema y la potencia de cada uno Grano grueso (coarse-grain)

    N relativamente pequeo de procesadores Procesadores de grandes prestaciones CRAY Y-MP, de 8 a 16 proc. de varios Gflops

    Grano fino (fine-grain) N grande de procesadores Procesadores de pocas prestaciones Slo van bien con aplicaciones de alta concurrencia Orientados a propsito especfico CM-2, 64 KProc. de 1 bit MasPar MP-1, 16 KProc de 4 bits

    Grano medio (medium-grain) Centenares de procesadores Procesadores de prestaciones normales en su da Puede usar procesadores baratos estndar CM-5, nCUBE 2 y Paragon XP/S

  • Taxonoma

    Un parmetro que da una idea de la granularidad es:

    Si la granularidad es grande Computador paralelo optimizado para ejecutar

    algoritmos que no requieren comunicaciones frecuentes

    Si la granularidad es pequea Computador paralelo optimizado para ejecutar

    algoritmos que requieren comunicaciones frecuentes

    bsicancomputaciunaparanecesitado

    bsicancomunicaciunaparanecesitado

    tt

    adGranularid =

  • 3. Multiprocesadores con memoria centralizada

    La coherencia en multiprocesadores UMA Protocolo de coherencia MSI Prestaciones de los protocolos de coherencia

    en UMA

  • Multiprocesadores con memoria centralizada

    Problemas que surgen El overhead por acceder a la memoria compartida

    es muy grande. Hay que usar cachs Debemos asegurar la coherencia de los datos en

    dichos dispositivos Cuando usamos un dato privado traerlo a cach Si accedemos a un dato compartido, hay que traerlo

    a cach, pero si otros procesadores tambin acceden al dato y se lo llevan a su cach, existirn varias copias distintas del mismo dato. Si algn procesador modifica el dato Problema de coherencia

    Solucin Intentar evitar las incoherencias mediante hard En UMA se usan protocolos de husmeo (snooping)

    Se pueden utilizar gracias a tener un bus nico y compartido de comunicacin

    Los controladores de cachs locales espan el bus para ver si circula algn dato de alguna lnea que tenga almacenada en su cach

    Los cachs deben de estar provistos de 2 puertos de acceso (p.e. replicando la memoria de etiquetas)

    Uno para el acceso del procesador Otro para que el controlador pueda comparar

    las direcciones que aparecen por el bus

  • Multiprocesadores con memoria centralizada

    Funcionamiento del acceso a un cach CB Acierto de lectura en cach: no sucede nada Acierto de escritura en cach

    Sacar el dato al bus, antes de escribir el dato, para informar al resto de procesadores de la escritura. stos actuarn en consecuencia

    Escribir el dato Fallo de lectura en cach

    Traerse la lnea correcta a cach, mediante una peticin al bus

    El resto de procesadores espan el bus. Si tienen dicha lnea ms actualizada que la memoria principal,

    Deben drsela a la CPU que la solicit Actualizarla en la memoria principal,

    quedando limpia y compartida La lnea a reemplazar se baja a memoria, en caso

    de que est sucia Fallo de escritura en cach

    Unin de los dos casos anteriores

    Si una cach es informada de una escritura de un dato que tambin contiene ella, tiene 2 posibilidades:

    Invalidacin en escritura Actualizacin de escritura o difusin

  • Multiprocesadores con memoria centralizada

    Invalidacin en escritura Todas las cachs que contengan tal lnea (con el dato

    escrito) , las invalidan Cuando quieran acceder a una lnea invlida, debern

    pedirla a memoria Pondrn la direccin en el bus La CPU (o la memoria principal en su caso) con el dato

    actualizado les responder Tras una escritura, slo existe una copia vlida de la

    lnea El comportamiento de un cache frente a otro es CB

    Actualizacin de escritura o difusin La CPU que escribe, difunde el dato y la direccin por

    el bus El resto de CPUs que las contienen la actualiza Tras una escritura, existen varias copias vlidas de la

    lnea El comportamiento de un cache frente a otro es WT

    Hoy en da slo se usa el primer mtodo, ya que reduce el AB que consume, de forma anloga al CB:

    Varias escrituras por la misma CPU en la misma lnea Varios accesos al bus en el segundo mtodo En el primer mtodo, tras el primer acceso la CPU sabe

    que se invalidaron el resto de copias no accede ms

  • Multiprocesadores con memoria centralizada

    Protocolo de invalidacin CB (MSI) Usado en la Silicon Graphics 4D El estado de una lnea puede ser:

    Modified (M): La CPU ha invalidado la lnea en los otros cachs Ha modificado el dato y la lnea es suya (es exclusiva)

    Shared (S): No se ha detectado ninguna escritura sobre la lnea La lnea es compartida por todos los procesadores

    Invalid (I): Una CPU escribi en ella y le obligo a invalidarla

    El procesador hace dos tipos de peticiones al cach, lecturas (PrRd) y escrituras (PrWr)

    Si el dato no est en cach Una lnea actual puede que sea reemplazada Si el estado de la lnea a reemplazar es M, deber ser

    escrita en memoria principal

    El bus permite las siguientes transacciones Bus Read (BusRd):

    Generada por un PrRd que falla en el cach El controlador del cach pone la direccin en el bus y pide

    una copia de la lnea que no modificar El sistema de memoria suministrar el dato El procesador espera un dato de respuesta como resultado

  • Multiprocesadores con memoria centralizada

    Bus Read Exclusive (BusRdX) Generada por un PrWr para un bloque que o no est en el

    cach, o si est pero no en estado M El controlador del cach pone la direccin en el bus y pide

    una copia exclusiva que modificar El sistema de memoria (prob. otra cach) le dar la lnea El resto de cachs invalidarn dicha lnea La escritura puede ser realizada El procesador recibir un ACK como resultado

    Bus Write Back (BusWB) Generada por un controlador de cach cuando hay un CB El procesador no sabe nada de esta transaccin, luego no

    espera respuesta El controlador pone la direccin y la lnea en el bus La memoria se actualiza

  • Multiprocesadores con memoria centralizada

    La mquina de estados es la siguiente

    Ejemplo de utilizacin del protocolo MSI

    Flush = enviar la lnea modificada al bus, para guardarla en memoria principal y pasarla a otro procesador, en caso de que la solicite

    Transacciones obtenidas por husmeo

    Transacciones generadas por el procesador

  • Multiprocesadores con memoria centralizada

    Prestaciones del husmeo (snooping) de cach

    No es fcil ver la influencia de todos los factores, pero: Uso masivo de datos mayor influencia Uso limitado de datos mayor influencia

    Aumento del nmero de procesadores El Mr es aproximadamente el mismo El Mr,coherencia crece, puesto que la cantidad de cach

    total del sistema es mayor En general, los fallos de coherencia no son una carga

    excesiva en el sistema

    coherenciaruniprocrr MMM ,, +=

    conflictorcapacidadrforzosoruniprocr MMMM ,,,, ++=

    uniprocrM ,coherenciarM ,

  • 2.4 Multiprocesadores con memoria distribuida

    Coherencia en multiprocesadores NUMA Directorio distribuido Protocolo simple del directorio: USX Prestaciones de los protocolos de coherencia en

    NUMA

  • Multiprocesadores con memoria distribuida

    Multiprocesadores NUMA Memoria distribuida Espacio de direcciones compartido AB a memoria es N veces el AB de un procesador Escalabilidad obvia de la memoria y del cach Datos pueden ser indistintamente locales o remotos Problemas al intentar cachear datos remotos

    No existe un medio compartido y comn para todos No es posible hacer snooping

    Solucin al problema de coherencia La solucin hard es ms compleja que en UMA Han existido mquinas con control de coherencia por

    software (mquinas NC, NonCoherent). CRAY T3D Los datos compartidos se declaran no cacheables Si el compilador/programador detecta que un dato

    compartido ser ledo muchas veces, y no escrito, realiza un cacheo por software

    Copia el dato en una variable local privada Trabaja con esta copia hasta que por software sepa

    que la copia es mala (otro procesador la modifica)

  • Multiprocesadores con memoria distribuida

    Desventajas de las mquinas NC Detectar la posibilidad de cacheo (compilador)

    Posible en bucles for simples Imposible en accesos a memoria dinmica

    Slo se sabe la direccin en tiempo de ejecucin El compilador no se puede arriesgar Los declara No Cacheable Perder prestaciones

    Se pierde tiempo en hacer la copia de la variable Cuando se cachean variables remotas de una sola

    palabra se pierde la ventaja de la localidad de datos Estos dos problemas se acentan debido a la alta latencia

    de la red CRAY T3D

    tiempo de acceso a cach = 2 ciclos tiempo de acceso a memoria remota = 150 ciclos

    Solucin Hard Incluir algn medio compartido para el control de la

    coherencia En los NUMA el n de procesadores es muy alto Si el n de procesadores es alto saturacin del medio

    Distribuir sistema de coherencia. Directorio distribuido

  • Multiprocesadores con memoria distribuida

    Directorio distribuido Creamos en cada nodo del NUMA un directorio

    Aadimos una entrada por cada lnea de memoria Aadimos informacin sobre cada lnea (estado,

    ubicacin y modificaciones) Cada lnea de cach almacena su estado como en snoop

    Al cach slo le importa la coherencia con los otros Le da igual que la lnea sea de la memoria local o remota

    El estado de una lnea en el directorio puede ser: S (Shared)

    Otros nodos la han ledo, pero no modificado La tienen almacenada en su cach local Necesitamos saber que nodos la tienen. Aadir un

    bit por cada nodo 1 comparte la lnea (0 no). Vector de comparticin

    X (Exclusive) Slo un procesador tiene la copia actualizada

    (propietario). Ha escrito sobre ella U (Uncached)

    Ningn procesador la ha cacheado El controlador del directorio

    modifica el estado de la lnea en memoria segn le vengan mensajes de otros procesadores

    enva mensajes a otros procesadores, si fuera necesario

  • Multiprocesadores con memoria distribuida

    Por ejemplo, si Pj escribe en una lnea compartida alojada en Pi

    Pj debe enviar un mensaje de escritura a Pi Pi lee del vector de comparticin los Premotos activos

    Les comunica que invaliden dicha lnea Invalida la lnea de su cach, en caso de que est Tambin se lo comunica a Pj, que lo usa como ACK

    Protocolo simple del directorio: USX Sea Pj un nodo con su directorio. Las peticiones que

    modifican el estado de una lnea suya son: RM. Fallo de lectura de un Pi (Pi puede ser Pj) WM. Fallo de escritura de un Pi (Pi puede ser Pj) WH. Acierto de escritura DataCB. Actualizacin de lnea por CB

    Usaremos la siguiente notacin en la mquina (peticin)procesador Accin = entrada en el vector de comparticin D.Rp = envo de la lnea Inv = mensaje de invalidacin de lnea Fetch = mensaje para provocar el volcado de la lnea

    almacenada en cach a memoria. Cambia el estado de la lnea en el cach Shared

    vr

  • Multiprocesadores con memoria distribuida

    La mquina sera:

    Prestaciones de los directorios distribuidos Es anlogo al snooping

    Los fallos de coherencia se controlan por el directorio de la memoria de cada procesador (y no por el cach)

    El aumento del tamao de cach no har decrecer mucho el Mr,coherencia, pues la memoria es la misma. Sin embargo el cach expulsar menos lneas lo cual es beneficioso

    coherenciaruniprocrr MMM ,, +=

    U S

    X

    { }ip

    i

    Pv

    RDInvWM

    =

    r;.

    ;

    { }ipi

    Pvv

    RDRM

    +=

    rr;.

    { }ipi

    Pv

    RDRM

    =

    r;.

    { }ip

    i

    Pv

    RDFetchInvWM

    =

    r;.

    ;/

    { }=vr

    { }ipi

    Pv

    RDWM

    =

    r;.

    { }ip

    i

    Pvv

    RDFetchRM

    +=

    rr;.;

    { }= vDataCB r

  • Redes bsicas de interconexin Introduccin Redes de interconexin dinmicas (indirectas) Redes de interconexin estticas (directas)

    Mecanismos de rutado Coste de la comunicacin

  • Redes bsicas de interconexin Introduccin

    Entre la ms sencilla (bus compartido) y la ms compleja (totalmente conectada), existe una gran diversidad de redes, aunque slo 7 u 8 han tenido xito comercialmente

    Compromiso entre el coste y el rendimiento Parmetros que influyen en el coste

    N de conmutadores (switches) N de procesadores por conmutador (grado) N total de lneas (Nenlaces * Anchura en bits) Longitud fsica de los enlaces Implementacin real (ms simple 2D que 3D)

    Parmetros que influyen en el rendimiento Dimetro de la red

    Mxima distancia entre cualquier dos procesadores de la red. La distancia entre dos procesadores es definida como el camino ms corto (en trmino de nmero de enlaces) entre ellos. Puesto que la distancia determina el tiempo de comunicacin, las redes con pequeos dimetros son mejores

    Ancho de biseccin y AB de biseccin: Ancho de biseccin de una red es el nmero mnimo de canales a

    cortar para dividir la red en dos mitades iguales. El AB biseccin es el producto del ancho de biseccin por el AB de cada canal. Este parmetro nos indica el ancho de banda posible entre las dos mitades

    AB agregado normalizado Nmero mximo de comunicaciones simultaneas multiplicado por

    el AB de cada canal

  • Redes bsicas de interconexin Posibilidad de contencin

    Un nodo puede tratar una cantidad finita de informacin, luego puede darse el caso de que se congestione. Esto provocara una contencin de datos que sern servidos cuando se pueda retraso

    Contencin en el origen Contencin en el destino

    Rendimiento variable en funcin del patrn de comunicacin (reconfigurable)

    Dependiendo de si conocemos o no el patrn, podemos optar por un tipo u otro de red. Usaramos la que nos ofrezca mejores prestaciones

    Tolerancia a fallos Una red adaptada a un algoritmo, puede fracasar

    estrepitosamente si un nodo se estropea, lo cual es fcil si el nmero de nodos es alto

    Conectividad Es una medida de la multiplicidad de caminos entre dos

    nodos. Se puede definir como el mnimo nmero de enlaces que hay que eliminar de una red para romperla en dos redes desconectadas. Esta medida es importante, puesto que indica como evitar la contencin si existe un enlace congestionado (si existe rutado inteligente)

    Adaptacin a distintos algoritmos Una red no debe de estar optimizada exclusivamente para

    un determinado algoritmo

  • Redes bsicas de interconexin Han surgido dos filosofas en las redes

    Redes dinmicas (indirectas) Aleja los conmutadores (switches) de los procesadores y

    los centraliza en agrupaciones configurables dinmicamente, para amoldarse a los requerimientos de comunicaciones de las aplicaciones

    Redes estticas (directas) Ubica un conmutador por cada nodo e interconecta esos

    conmutadores Las conexiones directas son punto a punto y no

    pueden ser modificadas durante la ejecucin de un programa

    De forma que procesador y conmutador se dibujan juntos

    Mientras no se diga lo contrario los conmutadores son bidireccionales

    Una red es simtrica si su topologa es la misma observndola desde cualquier nodo. Estas son ms fciles de implementar y de programar

    P1

    P2

    P3

    P1

    P2

    P3

    Conmutadores

  • Redes bsicas de interconexin Redes de interconexin dinmicas (indirecta)

    Tpicamente usadas para NUMA Los switches se alejan del procesador El camino entre un procesador y otro, se realiza a

    travs de varios switches Los tipos ms comunes son:

    Red de barras cruzadas (CrossBar) Red basada en Bus comn rboles Red multietapa

  • Redes bsicas de interconexin Red de barras cruzadas (CrossBar) [NUMA]

    Es la red dinmica con mayor AB Mayor capacidad de interconexin Latencia constante, independiente del nmero de nodos

    Es la red dinmica de mayor coste Para cada dos nodos hay un conmutador que puede

    proporcionar una conexin dedicada entre ellos

    Los mdulos etiquetados como Mi pueden ser mdulos de memoria o procesadores

    En el caso de comunicar procesadores con memoria Si la memoria no es multipuerto, slo podr servir a un

    procesador a la vez Si varios procesadores solicitan acceder al mismo mdulo

    La red debe resolver el conflicto El comportamiento de cada conmutador es similar al

    de un bus Sin embargo, la red permite que un procesador pueda

    generar una secuencia de direcciones para acceder simultneamente a varios mdulos

    canalABNAB *Biseccin =

  • Redes bsicas de interconexin Red basada en Bus [UMA]

    Tiene el AB ms limitado de todas las redes dinmicas Slo un dispositivo puede usar el bus en un momento

    determinado Tiene el menor coste de todas las redes dinmicas El emisor de la informacin es llamado maestro y el

    receptor esclavo Existe un arbitraje del bus que se encarga de resolver los

    posibles conflictos de acceso

  • Redes bsicas de interconexin Red multietapa [NUMA, MPM]

    Formada por una serie de etapas de conmutadores (switches) que estn conectados con los conmutadores de las etapas adyacentes mediante conexiones estticas

    Conmutador a x b es un dispositivo con a entradas y b salidas

    normalmente a y b son potencias de 2 (no siempre) Una entrada puede conectarse a una o ms salidas Una salida slo puede estar conectada a una entrada un tipo especial sera el 2x2

    Redes con gran flexibilidad. Disponen de la capacidad de reconfigurarse para establecer dinmicamente las conexiones deseadas entre las entradas y las salidas

  • Redes bsicas de interconexin Las redes multietapa difieren en:

    Tipo de conmutadores que utilizan los binarios son los ms usados

    Clase de patrones de conexin entre etapas barajamiento perfecto mariposa conexin en cubo, etc

    Las redes multietapa ms utilizadas son las redes omega o variaciones de estas

    Concepto de permutacin barajamiento perfecto () El dominio es el conjunto de los enteros entre 0 y n-1 Su definicin es:

    donde es la representacin binaria del entero x

    0 000 000 01 001 001 12 010 010 23 011 011 3 3 011 110 64 100 100 45 101 101 56 110 110 67 111 111 7

    ( ) 102021 = dddd xxxxxx LL021 xxx dd L

  • Redes bsicas de interconexin Redes Omega

    Patrn de conexin de barajamiento perfecto Conmutadores binarios Existe un nico camino entre cada entrada y cada salida Dados N nodos, necesitamos etapas, con N/2

    conmutadores cada etapa coste Cada conmutador tiene dos configuraciones posibles, una

    directa y otra cruzada Fcil algoritmo de encaminamiento

    Cada paquete va precedido de direccin del destino El conmutador de la primera etapa lee el primer bit.

    Si es 0, el paquete es enviado por la parte superior del conmutador

    La siguiente etapa coger el siguiente bit Permiten difundir datos de una fuente a muchos nodos La red Omega es una red con bloqueo

    Puede implementar caminos de los posibles

    N2log ( )NN 2log

    2NN !N

  • Redes bsicas de interconexin Existen otros tipos de redes como las Benes, Banyan,

    Baseline, Mariposa, etc.

    rboles dinmicos Ya se vern en las redes estticas Los procesadores se encuentran en los nodos terminales

    Construccin recursiva de una red baselineRed Omega 16x16

    rbol grueso dinmico

    canalABNAB *2Biseccin

    =

  • Redes bsicas de interconexin Redes de interconexin estticas (directas)

    Construccin de sistemas de computacin destinadas a aplicaciones en las que se puedan predecir los patrones de comunicacin

    Cada procesador dispone de su propio conmutador (switch), adaptado al tipo de red en el que se usar

    Nodo = Procesador + conmutador

    Las distintas topologas surgen de las distintas formas de conectar los nodos. Hay muchos tipos:

    Totalmente conectada Anillo Malla o rejilla Toro 2D rbol Hipercubo k-ary d-cubo

  • Redes bsicas de interconexin

    Red totalmente conectada

    Es simtrica Una conexin entre cada dos nodos. Cada conmutador

    del nodo debe suministrar N-1 conexiones con el exterior, ms una conexin con su propio procesador

    Mximo rendimiento Mucho coste

    Nmero de enlaces =

    Dimetro = 1 Grado = N - 1

    2)1(

    2=

    NNN

    canalcanalBiseccin ABNAB

    NNNAB *

    4*

    22

    22

    2

    2

    =

    =

  • Redes bsicas de interconexin

    Red anillo o token-ring

    Es simtrica Nmero de enlaces = Nmero de nodos = N

    Dimetro = Grado = 2 Un caso especial son los anillos cordales, que consiste

    en aumentar el grado de los nodos

    2N

    canalBiseccin ABAB *2=

  • Redes bsicas de interconexin

    Red malla o rejilla

    No es simtrica Son redes muy utilizadas Dimetro = 2*(Dim_menor-1) Grado interno = 4; Grado esquinas = 2; Grado externo=3 Existen variaciones en las mallas en funcin del tipo de

    conexin de los nodos externos

    canalBiseccin ABmenorDimAB *_=

    canalBiseccin ABmenorDimABGrado

    menorDimD

    SimtricaNoIlliacMalla

    *_24

    1_

    ==

    =

    canalBiseccin ABmenorDimABGrado

    menorDimD

    simtricaSiDToro

    *_24

    2_*2

    2

    ==

    =

  • Redes bsicas de interconexin

    Red en rbol

    No es simtrica En estas redes hay un nico camino entre cualquier par

    de procesadores Un tipo especial de rboles son los binarios Si k es el nmero de niveles, Dimetro = Grado mximo = 3

    Una estrella es un rbol cuyo nodo raz tiene grado N-1. Es impracticable para grandes nmeros de nodos

    canalBiseccin ABAB *1=

    12 = kN( )1*2 k

    canalBiseccin ABNAB

    NGradoD

    simtricaNo

    *2

    12

    ==

    =

  • Redes bsicas de interconexin

    Red hipercubo

    Es simtrica n-cubos binarios, es decir, dos elementos en cada

    dimensin d. Esta red consta de nodos Dimetro = d Los enlaces son la unin entre procesadores que se

    diferencian en un bit en su numeracin binaria El grado es d, y crece linealmente con el nmero de

    dimensiones Poca escalabilidad Difcil empaquetamiento de hipercubos de alta

    dimensionalidad

    canalBiseccin ABNAB *2

    =

    dN 2=

  • Redes bsicas de interconexin

    Red k-ario d-cubo

    Es simtrica Es una generalizacin de muchas de las vistas

    d es la dimensin del cubo k es el nmero de nodos en cada dimensin

    El nmero de nodos viene dado por

    Dimetro =

    El grado es Tradicionalmente

    d-cubos k-arios de pocas dimensiones se denominan Toros

    d-cubos binarios de alta dimensionalidad se denominan hipercubos

    canald

    Biseccin ABkAB **21=

    dkN =

    2kd

    d2

    3-cubo 4-ario

  • Redes bsicas de interconexin Mecanismos de rutado en redes estticas

    Estos mecanismos determinan el camino que debe tomar un mensaje para atravesar la red y llegar a su destino

    Toman como datos de entrada Nodos fuente y destino Informacin sobre el estado de la red

    Generan una o ms rutas Los podemos clasificar en funcin del tipo de ruta que

    generan En funcin de la longitud de la ruta

    Mnimos: Siempre selecciona una de las rutas ms cortas. No tiene en cuenta congestiones de la red

    No mnimos: Pueden suministrar la ruta ms larga pero para intentar evitar las congestiones de la red

    En funcin del uso de la informacin sobre el estado de la red

    Deterministas: Determinan una nica ruta, basndose slo en la fuente y el destino (siempre va por el mismo camino). No tienen en cuenta la informacin sobre el estado de la red. Puede provocar un uso desigual de los recursos y provocar congestiones (los mnimos seran de este tipo)

    Adaptativos: Usan la informacin sobre el estado de la red para determinar la ruta del mensaje. Detectan congestiones e intentan evitarlas

  • Redes bsicas de interconexin Coste de la comunicacin en redes estticas

    La latencia de comunicacin (tcom) es uno de los parmetros ms importantes a tener en cuenta.

    Tiempo en preparar el mensaje para su transmisin Tiempo que dicho mensaje tarda en atravesar la red

    Usaremos los siguientes parmetros: m : Tamao, en palabras de red, del mensaje l : N de enlaces que debe atravesar el mensaje ts (Tiempo de inicio): Tiempo que tarda el procesador

    emisor en preparar el mensaje Empaquetar el mensaje (aadir cabecera,

    informacin de correccin de errores, etc.) Clculo de la ruta (si la red no sabe hacerlo) Tiempo en establecer una interfase entre el

    procesador local y el router. th (Tiempo por salto): Tiempo tomado por la cabecera del

    mensaje en viajar entre dos procesadores conectados directamente en la red

    Tiempo que tarda el algoritmo de rutado en ejecutarse

    Tiempo en atravesar el conmutador tw (Tiempo de transferencia por palabra): Tiempo que

    tarda una palabra en atravesar el enlace. Si el ancho de banda del canal es r

    palabras/segundos, cada palabra tarda tw = 1/rsegundos en atravesar el enlace

    Podramos tener en cuenta otro tiempo (tr), que sera igual que (ts), pero en el receptor. Nosotros vamos a obviarlo

  • Redes bsicas de interconexin Dos factores que influyen claramente en el tcom

    Topologa de la red Tcnicas de conmutacin

    Vamos a estudiar dos tcnicas de conmutacin usadas frecuentemente en computadores paralelos. Las tcnicas de rutado que utilizan dichas tcnicas son llamadas:

    Store-and-forward Cut-trough (Fragmentado o encadenado)

    Store-and-forward (Reenvo) Cada nodo almacena todo el mensaje entero antes de

    reenviarlo al siguiente nodo

    En caso de que exista congestin (bloqueo) hay que

    sumarle un tiempo de espera (te). La congestin se puede producir en el spool de FIFO del conmutador, o en espera para que se libere un nodo

    Cut-trough (Fragmentado o encadenado) Encadena los envos entre los distintos enlaces. Por ejemplo, se divide el mensaje en paquetes de tamao

    mp, de forma que su transferencia sea igual a th, es decir, mp* tw = th

    P0

    P1

    P2

    tiempo

    ( )whscom tmtltt ++=

  • Redes bsicas de interconexin

    Para este envo encadenado se suele hacer, por simplicidad, un tnel (wormhole) desde el origen al destino, que queda abierto durante toda la transmisin (lo cual puede provocar congestin)

    El primer paquete lleva informacin del destino y del nmero de paquetes que le siguen

    El conmutador queda abierto contando los paquetes hasta que pase el ltimo

    Con esto se simplifican los conmutadores, ya que no necesitan grandes buffers, ni inteligencia de rutado

    ( ) wpppw whscom tmmmtmtmtltt

    ++=++=

    321

    P0

    P1

    P2

    tiempo

    th mp1 mp2 mp3

    th mp1 mp2 mp3

    th mp1 mp2 mp3

  • Programacin y aplicaciones Programacin de sistemas multiprocesadores

    SISD SIMD UMA y NUMA MPM

    Aplicaciones de sistemas multiprocesadores Clasificacin en funcin del Patrn de comunicaciones

  • Programacin y aplicaciones Programacin de sistemas multiprocesadores

    Vamos a ver distintas filosofas de programacin, de un mismo programa, dependiendo del tipo de mquina sobre la que trabajemos

    El programa realizar el clculo de la suma de los componentes de un vector a[], de 64K nmeros en F.P.

    Las mquinas que analizaremos sern: SISD SIMD UMA y NUMA (software compatible) MPM (espacio de direcciones disjunto)

    SISD (uniprocesador) Slo existe una U.C., y una U.F. (no entraremos en SE) Slo puede hacer una suma a la vez 64K sumas Lo ms sencillo sera:

    suma = 0;for (i=0;i

  • Programacin y aplicaciones Nos daramos cuenta de la dependencia de la variable

    suma entre iteraciones (RAW) Eliminaramos instrucciones de Overhead No podramos reordenar el cdigo en ensamblador.

    Tendramos que optar por una de las siguientes soluciones Usar acumuladores y sumar al final Sumar la mitad derecha del vector sobre la izquierda Sumar elementos consecutivos (forma de rbol)

    Los dos ltimos mtodos requieren de otro vector auxiliar o destruir el original

    tejec= (64K * tejec. 1 suma) + Overhead SIMD

    Cuando tenemos mltiples procesadores (o elementos de procesado) podemos hacer varias sumas en paralelo

    Supongamos un SIMD 1024 procesadores simples que pueden ejecutar una suma Cdigo nico U.C. nica Memoria de datos mltiple

    64K sumas 1024 vectores del tipo a1[0-63] Los repartira el procesador frontal o la U.C.

    P1 a1[0]= a[0] P2 a1[0]= a[64] P3 a1[0]= a[128]

    M

  • Programacin y aplicacionesfor (j=0;j
  • Programacin y aplicaciones El envo de datos depende

    La latencia La ocultacin de las latencias La topologa de la red Del AB no depende mucho, puesto que no hay envo

    masivo de datos El primer factor parece decisivo, pero el segundo puede

    ocultarlo. Luego parece que el factor ms decisivo es el tercero, es decir, la topologa de la red

    Imaginemos un bus comn a todo nodo intentarn enviar datos a la vez 512 procesadores colisin mltiple Psimo

    Parece claro que una red en forma de rbol sera la ms adecuada (o bien para la suma de las dos mitades, o para los consecutivos)

    El problema surge de disponer una red adaptada a un determinado algoritmo. La misma red puede no ser muy ptima para otro tipo de algoritmo

    UMA y NUMA Supongamos un sistema de 16 procesadores Al software no le importa si la memoria est centralizada

    o distribuida Podemos hacer sumas en paralelo, concretamente

    64K/16 sumas El cdigo aunque sea igual para todos los procesadores,

    debe repetirse 16 veces. Debera existir un procesador (uno de los 16 u otro especializado) que cargue el programa, cree 16 threads y los reparta

    El array ocupa 256Kbytes que estar en un nico espacio de direcciones, pero no sabemos donde fsicamente

  • Programacin y aplicaciones Segn vayan usndolos los procesadores, se los traern a

    su cach o a su memoria local (si existe) Por localidad, interesa que cada procesador trabaje con

    datos consecutivos Para realizar el cdigo hacemos:

    dividimos el array en 16 trozos consecutivos (uno por procesador)

    Creamos 16 variables suma porque la memoria es compartida y no pueden confundirse los distintos suma de cada procesador

    El hard debe garantizar el suministro de los elementos del array, ya estn locales, remotos centralizados. Tambin garantizar la coherencia de datos

    No hace falta enviar recibir datos porque es memoria compartida

    Los 16 cdigos threads que se emiten son:suma[Pn]=0 /* Pn= n de 0 a 15 del procesador*/for (i[Pn]=4K*Pn ; i[Pn]

  • Programacin y aplicaciones

    Pero existe un problema de sincronizacin Cada procesador es independiente

    Tiene su propia U.C. Tiene sus propias U.F. Ejecuta a su ritmo

    Nadie garantiza que todos los procesadores terminen sus sumas al mismo tiempo

    Procesadores de distintas velocidades Atencin de I/O, etc.

    Han de coordinarse los procesadores explcitamente mediante alguna funcin de sincronizacin. El procesador consumidor del un dato, debe leerlo cuando ya haya sido actualizado por el otro procesador

    Una forma es poner una funcin de barrera, de forma que hasta que no lleguen todos a ella no contina ninguno la ejecucin funcin synch() la cual puede emularse con soft o implementarse con hard especial

    P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15

    Suman Ociosos

    P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15

    Suman Ociosos

    M

  • Programacin y aplicaciones Se podra escribir un cdigo distinto para cada

    procesador: P0, P1, ... P15 Para P8, P9, ... P15

    suma[Pn]=0; /* Pn= n de 0 a 15 del procesador*/for (i[Pn]=4K*Pn ; i[Pn]

  • Programacin y aplicaciones Para P0

    Igual que el caso anterior

    synch barrera (Pn, Pn+1); /* espera a que termine el procesador Pn+1*/

    suma[Pn]+=suma[Pn+1];

    MPM Memoria disjunta y distribuida Supongamos 64 procesadores 1K elemento por Proc. Desde el punto de vista de la memoria de datos

    Similar al cdigo SIMD Existen distintos espacios de memoria Diferencia: en SIMD slo exista un cdigo

    Ahora el ejecutable debe, generar 64 procesos distintos repartir 1K elemento por procesador, ya que van a ir a

    espacios de direcciones distintos Tambin existirn envos y recepciones de datos

    mediante mensajes sincronizacin automticasuma=0;for (i=0;i

  • Programacin y aplicaciones Para realizar las sumas finales, despus del cdigo

    anterior haremosPn_medio = 64;lim_sup = 64;do{

    Pn_medio = Pn_medio/2;if(Pn >= Pn_medio && Pn < lim_sup)

    enva(suma,Pn - Pn_medio);if(Pn < Pn_medio)

    suma = suma + recibe();lim_sup = Pn_medio;

    } while(Pn_medio != 1);

    Cada procesador receptor de un dato estar parado hasta que le llegue el dato que espera (slo viene uno de un procesador concreto) nos sirve de sincronizacin

  • Programacin y aplicaciones Aplicaciones de sistemas multiprocesadores

    El mayor obstculo de la expansin de los MIMD son las aplicaciones

    Existe dificultad para desarrollar estas aplicaciones Por su grado de paralelismo intrnseco Por las herramientas para procesarlas o escribirlas

    (lenguajes, compiladores, paralelizadores, etc.) Por su escasez Las distintas arquitecturas requieren distintos algoritmos

    para resolver el mismo problema con eficiencia y un conocimiento del hard concreto para optimizar el rendimiento

    Adems, en general, las aplicaciones corren bastante bien si el nmero de procesadores es pequeo, y pierde prestaciones por procesador cuando el nmero de procesadores crece

    Estudiaremos dos tipos de patrones de comunicacin Todos-con-todos (all-to-all)

    FFT (fast fourier transformation) Adyacente

    Ocean

  • Programacin y aplicaciones Patrones de comunicacin bsicos

    todos-con-todos (all-to-all) Existe la necesidad de que todos los procesadores se

    comuniquen con todos Por ejemplo, el producto de matrices Cada procesador trabaja con un trozo de A, pero entonces

    le toca calcular Supongamos que la divisin se hace por grupos de

    filas (lo normal sera hacerlo por bloques cuadrados, pero ms difcil de ver)

    P1 tendra que pedir la columna 1 para realizar el clculo del producto con todas sus filas. A continuacin pedira la columna 2, y as sucesivamente

    Al final, P1 ha pedido todos los datos al resto de procesadores

    El orden de comunicacin de cada procesador es n/psiendo n el nmero de datos totales y p el nmero de procesadores

    Un ejemplo claro de este tipo de patrn es el clculo de la FFT (fast fourier transformation)

    AAA =22A

    P1

    P2

    Pp

    M

    P1

    P2

    Pp

    M

    A A

    1 Col

    M2 fila1 fila

  • 44

    44

    8 8

    816

    8

    0

    Programacin y aplicaciones Adyacente

    Un procesador slo necesita comunicarse con los nodos adyacentes (depender de la aplicacin con cuales de ellos se comunicar)

    Por ejemplo, divisin en elemento finitos Cada procesador trabaja con un trozo n/p de datos (n =

    datos totales, p = n de procesadores) Ejemplo, supongamos que la ecuacin a resolver

    mediante elementos finitos es la media aritmtica de los cuatro vecinos

    El algoritmo debera ir haciendo esa ecuacin para todas las celdas e iterar. Sean por ejemplo 9 celdas con condiciones de contorno, valor 16 para los 4 lados y 0 para el centro

    41,,1,11,

    ,++ +++= jijijijiji

    aaaaa

    8

    8

    88

    10

    1016

    10

    0

    10

    1 iteracin

    9

    9

    99

    12

    1216

    12

    0

    12

    2 iteracin

    Etc, etc Valores esquinas = 13,333Valores centrales = 10,666...

  • Programacin y aplicaciones Tendremos en cada procesador n/p datos, pero solo

    comunica los cuatro lados , luego el orden de comunicacin es

    Cuantos ms procesadores, habra menos elementos finitos internos dentro de cada procesador que son los que no necesitan comunicacin. Luego cuanto ms procesadores peor para la comunicacin

    Ejemplo de este tipo de algoritmos hay muchos OCEAN (simulacin del comportamiento del

    ocano) Clculo de la propagacin del calor Cualquier algoritmo que use elementos finitos

    Patrones mixtos Ley de la Gravedad

    pn*4pn