Arquitecturas Paralelas MIMD - · PDF filesola copia del sistema operativo (con planificador...

Click here to load reader

  • date post

    30-Sep-2018
  • Category

    Documents

  • view

    216
  • download

    0

Embed Size (px)

Transcript of Arquitecturas Paralelas MIMD - · PDF filesola copia del sistema operativo (con planificador...

  • Arquitecturas ParalelasMIMD

    William Stallings, Organizacin y Arquitectura de Computadores, 5ta. ed., Captulo 16: Procesamiento Paralelo.

    Andrew S. Tanenbaum, Organizacin de Computadoras 4ta. ed., Captulo 8: Arquitecturas de computadoras paralelas.

    Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced Computer Architecture and Parallel Processing. Willey.

  • Taxonoma de Flynn

    MPP

  • Taxonoma de Flynn-Johnson

  • Clasificacin MIMD Tanenbaum

  • Arquitecturas MIMD

    Multiprocesadores Multicomputadoras

  • MultiprocesadoresIntroduccin

    VENTAJASDatos, sincronizacin y coordinacin usando variables globales. Modelo simple de programacin. Espacio nico de memoria. Una sola copia del sistema operativo (con planificador adecuado). Threads. Los sistemas operativos modernos coordinan la distribucin de los recursos. Es fcil mover procesos entre procesadores. Menos espacio. Menos potencia. Ms estable.

    DESVENTAJASPerformance de la memoria. Se soluciona con caches, pero aparece el problema de la coherencia de caches. La red de interconexin es complicada (acceso a memoria). Dinmica: bus, crossbar o multistage. Se satura rpidamente. Soporta pocos procesadores (16-64). Poco escalables.

  • MultiprocesadoresClasificacin

    Lar arquitecturas multiprocesador pueden clasificarse segn la estrategia de distribucin de la memoria compartida, siempre con un nico mapa de memoria:

    UMA (o SMP): Uniform Memory Access (o Symetric MultiProcessor)

    NUMA: Non Uniform Memory Access

    COMA: Cache Only Memory Architecture

  • MultiprocesadoresUMA (SMP)

    La organizacin con bus es la ms utilizada en multiprocesadores multiple core. En esta categora entran tambin las organizaciones con memoria multipuerto (no escalable). La memoria compartida es accedida por todos los procesadores de la misma forma en que un monoprocesador accede a su memoria. Todos los procesadores son similares y tienen capacidades equivalentes. Todos los procesadores tienen el mismo tiempo de acceso a cualquier posicin de memoria. Comparten I/O.

    Redes: multipuerto, bus o crossbar. Ej: Sun Starfire, Intel Xeon/Pentium/Core2.

  • MultiprocesadoresNUMA

    Utiliza (como SMP) un nico espacio de direcciones, pero en este caso cada procesador es dueo de una parte de la memoria, a la cual puede acceder ms rpido. Utiliza pasaje de mensajes escondido. El problema de coherencia es ms complicado. El sistema operativo (ms sofisticado) puede ayudar mediante migracin de pginas. Sin coherencia de cache, multicomputador.

    Redes de interconexin: tree, bus jerrquico.Ejemplos: SGI Origin 3000, Cray T3E, AMD Opteron.

  • MultiprocesadoresCOMA

    Como en NUMA, cada procesador tiene una parte de la memoria, pero es slo cache. El espacio de memoria completo es la suma de los caches. Utilizan un mecanismo de directorio distribudo.

    Ejemplo: KSR-1.

  • MultiprocesadoresSMP vs. NUMA

    .

  • MultiprocesadoresINTEL Pentium III

    .

  • MultiprocesadoresAMD Opteron (Hypertransport)

    .

    Hypertransport Consortium: ADM, IBM, Alliance, Apple, Cisco, Sun, Transmeta.NO INTEL! Sigue con bus.

  • MultiprocesadoresIBM POWER5 (Fabric Switch)

    .

  • MultiprocesadoresIntel (Multicore - Bus)

    .

  • MultiprocesadoresAnlisis de SMP basado en bus

    El bus es la red ms simple para memoria compartida. Es un medio compartido, con arbitraje y capacidad de direccionamiento. La arquitectura bus/cache elimina la necesidad de memorias multipuerto. El principal problema es la saturacin del bus. Depende fuertemente de la eficiencia del hardware de cache (debe minimizarse el nmero de veces que el procesador necesita acceder al bus). Depende tambin de las caractersticas del programa de aplicacin.

    Ejemplo.I=1, B=100MHz, V=300MIPS, h=90%. Resulta N99%.

    ( )hVBIN

    1

    N: nmero de procesadoresh: hit rate del cache (1-h): miss rateB: ancho de banda del bus [c/s]I: duty cycle del procesador [fetch/c] uperesc>1V: velocidad pico del procesador [fetch/s] B.I: ancho de banda efectivo [fetch/s]

    N procesadores a velocidad V producen N(1-h)V fallos, entonces N(1-h)V

  • MultiprocesadoresCoherencia de cache

    Existen mltiples copias de los datos en diferentes caches. Si un procesador modifica su copia y los dems caches no se actualizan se producirn errores en el resultado final. Se utilizan distintos algoritmos para mantener la coherencia.

    REM Coherencia cache-memoria:a) write-through: la memoria se actualiza inmediatamente.b) write-back: se actualiza cuando se reemplaza el bloque.

    Coherencia cache-cache:a) write -update: actualizacin inmediata.b) write-invalidate: al modificar setea el dirty-bit y se queda con la nica copia vlida. Los dems deben esperar la actualizacin. (PowerPC y PII, protocolo MESI)

    Existen cuatro combinaciones. La combinacin a-a satura rpidamente.

  • MultiprocesadoresProtocolos de coherencia de cache

    a) Protocolos de sondeo (snooping protocols): observan la actividad del bus y ejecutan, mediante broadcasts, los pasos necesarios para mantener la coherencia. Costoso en terminos de bw. Quien escribe avisa con un broadcast (a todos). Todos los procesadores sondean el bus para detectar modificaciones que le incumban.b) Protocolos de directorio (directory based protocols): Los comandos de actualizacin se envan slo a los caches afectados por una actualizacin. Almacena informacin en un directorio acerca de dnde se encuentran las copias de los bloques. Cuando un procesador quiere escribir una posicin, debe solicitar autorizacin al controlador, quien luego invalida las dems copias. El directorio puede estar centralizado (cuello de botella) o distribudo (cada cache sabe lo que tiene).

  • MultiprocesadoresEl protocolo MESI

    Es un protocolo tipo write-invalidate, implementado por Intel en la linea Pentium y por IBM en la Power. Utiliza dos bits por linea de cache para indicar el estado de la misma: Modified, Exclusive, Shared, Invalid. Stallings 16.3.

  • MultiprocesadoresEl modelo de programacin

    i) Creacin de tareasii) Comunicacin: shared data

    iii) Coordinacin: a) locks (exlusin mutua) Sincronizacin: b) barriers

  • MultiprocesadorespThreads - Ejemplo

    /************************************************************************"hello world" Pthreads. Compilar con: gcc -lpthread -o hello hello.c*************************************************************************/#include #include #define NUM_THREADS 5

    void *PrintHello(void *threadid){ printf("\n%d: Hello World!\n", threadid); pthread_exit(NULL);}

    int main(){ pthread_t threads[NUM_THREADS]; int rc, t; for(t=0;t

  • Muticomputadoras

    Diferencia entre MPP (loosely coupled) y Clusters (very-loosely coupled). Al no existir recursos compartidos, la comunicacin se realiza a travs de mensajes enviados por la red. El mensaje es una unidad lgica que puede transportar datos, instrucciones, sincronizacin o interrupciones.

  • MuticomputadorasIntroduccin

    VENTAJASEscala mejor y soporta ms nodos. Se eliminan las construcciones de sincronizacin. No est limitado por el ancho de banda de la memoria (si por el de la red). Puede utilizar redes estticas no completamente conectadas (routing, bw, latencia). Sincronizacin y comunicacin son lo mismo.

    DESVENTAJASProgramacin con mensajes explcitos (send/receive en lugar de load/store); los programas son diferentes. Tiempo de transmisin del mensaje. Una copia del SO en cada computadora. Difcil mover procesos entre computadoras.

  • MuticomputadorasGranularidad

    El programa se divide en N procesos concurrentes que se ejecutan en n computadoras. Si n

  • MuticomputadorasRuteo (routing)

    A menos que se disponga de una red completamente conectada, esta problemtica estar presente. Se define como el conjunto de tcnicas utilizadas para:

    a) Identificacin de todos los caminos posibles.b) Seleccin del mejor a travs de una funcin.

    Las tcnicas pueden clasificarse segn su dinmica: Adaptivas (dependen del estado de la red) o Determinsticas (oblivious).O segn su organizacin: Centralizadas (conozco la ruta al conocer la fuente y el destino) o Distribudas (solo conozco el prximo salto)

    Ejemplo: XOR en Hipercubo

  • MuticomputadorasRouting (cont)

    Tipos de operaciones:a) Unicastb) Multicastc) Broadcast

    Problemas:a) Deadlock (solucin monotnica) Ej: regla y lpizb) Livelock (solo en adaptivas) Ej: pasilloc) Starvation

  • MuticomputadorasConmutacin (switching)

    Tcnica utilizada para pasar un mensaje de la entrada a la salida.a) Circuit-switching: reserva el camino. Ej: telefona.b) Store-and-forward:

    i) Packet-switching: El mensaje es dividido en paquetes que pueden viajar por diferentes caminos. Cada paquete lleva informacin de routing. Overhead. Pueden llegar desordenados. Ej: TCP.ii) Message-switching: el mensaje viaja entero.

    c) Cut-Through-switching (wormhole routing): Todos los paquetes (flits flow control bits 32 bits low latency) se mueven tipo pipeline, siguiendo la misma ruta. El primero la fija. Cada nodo debe llevar la cuenta de los mensajes que est transmitiendo. Util en direcciones cortas. Ejemplo: hipercubo.

  • MuticomputadorasEl modelo de programacin

    Primitivas de comunicacin: send, receive, broadcast, barrier.Mensajes bloqueantes (3 way) y no bloqueantes.PVM y MPI: bibliotecas de comunicaciones para C. Open Source: LAM-MPI y MPICH

    #include #include

    int main(){int rank, size;MPI_Init( &argc, &argv );MPI_Comm_size( MPI_COMM_WORLD, &size );MPI_Comm_rank( MPI_COMM_WORLD, &rank );printf( "Hello world from process %d of %d\n", rank, siz