Está en la página 1de 55

Tema 1.

Introduccin al procesamiento paralelo


1. 2. 3. 4. 5. 6. 7. 8. 9. Concepto de arquitectura de computadores Evolucin de los sistemas de computadores La arquitectura Von Neumann Evaluacin del rendimiento de una arquitectura Conceptos bsicos sobre paralelismo: tipos, niveles y tcnicas Clasificacin de arquitecturas Paralelismo en sistemas monoprocesadores Estructuras de computadores paralelos. Aplicaciones del procesamiento paralelo.
Arquitectura de Ordenadores, 2002/2003

Concepto de Arquitectura de Computadores

Primera aparicin del trmino, en 1964 (Amdahl):

Estructura de un computador que el programador en lenguaje mquina debe conocer si quiere escribir un programa correcto para dicho computador
Bsicamente: Registros y memoria Conjunto de instrucciones y su formato Modos de direccionamiento Codificacin de las instrucciones No considera la forma en que se implementan las instrucciones

Arquitectura de Ordenadores, 2003/2004

Concepto de Arquitectura de Computadores (II)

multinivel jerrquica:

Bell y Newell, en 1970, introdujeron una descripcin


Nivel Nivel Nivel Nivel de de de de circuito elctrico diseo lgico programacin conmutacin procesador-memoria

El tercer nivel se corresponde con el de Amdahl. El cuarto nivel trata sobre las interconexiones entre el procesador, la memoria y el resto de elementos del sistema
3

Arquitectura de Ordenadores, 2003/2004

Concepto de Arquitectura de Computadores (III)

El siguiente refinamiento consisti en aadir una interpretacin multidimensional:


Especificacin funcional (cmo se va a trabajar) Implementacin hardware (cmo est construido) (Sima, 1977):

Equivalentemente

Arquitectura lgica Arquitectura fsica Exo-Arquitectura Endo-Arquitectura

(Dasgupta, 1981):

Arquitectura de Ordenadores, 2003/2004

Concepto de Arquitectura de Computadores (IV)

Una arquitectura se define mediante diferentes niveles de abstraccin. En cada nivel se especificar:

Modelo computacional

Von Neumann, Reduccin, Flujo de datos. Cmo interacta con el medio? Cmo se relaciona para procesar la informacin? Tipos de datos y operaciones disponibles

Especificacin funcional (arquitectura abstracta)

Implementacin hardware (arquitectura interna)

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores

Generalmente, se aceptan diversas generaciones de ordenadores. Causas fsicas: evolucin de los componentes (rels, vlvulas de vaco, transistores, circuitos integrados, VLSI. ) Causas no fsicas: reorganizacin de los componentes del ordenador (interconexiones y lgica de funcionamiento).

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores (II)

1 Generacin (1938-1953):

Primer computador analgico: 1938 Primer computador digital electrnico: 1946 (ENIAC) Dispositivos de conmutacin: paso de rels a vlvulas de vaco. Componentes hardware muy caros Operaciones en CPU bit a bit (en serie) Lenguaje de programacin: cdigo mquina binario Primer programa almacenado (1950)

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores (III)

2 Generacin (1952-1963):

Primer computador con transistores: 1954 Memorias de ferrita Primeros lenguajes de alto nivel: FORTRAN y ALGOL Primeros ordenadores con mejoras en arquitectura: LARC (1959), con E/S independiente de otras unidades de proceso Forma normal de trabajo: procesamiento por lotes, donde los programas se ejecutan secuencialmente, uno cada vez y de principio a fin.

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores (IV)

3 Generacin (1962-1975):

Circuitos integrados de pequea y mediana escala de integracin. Memorias de estado slido (abaratamiento de memoria) Programas ms grandes Introduccin a la multiprogramacin, con el propsito de permitir la ejecucin de mltiples segmentos de programa intercalados con operaciones de E/S Primeros procesadores vectoriales Introduccin a la memoria virtual

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores (V)

4 Generacin (1972-):

Circuitos VLSI (reduccin de tamaos y costes) Ampliacin de los lenguajes de alto nivel, para considerar a un tiempo datos escalares y vectoriales La mayora de los sistemas operativos son de tiempo compartido y emplean memoria virtual. Compiladores con capacidad de vectorizacin Procesadores moleculares Lenguajes de cada vez ms alto nivel (casi lenguaje natural)
10

Futuro

Arquitectura de Ordenadores, 2003/2004

Evolucin de los sistemas de computadores (VI)

Todas estos avances han redundado en mejoras en:


Procesamiento de datos Procesamiento de la informacin (no slo los datos, sino la forma en que se organizan) Procesamiento del conocimiento (conclusiones extraidas de la informacin) Procesamiento de la inteligencia (sistemas de razonamiento basados en el conocimiento)

Arquitectura de Ordenadores, 2003/2004

11

Arquitectura Von Neumann

Modelo Computacional:

Computacin basada en los datos Los datos son entidades identificables y distinguibles Un problema se soluciona mediante una secuencia de instrucciones que modifican los datos. Lenguajes imperativos (C, Pascal, Fortran,) Las instrucciones se ejecutan, por defecto, secuencialmente, aunque puede saltarse de un punto a otro del cdigo.

Modelo de representacin de la solucin de los problemas:

Modelo de ejecucin:

Arquitectura de Ordenadores, 2003/2004

12

Arquitectura Von Neumann vs Funcional


Von Neumann
Modelo computacional Representacin de la solucin Modelo de ejecucin Basado en los datos Lenguajes imperativos (secuencia de instrucciones) Secuencial

Funcional
Basado en el procesamiento Definicin formal del planteamiento del problema Recursivo

Arquitectura de Ordenadores, 2003/2004

13

Evaluacin del rendimiento de una arquitectura


Por qu tantas arquitecturas y diseos diferentes? Todas las arquitecturas valen para lo mismo? Cmo evaluar el rendimiento? Cmo influye el coste al disear un equipo? Va igual de rpido un Pentium 1.8 GHz que un Athlon 1.8 GHz?

Arquitectura de Ordenadores, 2003/2004

14

Evaluacin del rendimiento de una arquitectura (II)

El tiempo es la medida del rendimiento del computador: el computador que realiza la misma cantidad de trabajo en el mnimo tiempo es el ms rpido. El tiempo de ejecucin de un programa se mide en

segundos/programa El rendimiento se mide en eventos/segundo.


Cmo se mide el tiempo? tarea.

Tiempo transcurrido (elapsed time): Latencia para completar una


tiempo de espera para las E/S o para ejecutar otro programa. Tiempo de CPU del usuario, el utilizado por el programa Tiempo de CPU del sistema, el utilizado por el SO para la ejecucin.

Tiempo de CPU: Tiempo que la CPU est calculando, sin incluir el

Arquitectura de Ordenadores, 2003/2004

15

Evaluacin del rendimiento de una arquitectura (III) Rendimiento de la CPU

Los procesadores utilizan un reloj que funciona a una frecuencia constante. Estos eventos se denominan ciclos de reloj. Los diseadores de computadores referencian el tiempo de un ciclo de reloj por su duracin (p.ej. 10 ns) o por su frecuencia (p.ej. 100Mhz) El Tiempo de CPU se puede expresar como

TCPU=(Ciclos de reloj de CPU para un programa)x(Duracin del ciclo de reloj) TCPU=(Ciclos de reloj de CPU para un programa) / (Frecuencia de reloj)

Arquitectura de Ordenadores, 2003/2004

16

Evaluacin del rendimiento de una arquitectura (IV) Rendimiento de la CPU

Sabiendo el nmero de instrucciones ejecutadas (NI) y el nmero de ciclos de reloj, podemos calcular el nmero medio de Ciclos por Instruccin: CPI=Ciclos de reloj de CPU para un programa / NI Esta medida sirve para comparar entre distintos repertorios de instrucciones.

Arquitectura de Ordenadores, 2003/2004

17

Evaluacin del rendimiento de una arquitectura (V) Rendimiento de la CPU

Trasponiendo la expresin anterior: TCPU=NI x CPI x (Duracin del ciclo de reloj) TCPU=NI x CPI / (Frecuencia de reloj)
El rendimiento de la CPU depende de:

Frecuencia de reloj: Tecnologa hardware y organizacin CPI: Organizacin y arquitectura a nivel lenguaje mquina NI:Arquitectura a nivel leguaje mquina y bondad del compilador

Arquitectura de Ordenadores, 2003/2004

18

Rendimiento de la CPU

Evaluacin del rendimiento de una arquitectura (VI)

A veces es til, al disear la CPU, calcular el nmero total de ciclos de reloj de la CPU como: Ciclos de Reloj de la CPU= Donde Ii representa el nmero de veces que se ejecuta la instruccin i en un programa, y CPIi representa el nmero medio de ciclos de reloj para la instruccin i. Por tanto, el tiempo de CPU se puede expresar como: TCPU=

(CPI xI
i i=1

) x Duracinde l ciclo de reloj

Arquitectura de Ordenadores, 2003/2004

19

Evaluacin del rendimiento de una arquitectura (VII) Rendimiento de la CPU Ejemplo 1

Consideremos 2 alternativas para una instruccin de salto condicional:

CPU A. Una instruccin de comparacin inicializa un cdigo de condicin y es seguida por un salto que examina el cdigo de condicin CPU B: Se incluye una comparacin en el salto

En ambas CPU, la instruccin de salto condicional emplea 2 ciclos de reloj y las dems instrucciones 1. En la CPU A, el 20% de todas las instrucciones ejecutadas son saltos condicionales; como cada salto necesita una comparacin, otro 20% de las instrucciones son comparaciones. Debido a que la CPU A no incluye la comparacin en el salto, su ciclo de reloj es un 20% ms rpido que el de la CPU B. Qu CPU es ms rpida? Y si conseguimos que la duracin de los ciclos de reloj de B se reduzca en un 10%?

Arquitectura de Ordenadores, 2003/2004

20

Solucin Ejemplo 1

Con la expresin del tiempo de CPU tenemos:

TCPU A = Instrucciones A * ((0,2 * 2) + (0,8 *1)) * TCicloA

Las comparaciones no se ejecutan en la CPU B por lo tanto 20/80, es decir, un 25% de las instrucciones ahora son bifurcaciones con 2 ciclos de reloj y el 75% restante sern operaciones de 1 ciclo de reloj. Adems, el ciclo de reloj de la CPU en A es un 25% ms rpido que el ciclo en la CPU B y por lo tanto TCiclo = 1,25 * TCiclo
B A

Completando: Resumiendo: La CPU A es ms rpida que la CPU B aunque tenga un nmero menor de instrucciones

TCPU B = (0,80 * Instrucciones A ) *1,25 * (1,25 * TCiclo A )

Arquitectura de Ordenadores, 2003/2004

21

Solucin Ejemplo1

Y si conseguimos que la duracin de los ciclos de reloj de B se reduzca en un 10%?

TCPU A = 1,20 * Instrucciones A * TCiclo A


TCPU B = 0,80 * Instrucciones A *1,25 *1,10 * TCiclo A = 1,10 * Instrucciones A * TCiclo A

Arquitectura de Ordenadores, 2003/2004

22

Evaluacin del rendimiento de una arquitectura (VIII) Rendimiento de la CPU Ejemplo 2

Una mquina, inicialmente, slo tiene instrucciones de carga y de almacenamiento en memoria y, despus, todas las operaciones se realizan en los registros. Las medidas son:
OPERACIN Ops ALU Cargas Almacenamientos Saltos FRECUENCIA 43% 21% 12% 24% CICLOS DE RELOJ 1 2 2 2

Supongamos que el 25% de las ops. de la ALU usan directamente un operando cargado que no se utiliza de nuevo Proponemos aadir instrucciones ALU que tengan un operando fuente en memoria, que usan 2 ciclos de reloj. Supongamos que el repertorio extendido de instrucciones incrementa en 1 el nmero de ciclos para los saltos. Mejorar el rendimiento de la CPU?
23

Arquitectura de Ordenadores, 2003/2004

Solucin Ejemplo 2

Calculamos el CPI original Y el tiempo original ser:

CPI Original = 0,43 *1 + 0,21*1 + 0,12 * 2 + 0,24 * 2 = 1,57


Comparando con los valores nuevos tenemos qu:


=

TCPU Original = InstruccionesOriginal *1,57 * TCicloOriginal


( 0 , 43 0 , 25 * 0 , 43 ) * 1 + ( 0 , 43 * 0 , 25 ) * 2 + CPI
Nuevo

( 0 , 21 0 , 25 * 0 , 43 ) * 2 + 0 ,12 * 2 + 0 , 24 * 3 = 1 , 908 1 ( 0 , 25 * 0 , 43 )

Y por tanto

Lo que nos dice que la respuesta es no, es una mala decisin agregar nuevas instrucciones a esta computadora

TCPU Nueva = 0,893 * InstruccionesOriginal *1,908 * TCicloOriginal

Arquitectura de Ordenadores, 2003/2004

24

Evaluacin del rendimiento de una arquitectura (IX) Rendimiento de la CPU


La nica medida fiable del rendimiento es el tiempo de ejecucin de los programas reales. Otras medidas, utilizadas principalmente por las casas comerciales:

MIPS (millones de instrucciones por segundo)


MIPS= Frecuencia de reloj / (CPI106) Da cifras ms manejables MIPS=Recuento de instrucciones/(Tiempo de ejecucin106)

Fcil de entender Fcil de manipular:


Dependen del repertorio de instrucciones Varan entre programas en el mismo computador Pueden variar inversamente al rendimiento!. Ej: operaciones coma flotante por hardware. Utilizar MIPS relativos a una mquina de referencia MIPS relativos= (Tr/Tt) x MIPSr (Tr=Tiempo en la mquina de referencia, Tr=Tiempo en la mquina que se testea, MIPSr=MIPS en la mquina de referencia)

Posible solucin:

Arquitectura de Ordenadores, 2003/2004

25

Evaluacin del rendimiento de una arquitectura Rendimiento de la CPU - Ejemplo MIPS

(X)

Supongamos que construimos un compilador optimizado para la mquina del ejemplo anterior. El compilador descarta el 50% de las instrucciones de la ALU, aunque no pueda reducir cargas, almacenamientos, ni saltos. Ignorando las prestaciones del sistema, y suponiendo una duracin del ciclo de reloj de 20ns (frecuencia 50MHz), Cul es la frecuencia en MIPS para el cdigo optimizado frente al cdigo sin optimizar? Y el tiempo de CPU optimizada?

Arquitectura de Ordenadores, 2003/2004

26

Solucin Ejemplo MIPS

Cogiendo los resultados del ejemplo 2 tenemos


MIPSOriginal =

Y por tanto el rendimiento es TCPU Original = InstruccionesOriginal *1,57 * (20 *10 9 ) = Y el optimizado:

50 MHz = 31,85 1,57 *10 6

31,4 *10 9 * InstruccionesOriginal


CPI = Opt (0,43/ 2)*1+0,21 2+0,12*2+0,24*2 * =1,73 1(0,43/ 2) 50 MHz = 2890 , MPIS = Opt 1,73 10 * 6

TCPU =0,785 InstruccioOriginal 1,73 2*10 9*= 272*10 9 *InstruccioOriginale * nes * * , nes Opt

Por tanto, el cdigo optimizado es el 13% ms rpido pero su frecuencia en MIPS es inferior
27

Arquitectura de Ordenadores, 2003/2004

Evaluacin del rendimiento de una arquitectura Rendimiento de la CPU - MFLOPS

(XI)

MFLOPS es una medida similar a las MIPS, pero cindose slo a las operaciones en coma flotante. MFLOPS= (N operaciones de punto flotante de un programa)/(Tejecucin x 106) Evidentemente, dependen del programa y de la mquina. El trmino MFLOPS habla de operaciones, no de instrucciones. Supuestamente debera dar igual en todas las mquinas, pero no: Cray-2 no tiene instruccin de dividir Motorola 68882 tiene divisin, raz cuadrada, seno y coseno No todas las operaciones en punto flotante tardan lo mismo Solucin: definicin de benchmarks y utilizar MFLOPS normalizados

Arquitectura de Ordenadores, 2003/2004

28

Evaluacin del rendimiento de una arquitectura (XII)

Rendimiento de la CPU - ejemplo MFLOPS

El programa Spice se ejecuta en la DECstation 3100 en 94 segundos. El nmero de operaciones de punto flotante ejecutadas en ese programa se indica a continuacin: Operaciones reales PF Operaciones normalizadas PF ADDD 25 999 440 ADD, SUB, COMPARE, MULT 1 SUBD 18 266 439 DIVIDE, SQRT 4 MULD 33 880 810 EXP, SIN 8 DIVD 15 682 333 COMPARED 9 745 930 Operaciones en PF reales frente NEGD 2 617 846 a las normalizadas ABSD 2 195 930 CONVERTD 1 581 450 TOTAL 109 970 178 Calcular MFLOPS nativos y MFLOPS normalizados, haciendo uso de la tabla adjunta

Arquitectura de Ordenadores, 2003/2004

29

Solucin Ejemplo MFLOPS

Los MFLOPS nativos son:

MFLOPS Nativos

N OperacionesPF = 1,2 6 TEje *10

Y los MFLOPS normalizados se diferencian solamente en las operaciones de dividir que se elevan en casi un 50%, haciendo 110M 15,6+15,6*4 son aproximadamente 157M

MFLOPS Norm

157 M = 1,7 6 94 *10

Arquitectura de Ordenadores, 2003/2004

30

Evaluacin del rendimiento de una arquitectura (XIII)

Ley de Amdahl

La ganancia de rendimiento que se puede obtener con la mejora de una parte de un ordenador se puede calcular con la Ley de Amdahl:

Ganancia de Velocidad=Sp=Vp/Vb=Tb/Tp

Vp=Velocidad de la mquina con una mejora de P Vb=Velocidad de la mquina base Tp=Tiempo de ejecucin en la mquina mejorada Tb=Tiempo de ejecucin en la mquina base

Arquitectura de Ordenadores, 2003/2004

31

Evaluacin del rendimiento de una arquitectura (XIV)

Ley de Amdahl

La ley de Amdahl nos permite calcular rpidamente la ganancia de velocidad (Sp), que depende de: f: Fraccin del tiempo de clculo de la mquina original en que

puede utilizarse la mejora (0<=f<=1) p: Incremento de velocidad que podra conseguirse si se pudiese utilizar la mejora todo el tiempo (p>1)

Sp =

1 (1 f)+ f / p

En el caso de que la mejora sea una paralelizacin:


p=nmero de procesadores f=fraccin de cdigo paralelizable

Hay que mejorar aquello que ms se usa

Arquitectura de Ordenadores, 2003/2004

32

Evaluacin del rendimiento de una arquitectura (XV)

Ley de Amdahl Ejemplo 1

Supongamos que estamos considerando la mejora de un procesador de un servidor web. La nueva CPU es 10 veces ms rpida que la original. Suponiendo que la mquina original est un 40% del tiempo haciendo clculos, y un 60% con operaciones de E/S, Cul es la mejora de velocidad que se obtiene?

S=

1 (1 0,4) + 0,4 10

= 1,56

Arquitectura de Ordenadores, 2003/2004

33

Ley de Amdahl, Ejemplo2

Supongamos que la funcin FPSQR (raz cuadrada en coma flotante) supone un 20% del tiempo de ejecucin en un programa grfico. Una propuesta para mejorar el hardware sobre el que se ejecuta es mejorar esta operacin en un factor de 10. Otra posibilidad es mejorar todas las operaciones de coma flotante (FP suponen el 50% del total del tiempo de ejecucin) hacindolas un 1.6 ms rpidas. Qu opcin es mejor? A) B)
S= 1 0,2 (1 0,2) + 10 = 1,22

S=

1 0,5 (1 0,5) + 1,6

= 1,23

Arquitectura de Ordenadores, 2003/2004

34

Conceptos bsicos de paralelismo

Programa:

Proceso: Es un concepto del SO, ligado al de programa:

Para el programador: Conjunto ordenado de instrucciones. Para el S.O: Fichero ejecutable en memoria externa

Realizacin de un trabajo, con los recursos asociados que necesite


Espacio de memoria (instrucciones+datos) Tiempo de procesador

Hebra: Secuencia de instrucciones que se crea y pertenece a un proceso concreto. Todas las hebras creadas en un proceso comparten los recursos, en concreto el espacio de memoria

Tarea: Trmino usado en los SO antiguos (DOS, MVT) para definir los procesos. No implica ningn tipo de reserva de memoria ni gestin de concurrencia (no lo permitan los SO).

OS/2, WinNT utilizaban hebras Una hebra puede estar ejecutndose, preparada para ejecutarse o bloqueada.

Arquitectura de Ordenadores, 2003/2004

35

Conceptos bsicos de paralelismo (II)

Ejecucin concurrente: es el comportamiento temporal del modelo 1 servidor-N clientes. Es secuencial si lo miramos en un instante pequeo de tiempo pero simultneo si lo vemos con una perspectiva temporal ms amplia

Cuestin a resolver: cmo los clientes acceden a los recursos del servidor de una manera eficiente y justa.

va rotando entre las distintos clientes

Tiempo compartido: ninguna tarea se apropia del servidor, sino que este

Ejecucin paralela: Corresponde con el modelo N Clientes N Servidores. Esto permite estar trabajando a la vez con ms de un cliente (proceso o hebras) a la vez.

Debe haber mecanismos para la gestin de los recursos compartidos (memoria, dispositivos).

Arquitectura de Ordenadores, 2003/2004

36

Conceptos bsicos de paralelismo (III). Tipos y niveles


Tipos de paralelismo Paralelismo funcional: Aquel que se refleja en la lgica de la solucin de
un problema (en los diagramas de flujo y, por tanto, en el cdigo). Paralelismo de datos: Se consigue mediante el uso de estructuras de datos que permiten operaciones paralelas sobre sus elementos (vectores, matrices)

1.

Niveles de paralelismo A nivel de instruccin (fine-grained) A nivel de bucle (middle-grained) A nivel de procedimiento (middle-grained) A nivel de programa (coarse-grained) Los niveles 1 a 3 se pueden explotar mediante la arquitectura de la mquina Los niveles 2 a 4 se pueden explotar mediante el sistema operativo

Arquitectura de Ordenadores, 2003/2004

37

Conceptos bsicos de paralelismo (IV). Ejemplo


Algoritmo secuencial
for i:=1 to 64 do begin C[i]:=A[i]+B[i]; F[i]:=D[i]-E[i]; G[i]:=K[i]*H[i]; end; for i:=1 to 64 do begin C[i]:=A[i]+B[i]; end; PROCESADOR 1 for i:=1 to 64 do begin F[i]:=D[i]-E[i]; end; PROCESADOR 2 for i:=1 to 64 do begin G[i]:=K[i]*H[i]; end; PROCESADOR 3

Posibilidad 1 (multiprocesador)

Posibilidad 2 (procesador matricial) Posibilidad 3 (procesador vectorial)


ADDV C,A,B SUBV F, D,E MULV G, K, H

for all EPi (i:=1 to 64) do begin C[i]:=A[i]+B[i]; F[i]:=D[i]-E[i]; G[i]:=K[i]*H[i]; end;

Arquitectura de Ordenadores, 2003/2004

38

Conceptos bsicos de paralelismo (V). Tcnicas

Utilizacin del paralelismo funcional A nivel de instruccin. Arquitecturas ILP (Instruction Level Parallel)

A nivel de proceso y/o hebra.

Se encargan los compiladores

Depende de un buen diseo y programacin

Modelos de ejecucin concurrente


ejecutadas concurrentemente en un mismo procesador bajo la gestin del SO. Multitarea: Ejecucin concurrente de procesos. Multiprogramacin: Utilizacin efectiva del procesador por varios procesos correspondientes a varios usuarios (internamente es una multitarea). Si un proceso se bloquea, entonces otro se comienza a ejecutar. Tiempo compartido: No espera a que un proceso se bloquee para ejecutar otro, sino que asigna a cada uno un espacio de tiempo dependiendo de varios factores.

Multihebra: Para cada proceso se pueden generar varias hebras que son

Arquitectura de Ordenadores, 2003/2004

39

Clasificacin de arquitecturas paralelas

Taxonoma de Flynn

Se basa en el nmero de unidades de control y de procesadores disponibles en el computador Introdujo las nociones de:

Flujo de instrucciones simple (SI): La arquitectura tiene una nica unidad de control que produce un nico flujo de instrucciones Flujo de instrucciones mltiple (MI): La arquitectura tiene mltiple unidades de control, cada una produciendo un flujo distinto de instrucciones Flujo de datos simple (SD): Slo hay un procesador que ejecuta un nico flujo de datos Flujo de datos mltiple (MD): Hay varios procesadores, cada uno de ellos ejecutando un flujo de datos distinto.
40

Arquitectura de Ordenadores, 2003/2004

Clasificacin de arquitecturas paralelas


datos distintos. Cada procesador tiene su propia memoria de datos, pero la memoria para almacenar las instrucciones y la unidad de control son nicas. Ej: procesadores vectoriales MISD. No se ha construido ninguna arquitectura comercial. MIMD. Cada procesador coge sus instrucciones y opera con sus propios datos
Taxonomia de Flynn SISD SIMD MIMD Multiprocesadores Multicomputadores Clusters Paralelismo funcional Proc. Segmentados Proc. Superescalares Proc. VLIW Proc. Vectoriales Proc. Matriciales Proc. Sistlicos Paralelismo de datos

SISD . Los sistemas monoprocesadores SIMD. La misma instruccin se ejecuta en varios procesadores sobre

Arquitectura de Ordenadores, 2003/2004

41

Clasificacin de arquitecturas paralelas

SISD

Representa a la mayoria de los ordenadores actuales. Las instrucciones se ejecutan secuencialmente, aunque pueden estar solapadas sus etapas de ejecucin. Un computador SISD puede tener ms de una unidad funcional, aunque todas bajo la supervisin de una nica unidad de control.

Arquitectura de Ordenadores, 2003/2004

42

Clasificacin de arquitecturas paralelas

SIMD

Se corresponde con los ordenadores matriciales. Hay mltiples unidades de proceso, supervisadas por una nica unidad de control. Todos los procesadores reciben la misma instruccin, pero cada uno opera sobre datos distintos.

Arquitectura de Ordenadores, 2003/2004

43

Clasificacin de arquitecturas paralelas

MISD

Hay n procesadores, cada uno recibe una instruccin diferente pero operan sobre el mismo conjunto de datos. La salida de un procesador es la entrada del siguiente. No hay ninguna mquina que la siga.

Arquitectura de Ordenadores, 2003/2004

44

Clasificacin de arquitecturas paralelas

MIMD

Sistemas multiprocesadores. Una memoria compartida entre n elementos de proceso. Sistemas multicomputador. Memoria distribuida.

Arquitectura de Ordenadores, 2003/2004

45

Paralelismo en sistemas monoprocesador

Los sistemas monoprocesador se basan en la arquitectura Von Neumann. Formas de dotar paralelismo:

Multiplicidad de unidades funcionales Segmentacin encauzada (pipelining) Solapamiento de operaciones de E/S y CPU Uso de sistemas jerrquicos de memoria Equilibrado de los ancho de banda de los subsistemas Multiprogramacin y tiempo compartido

Arquitectura de Ordenadores, 2003/2004

46

Paralelismo en sistemas monoprocesador (II)

Multiplicidad de unidades funcionales


Inicialmente 1 ALU Posibilidad de varias ALU


Actualmente, casi todos tienen mltiples unidades funcionales. Fases de ejecucin de una instruccin

CDC-6000 IBM 360/91

10 ALUs 2 ALUS (1 coma fija, 1 coma flotante)

Segmentacin encauzada

Estas etapas se ejecutan una tras otra Se puede estar a la vez ejecutando distintas instrucciones, pero cada una estar en una etapa distinta
47

Extraccin de la instruccin Decodificacin Extraccin de operandos Ejecucin operacin Almacenamiento de resultados

Arquitectura de Ordenadores, 2003/2004

Paralelismo en sistemas monoprocesador (III)

Solapamiento de las operaciones de E/S y CPU

Las operaciones de E/S son mucho ms lenta que los clculos (dependen del dispositivo) Por qu tener el procesador parado esperando a que responda el dispositivo? Uso de controladores de E/S Descarga CPU El DMA puede utilizarse para transmitir directamente la informacin desde los dispositivos de E/S hasta la memoria del sistema. De esta gestin se encarga el SO

Arquitectura de Ordenadores, 2003/2004

48

Paralelismo en sistemas monoprocesador (IV)

Uso de sistemas jerrquicos de memoria


La memoria se divide en niveles jerrquicos Debido a las propiedades de localidad espacial y temporal, se puede hacer uso de memorias ms pequeas pero ms rpidas entre el procesador y la memoria principal.

Localidad espacial: la siguiente instruccin suele estar cerca Localidad temporal: la siguiente instruccin suele haberse ejecutado hace poco

Los niveles ms rpidos son los ms prximos en la jerarqua

Arquitectura de Ordenadores, 2003/2004

49

Paralelismo en sistemas monoprocesador (V)

Equilibrado del ancho de banda en los subsistemas

En general, la CPU es la unidad ms rpida, con un tiempo de ciclo Tp. El tiempo de ciclo de memoria se denota por Tm Los dispositivos de E/S son los ms lentos, y en general se denomina Tes Se cumple por tanto la siguiente relacin:

Estas diferencias hacen necesario equiparar los anchos de banda de procesamiento


Tes>Tm>Tp

Nmero de operaciones que se pueden realizar por unidad de tiempo. Nmero de palabras que se pueden acceder por unidad de tiempo Nmero de bytes que se pueden acceder por unidad de tiempo

Arquitectura de Ordenadores, 2003/2004

50

Paralelismo en sistemas monoprocesador (VI)

Equilibrado del ancho de banda en los subsistemas (II)

Tcnicas de equilibrado:

Entre CPU y memoria: Uso de cach Entre memoria y disp. E/S:


Uso de canales a diferentes velocidades (multiplexan y memorizan) Uso de controladores dedicados

Multiprogramacin y tiempo compartido

Multiprogramacin: Usar las operaciones de E/S de un proceso para ejecutar otro (siempre que no se pisen recursos) Tiempo compartido: Evitar que un proceso monopolice el procesador (p.ej. Si no hace operaciones de E/S)

Arquitectura de Ordenadores, 2003/2004

51

Estructuras de computadores paralelos

Procesadores de segmentacin encauzada


Se aprovecha que las instrucciones se dividen en etapas separadas para solapar la ejecucin de varias instrucciones. Un ciclo de ejecucin consta de varios ciclos de cauce. El ciclo de cauce viene determinado por el retardo de la etapa ms lenta. En teora, un ordenador con k-etapas podra ser k-veces ms rpido que su equivalente no segmentado. Computador paralelo y sncrono con mltiples ALUs que pueden operar en paralelo realizando la misma funcin. Las instrucciones escalares y de control se ejecutan en la UC, mientras que las vectoriales se transmiten a los elementos de proceso (ALU+Mem) Los elementos de proceso estn conectados mediante una red dinmica.

Procesadores matriciales

Arquitectura de Ordenadores, 2003/2004

52

Estructuras de computadores paralelos (II)

Sistemas Multiprocesadores

Consta de varios procesadores con capacidades similares, compartiendo accesos a una memoria comn y dividida en mdulos. El sistema entero est gestionado por un nico sistema operativo Cada procesador dispone de su propia memoria local y puede acceder a dispositivos propios de E/S. La comunicacin entre procesadores se puede realizar mediante:

Memoria principal Red de interconexin Gestin de interrupciones

Se considera la descentralizacin de operaciones: sistemas distribuidos.

Arquitectura de Ordenadores, 2003/2004

53

Estructuras de computadores paralelos (IV)

Nuevas tendencias

La realizacin de las tareas est limitada a la disponibilidad de datos:


Ordenar las instrucciones en funcin de las dependencias de datos Los programas se representan como grafos de flujos de datos. Las instrucciones se implementaran con plantillas. Esto permite un anlisis formal del programa y verificar su correccin.

Implementacin hardware de algoritmos masivamente paralelos.

Arquitectura de Ordenadores, 2003/2004

54

Aplicaciones del procesamiento paralelo

Modelizacin predictiva y simulaciones


La modelizacin de la superficie terrestre o de la atmsfera supone una gran carga computacional (unos 1000 millones de MFLOPS) P. ej. La prediccin del tiempo a 24 horas vista, con precisin de 160000 km2 (400x400) supone unos 100 billones de operaciones (100 minutos en un Cray-1). Si queremos precisin de 40.000 km2, se necesitaran 14 horas. Anlisis de elementos finitos, aerodinmica computacional, inteligencia artificial Modelizacin de yacimientos, seguridad de reactores nucleares Tomografa computerizada, sntesis de protenas,
55

Diseo y automatizacin de proyectos de ingeniera

Exploracin de recursos energticos

Investigacin mdica

Arquitectura de Ordenadores, 2003/2004