introducci ó n al tema 01: procesamiento paralelo al... · considerar a un tiempo datos escalares...

56
07/11/2008 Arquitectura de Computadores Paralelos 1 MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN E S P G E S P G Prof: Alberto E. Cohaila Barrios Con tro l Panel F low Pr e ssu r eA lar m Cond iti ons STOP T em pe r at ure [email protected], [email protected], [email protected] Tema 01: Introducción al Procesamiento Paralelo

Upload: phungphuc

Post on 18-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

07/11/2008 Arquitectura de Computadores Paralelos 1

MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN

E S P GE S P G

Prof: Alberto E. Cohaila Barrios

Con tro l Panel

F lowP re ssu re A la rm Cond itionsSTOP

Tempe ra ture

[email protected], [email protected], [email protected]

Tema 01: Introducción al Procesamiento Paralelo

07/11/2008 Arquitectura de Computadores Paralelos

2

Temas a desarrollar:

1. Introducción al procesamiento paralelo2. Rendimiento en los computadores3. Paralelismo en sistemas monoprocesadores4. Principios de Segmentación encauzada5. Computadores de Segmentación encauzada6. Estructura y algoritmos en procesadores matriciales7. Arquitectura y programación de los multiprocesadores:

Pascal FC, LabVIEW y C++8. Multiprocesamiento9. Arquitectura paralela distribuida: Cluster10.Aplicaciones

07/11/2008 Arquitectura de Computadores Paralelos

3

1. Introducción al procesamiento paralelo

• Conceptuación de Procesamiento Paralelo (PP)

Computador de altas prestaciones

EvoluciEvolucióón de lan de la

arquitecturaarquitectura

Concurrencia en Concurrencia en sistemas sistemas informinformááticos ticos modernosmodernos

Aplicaciones Aplicaciones avanzadasavanzadas

•• ServidorServidor

•• PC industrialPC industrial

•• PC usuarioPC usuario

-- Demanda creciente Demanda creciente --

07/11/2008 Arquitectura de Computadores Paralelos

4

1. Introducción al paralelismo

• Conceptuación de Procesamiento Paralelo (PP)

Computadores de Computadores de segmentacisegmentacióón n encausadaencausada

Estructura de los computadores paralelosclasificación:

Procesadores Procesadores matricialesmatriciales

Sistemas Sistemas multiprocesadoresmultiprocesadores

técnicas: •• VLSI yVLSI y•• Flujo de datosFlujo de datos

07/11/2008 Arquitectura de Computadores Paralelos

5

• Primera aparición del término en 1964 (Amdahl):– “Estructura de un computador que el programador en

lenguaje máquina debe conocer si quiere escribir un programa correcto para dicho computador”

– Básicamente:• Registros y memoria• Conjunto de instrucciones y su formato• Modos de direccionamiento• Codificación de las instrucciones

• No considera la forma en que se implementan las instrucciones

1.1 Concepto de Arquitectura de computadores

07/11/2008 Arquitectura de Computadores Paralelos

6

1.1 Concepto de Arquitectura de computadores

• Bell y Newell, en 1970, introdujeron una descripción multinivel jerárquica:– Nivel de circuito eléctrico– Nivel de diseño lógico– Nivel de programación– Nivel de conmutación procesador-memoria

• El tercer nivel corresponde al de Amdahl.• El cuarto nivel trata sobre las interconexiones

entre el procesador, la memoria y el resto de elementos del sistema (buses, etc. hardware PCB).

07/11/2008 Arquitectura de Computadores Paralelos

7

1.2 Evolución de los computadores

• Para diseñar un sistema informático potente y de costo razonable; y para idear programas eficaces que resuelva un problema computacional, deben comprenderse las estructuras hardware y softwaresubyacentes y los algoritmos de computación que vayan a ser implementados en la máquina mediante lenguajes de programación orientados al usuario y/o concurrentes.

07/11/2008 Arquitectura de Computadores Paralelos

8

1.2 Evolución de los computadores

El sistema informEl sistema informáático modernotico moderno

Banco de datosBanco de datos

Composición de elementos tales como:

MemoriasMemoriasUnidades Unidades funcionalesfuncionales Redes de Redes de

interconexiinterconexióónnCompiladoresCompiladores

Sistemas operativosSistemas operativos

Dispositivos Dispositivos perifperifééricosricos

Canales de Canales de comunicacicomunicacióónn

ProcesadoresProcesadores

SeguridadSeguridad

07/11/2008 Arquitectura de Computadores Paralelos

9

Ejemplo 01:

MediciMedicióón de variables de temperatura, n de variables de temperatura, radiaciradiacióón, humedad, velocidad de viento; n, humedad, velocidad de viento; adquirir, visualizar y almacenar el BD. adquirir, visualizar y almacenar el BD. Luego el enviLuego el envióó de informacide informacióón n historicahistoricade modo remoto a usuarios (agricultor) de modo remoto a usuarios (agricultor) final.final.

Sistema de monitoreo remoto de variables de clima como Sistema de monitoreo remoto de variables de clima como alternativa de solucialternativa de solucióón al Agro en la regin al Agro en la regióón de Tacnan de Tacna

Sistema operativo + lenguaje de programación

Problema Problema computacionalcomputacional

Hardware y software

Comprender la Comprender la estructuraestructura

++Algoritmo computacional

07/11/2008 Arquitectura de Computadores Paralelos

10

Ejemplo 02:

ComunicaciComunicacióón entre n entre HostHost basados en el estbasados en el estáándar USB 2.0 ndar USB 2.0 (NO (NO ethernetethernet))

Sistema operativo + lenguaje de programación

Problema Problema computacionalcomputacional

Elaborar el algoritmo de protocolo Elaborar el algoritmo de protocolo de red bajo la normativa USB 2.0 de red bajo la normativa USB 2.0 que comunique mas de 2 que comunique mas de 2 hosthost..

Hardware y software

Comprender la Comprender la estructuraestructura

++Algoritmo computacional

Windows vista + JavaWindows vista + Java

-- Algoritmo de multiprogramaciAlgoritmo de multiprogramacióón n ---- DriverDriver del fabricantedel fabricante

07/11/2008 Arquitectura de Computadores Paralelos

11

1.2 Evolución de los computadores

• 1ª Generación (1938-1953):– Primer computador analógico: 1938– Primer computador digital electrónico: 1946 (ENIAC)– Dispositivos de conmutación: paso de relés a válvulas

de vacío.– Componentes hardware muy caros– Operaciones en CPU bit a bit (en serie)– Lenguaje de programación: código máquina binario– Primer programa almacenado (1950)

07/11/2008 Arquitectura de Computadores Paralelos

12

1.2 Evolución de los computadores

• 2ª Generación (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.

07/11/2008 Arquitectura de Computadores Paralelos

13

1.2 Evolución de los computadores

• 3ª Generación (1962-1975):– Circuitos integrados de pequeña y mediana escala de

integración.– Memorias de estado sólido (abaratamiento de

memoria)– Programas más grandes– Introducción a la multiprogramación, con el propósito

de permitir la ejecución de múltiples segmentos de programa intercalados con operaciones de E/S

– Primeros procesadores vectoriales– Introducción a la memoria virtual

07/11/2008 Arquitectura de Computadores Paralelos

14

1.2 Evolución de los computadores

• 4ª Generación (1972-1986):– Circuitos VLSI (reducción de tamaños y costes)– Ampliación de los lenguajes de alto nivel, para

considerar a un tiempo datos escalares y vectoriales– La mayoría de los sistemas operativos son de tiempo

compartido y emplean memoria virtual.– Compiladores con capacidad de vectorización

07/11/2008 Arquitectura de Computadores Paralelos

15

1.2 Evolución de los computadores

• 5ª Generación (1986-…):– Multiprocesamiento de mas de 2 núcleos– Mas de 1000 Megaflops– Procesadores a escala nanometrica ( <60 nm)

• Futuro …– Procesadores moleculares– Procesadores a escala nanometrica (nm)– Masa de 1 millon de millones de operaciones aritméticas de punto

flotante por segundo (Teraflops)– Lenguajes cada vez de más alto nivel (casi lenguaje natural)– …

07/11/2008 Arquitectura de Computadores Paralelos

16

1.3 Generación de computadores

QuintaQuinta

SextaSexta

19381938--19531953

19521952--19631963

19621962--19751975

19721972--19861986

19821982--19891989

19901990--actualidadactualidad

20002000

RelesReles+tubo vac+tubo vacííoo

Transistor+diodosTransistor+diodos

SSI y MSI como SSI y MSI como circuito integradocircuito integrado

VLSI, des. de VLSI, des. de comp. comp. persocalespersocales

LSI, LSI, lengleng. de alto nivel, . de alto nivel, compiladores de compiladores de vectorizacivectorizacióónn

Mas de 1000 Mas de 1000 MegaflopsMegaflops es la es la productividad productividad esperadaesperada

07/11/2008 Arquitectura de Computadores Paralelos

17

• Video:– Evolución de procesadores Intel

• El procesador

07/11/2008 Arquitectura de Computadores Paralelos

18

1.4 Tendencias hacia el procesamiento paralelo

• Según Sidney Fernbarch:

“Los maxicomputadores (mainframe) de hoy habían sido considerados “supercomputadores” hace 10 o 20 años. Por la misma razón, los supercomputadores de hoy serán considerados equipos estándar de técnica avanzada dentro de 10 ó 20 años”

• Tendencia, 3 puntos de vista:

•• Procesamiento del Procesamiento del computador,computador,

•• Sistema operativo ySistema operativo y

•• Velocidad del procesador Velocidad del procesador (chip)(chip)

07/11/2008 Arquitectura de Computadores Paralelos

19

a) Desde el punto de vista del procesamiento

• La corriente es la tendencia de 4 niveles de sofisticación ascendente:

– Procesamiento de datos– Procesamiento de información– Procesamiento de conocimiento– Procesamiento de inteligencia– Procesamiento de imagen

Alto grado de Alto grado de paralelismoparalelismo

07/11/2008 Arquitectura de Computadores Paralelos

20

Procesamiento de datosProcesamiento de datos

ProcesProces..dede

inteligenciainteligencia

Procesamiento de informaciProcesamiento de informacióónn

Procesamiento de Procesamiento de conocimientosconocimientos

Volumen Volumen creciente de creciente de material a material a procesarprocesar

Creciente Creciente complejidad complejidad y y sofisticacisofisticacióón n del proceso del proceso (alto grado (alto grado de de paralelismo)paralelismo)

Los espacios de datos, información, conocimiento e inteligencia desde el punto de vista del procesamiento por computador.

07/11/2008 Arquitectura de Computadores Paralelos

21

b) Desde el punto de vista del sistema operativo

• Han mejorado en 4 fases:

– Procesamiento por lotes (batch)– Multiprogramación– Tiempo compartido– Multiprocesamiento

• Se refuerzan los 4 niveles (datos, información, conocimiento e inteligencia) ascendentemente del procesamiento por computador

Aumenta el Aumenta el grado de grado de paralelismoparalelismo

07/11/2008 Arquitectura de Computadores Paralelos

22

1.5 ParalelismoConceptos básicos de paralelismo

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

• Proceso: Es un concepto del SO, ligado al de programa:– Realización de un trabajo, con los recursos asociados que necesite – Espacio de memoria (instrucciones+datos)– Tiempo de procesador– Tarea: Término usado en los SO antiguos (DOS, MVT…) para definir los

procesos. No implica ningún tipo de reserva de memoria ni gestión de concurrencia (no lo permitían los SO).

• Hilo ó Hebra (Threading): 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– OS/2, WinNT utilizaban hebras– Una hebra puede estar ejecutándose, preparada para ejecutarse o bloqueada.

07/11/2008 Arquitectura de Computadores Paralelos

23

1.5 Paralelismo

• Ejecución concurrente: es el comportamiento temporal del modelo 1 servidor-N clientes. Es secuencial si lo miramos en un instante pequeño de tiempo pero simultáneo si lo vemos con una perspectiva temporal más amplia– Cuestión a resolver: cómo los clientes acceden a los recursos del

servidor de una manera eficiente y justa.• Tiempo compartido: ninguna tarea se apropia del servidor, sino

que este va rotando entre las distintos clientes

• Ejecución paralela: Corresponde con el modelo N Clientes – N Servidores. Esto permite estar trabajando a la vez con más de un cliente (proceso o hilos) a la vez.– Debe haber mecanismos para la gestión de los recursos

compartidos (memoria, dispositivos).

Conceptos básicos de paralelismo

07/11/2008 Arquitectura de Computadores Paralelos

24

1.5.1 Tipos y niveles• Tipos de paralelismo

– Paralelismo funcional: Aquel que se refleja en la lógica de la solución de un problema (en los diagramas de flujo y, por tanto, en el código).

– Paralelismo de datos:Se consigue mediante el uso de estructuras de datos que permiten operaciones paralelas sobre sus elementos (vectores, matrices…)

• Niveles de paralelismo– A nivel de instrucción (fine-grained)

– A nivel de bucle (middle-grained)

– A nivel de procedimiento o tarea (middle-grained)

– A nivel de programa (coarse-grained)

• Los niveles 1 a 3 se pueden explotar mediante la arquitectura dela máquina• Los niveles 2 a 4 se pueden explotar mediante el sistema operativo

Desarrollo de algoritmos procesables en paraleloDesarrollo de algoritmos procesables en paralelo

DescomposiciDescomposicióón de un programa en mn de un programa en múúltiples tareasltiples tareas

Explota la concurrencia entre mExplota la concurrencia entre múúltiples instrucciones. Es ltiples instrucciones. Es deseable la deseable la vectorizacivectorizacióónn

Operaciones mas rOperaciones mas ráápidas y concurrentes dentro de c/instruccipidas y concurrentes dentro de c/instruccióón, se n, se implementa con frecuencia directamente por medio de hardwareimplementa con frecuencia directamente por medio de hardware

07/11/2008 Arquitectura de Computadores Paralelos

25

Ejemplo

Concurrencia, uso de Concurrencia, uso de CobeginCobegin

07/11/2008 Arquitectura de Computadores Paralelos

26

1.5.2 Técnicas

• Utilización del paralelismo funcional

– A nivel de instrucción. Arquitecturas ILP (Instruction Level Parallel)• Se encargan los compiladores

– A nivel de proceso y/o hebra. • Depende de un buen diseño y programación

• Modelos de ejecución concurrente

– Multihilo:Para cada proceso se pueden generar varias hebras que son ejecutadas concurrentemente en un mismo procesador bajo la gestión del SO.

– Multitarea: Ejecución concurrente de procesos.– Multiprogramación:Utilización 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.

07/11/2008 Arquitectura de Computadores Paralelos

27

1.5.3 ¿Qué es procesamiento paralelo?

• Es una forma eficaz de procesamiento de información que favorece la explotación de los sucesos concurrentes en el proceso de computación.

P1P1 P2P2 . . .. . . P1P1P2P2

P3P3P4P4

tt

sucesossucesos

. . .. . .

tt

pasadopasado presentepresente

07/11/2008 Arquitectura de Computadores Paralelos

28

1.5.3 ¿Qué es procesamiento paralelo?

ParalelismoParalelismo SimultaneidadSimultaneidad Solapamiento Solapamiento [segmentaci[segmentacióón encauzada n encauzada ((pipeliningpipelining)])]

Concurrencia implicaConcurrencia implica

•• Los sucesos Los sucesos paralelos son los que paralelos son los que pueden producirse en pueden producirse en diferentes recursos diferentes recursos durante el mismo durante el mismo intervalo de tiempointervalo de tiempo

•• Los sucesos Los sucesos simultsimultááneos son los neos son los que pueden que pueden producirse en el producirse en el mismo instantemismo instante

•• Los sucesos Los sucesos solapados son los solapados son los que pueden que pueden producirse en producirse en intervalos de tiempo intervalos de tiempo superpuestossuperpuestos

07/11/2008 Arquitectura de Computadores Paralelos

29

1.5.3 ¿Qué es procesamiento paralelo?

• Estos sucesos concurrentes pueden darse en un sistema computador en varios niveles de procesamiento (monoprocesador o multiprocesador).

• El procesamiento paralelo exige la ejecución concurrente en el computador de muchos programas.

• El nivel mas alto de procesamiento paralelo se aplica a trabajos y programas múltiples a través de multiprogramación, tiempo compartido y multiprocesamiento.

07/11/2008 Arquitectura de Computadores Paralelos

30

1.5.3 ¿Qué es procesamiento paralelo?

• Conforme las tecnologías de comunicaciones de datos progresa, la distinción entre procesamiento paralelo y distribuido se hace mas y mas pequeño.

Procesamiento DistribuidoProcesamiento Distribuido -- Redes de computadoras dispersos Redes de computadoras dispersos y dy déébilmente acopladosbilmente acoplados

-- Se puede alcanzar alto grado de Se puede alcanzar alto grado de concurrencia en sistemas distribuidosconcurrencia en sistemas distribuidos

07/11/2008 Arquitectura de Computadores Paralelos

31

1.6 Paralelismo en sistemas Monoprocesadores

• Inicio Un solo procesador central

• Actualidad Procesadores múltiples

•• ProgProg. concurrente. concurrente

•• LLíímite en la consecucimite en la consecucióón de alto n de alto rendimientorendimiento

••Necesidad de un controlador de Necesidad de un controlador de procesamiento paralelo, para incrementar procesamiento paralelo, para incrementar la potencia de cla potencia de cáálculolculo

•• Memoria y perifMemoria y perifééricos ricos compartidos bajo control de compartidos bajo control de un sistema operativo un sistema operativo integradointegrado

Sist. monoprocesador

Sist. multiprocesador

07/11/2008 Arquitectura de Computadores Paralelos

32

1.6.1 Arquitectura básica de un monoprocesador

• Consta de 3 partes esenciales:

– Unidad Central de proceso (UCP)– Memoria principal– Subsistema de entrada/salida (E/S)

07/11/2008 Arquitectura de Computadores Paralelos

33

Bus Bus synchronoussynchronous backplanebackplaneInterconnectInterconnect((TriTri--StateState))

Arquitectura del sistema monoprocesador VAX 11/780 de tipo supermidi.(Cortesia de Digital Equipment Corporation)

07/11/2008 Arquitectura de Computadores Paralelos

34Arquitectura del computador monoprocesador IBM Sistema 360/Modelo 168 de tipo maxicomputador.(Cortesia de International Business Machines Corp.)

07/11/2008 Arquitectura de Computadores Paralelos

35

Hoy Día

CPUCPU MemoriaMemoria E/SE/S

Buses de direcciBuses de direccióón, datos y controln, datos y control((BusTriBusTri--StateState))

07/11/2008 Arquitectura de Computadores Paralelos

36

• Video:– Dentro del PC

07/11/2008 Arquitectura de Computadores Paralelos

37

1.6.2 Mecanismo de procesamiento paralelo

• Los sistemas monoprocesador se basan en la arquitectura Von Neumann.

• Formas de dotar paralelismo:

1.1. Multiplicidad de unidades funcionalesMultiplicidad de unidades funcionales2.2. Paralelismo y segmentaciParalelismo y segmentacióón encauzada (n encauzada (pipelingpipeling) dentro de la ) dentro de la

UCPUCP3.3. Solapamiento de operaciones de E/S y UCPSolapamiento de operaciones de E/S y UCP4.4. Uso de sistemas jerUso de sistemas jeráárquicos de memoriarquicos de memoria5.5. Equilibrado de los anchos de banda de los subsistemasEquilibrado de los anchos de banda de los subsistemas6.6. MultiprogramaciMultiprogramacióón y tiempo compartidon y tiempo compartido

07/11/2008 Arquitectura de Computadores Paralelos

38

1. Multiplicidad de unidades funcionales

• Los primeros computadores disponían de un solo ALUun solo ALU en la UCP.• El ALU podía realizar una función cada vez, proceso demasiado lento

para efectuar una larga secuencia de instrucciones aritméticas y lógicas.

• La multiplicidad de unidades funcionales, en la practica, equivale a que muchas de las funciones de la ALU pueden estar distribuidas sobre múltiples unidades funcionales especializadas que pueden operar en paralelo (posibilidad de varias posibilidad de varias ALUALU’’ss)

•• ActualmenteActualmente el PC y procesadores periféricos están equipados con mmúúltiples unidades funcionalesltiples unidades funcionales para realizar operaciones aritmético-lógicas paralelas o simultaneas (multiplicidad altamente encauzada)

07/11/2008 Arquitectura de Computadores Paralelos

39•• Con 10 Unidades funcionales 24 registros disponibles, la velociCon 10 Unidades funcionales 24 registros disponibles, la velocidad de procesamiento de instrucciones se dad de procesamiento de instrucciones se incrementa significativamenteincrementa significativamente

(son (son independientes y independientes y pueden operar pueden operar simultaneamentesimultaneamente))

(UCP)(UCP)

ALUALUArquitectura del computador CDC-6000, 10 ALU’s

07/11/2008 Arquitectura de Computadores Paralelos

40

2. Segmentación encauzada

• Fases de ejecución de una instrucción– Extracción de la instrucción– Decodificación– Extracción de operandos– Ejecución operación– Almacenamiento de resultados

• Estas etapas se ejecutan una tras otra• Se puede estar a la vez ejecutando distintas instrucciones,

pero cada una estará en una etapa distinta• Incorporan sumadores paralelos, empleando técnicas de

anticipación de acarreo y salvaguarda de acarreo (incorporados hoy en día en casi la mayoría de ALU’s)

07/11/2008 Arquitectura de Computadores Paralelos

41

2. Segmentación encauzada

Segmento 1

Segmento 2

Segmento 3Segmento 4

Segmento 5

Extracción de instrucción

Decodificación

Extracción del operando

Ejecución aritmético-lógico

Almacenamiento del resultado

1 CPI

CPI: Ciclo de reloj por instrucción

TotalnesinstruccioNro

CPInesinstruccioNroCPI

n

iii

.

*.1

07/11/2008 Arquitectura de Computadores Paralelos

42

3. Solapamiento de las operaciones de E/S y CPU

• Las operaciones de E/S son mucho más lenta que los cálculos (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

información desde los dispositivos de E/S hasta la memoria del sistema.

• El canal de acceso directo a memoria (DMA: DirectMemory Acces) trabaja mediante robos de ciclos a la UCP

• De esta gestión se encarga el SO

07/11/2008 Arquitectura de Computadores Paralelos

43

4. Uso de sistemas jerárquicos de memoria

• La memoria se divide en niveles jerárquicos• Debido a las propiedades de localidad espacial y

temporal, se puede hacer uso de memorias más pequeñas pero más rápidas entre el procesador y la memoria principal.– Localidad espacial: la siguiente instrucción suele estar cerca– Localidad temporal: la siguiente instrucción suele haberse

ejecutado hace poco

• Los niveles más rápidos son los más próximos en la jerarquía

07/11/2008 Arquitectura de Computadores Paralelos

44

5. Equilibrado del ancho de banda en los subsistemas

• El ancho de banda se define como el número de operaciones efectuadas por unidad de tiempo

• En general, la UCP es la unidad más rápida, con un tiempo de ciclo Tp. (p.e. Tp=10 ns)

• El tiempo de ciclo de memoria se denota por Tm (p.e. Tm=200 ns)• Los dispositivos de E/S son los más lentos, y en general se denomina

Td (p.e. Td=5 ms)• Se cumple por tanto la siguiente relación:

– Td>Tm>Tp Td<Tm<Tp• Estas diferencias hacen necesario equiparar los anchos de banda de

procesamiento – Número de operaciones que se pueden realizar por unidad de tiempo.– Número de palabras que se pueden acceder por unidad de tiempo– Número de bytes que se pueden acceder por unidad de tiempo

07/11/2008 Arquitectura de Computadores Paralelos

45

5. Equilibrado del ancho de banda en los subsistemas

• Técnicas de equilibrado:– Entre CPU y memoria: Uso de caché– Entre memoria y disp. E/S:

• Uso de canales a diferentes velocidades (multiplexación y memorización)

• Uso de controladores dedicados

• Sistema equilibrado:Um

Ud

Up BBB

07/11/2008 Arquitectura de Computadores Paralelos

46

5. Equilibrado del ancho de banda en los subsistemas

07/11/2008 Arquitectura de Computadores Paralelos

47

6. Multiprogramación y tiempo compartido(multitarea)

• Manera eficaz de cómo reparte recursos un monoprocesador apoyado por el SO.

• Aun cuando en un sistema monoprocesador solo exista una UCP, se logra alcanzar alto grado de compartición de recursos entre muchos programas de usuario.

07/11/2008 Arquitectura de Computadores Paralelos

48

6. Multiprogramación y tiempo compartido(multitarea)

• Multiprogramación: Usar las operaciones de E/S de un proceso para ejecutar otro (siempre que no se pisen recursos)– Ejecución simultanea de varios programas dentro del sistema

durante el ancho de banda del procesador (Bp)

• Tiempo compartido: Evitar que un proceso monopolice el procesador (p.ej. Si no hace operaciones de E/S)– Da igual de oportunidad a todo slos programas que compiten por

el uso del UCP

07/11/2008 Arquitectura de Computadores Paralelos

49

07/11/2008 Arquitectura de Computadores Paralelos

50

6. Multiprogramación y tiempo compartido(multitarea)

Por tanto:• Es eficaz cuando se aplica a un computador conectado a

muchos terminales interactivos (p.e Betwin)• El tiempo compartido es indispensable para el desarrollo

de computadores de tiempo real.• Compartir el tiempo en multiprocesadores es complicado.• El rendimiento de un multiprocesador depende en gran

medida de la capacidad del sistema operativo. • La función principal de un SO es optimizar la asignación y

administración de los recursos.

07/11/2008 Arquitectura de Computadores Paralelos

51

1.7 Estructuras de computadores paralelos

• Para favorecer al procesamiento paralelo se conoce tres Arquitecturas:

– Procesadores de segmentación encauzada

– Procesadores matriciales

– Sistemas multiprocesadores

07/11/2008 Arquitectura de Computadores Paralelos

52

1.7.1 Procesadores de segmentación encauzada

• Se aprovecha que las instrucciones se dividen en etapas separadas para solapar la ejecución de varias instrucciones.

• Un ciclo de ejecución consta de varios ciclos de cauce. El ciclo de cauce viene determinado por el retardo de la etapa más lenta.

• En teoría, un ordenador con k-etapas podría ser k-veces más rápido que su equivalente no segmentado.

07/11/2008 Arquitectura de Computadores Paralelos

53

1.7.2 Procesadores matriciales

• Computador paralelo y síncrono con múltiples ALUs que pueden operar en paralelo realizando la misma función.

• 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 están conectados mediante una red dinámica.

07/11/2008 Arquitectura de Computadores Paralelos

54

1.7.3 Sistemas Multiprocesadores

• Consta de varios procesadores con capacidades similares, compartiendo accesos a una memoria común y dividida en módulos.

• 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 comunicación entre procesadores se puede realizar mediante:

– Memoria principal– Red de interconexión– Gestión de interrupciones

• Se considera la descentralización de operaciones: sistemas distribuidos.

07/11/2008 Arquitectura de Computadores Paralelos

55

Nuevas tendencias

• La realización de las tareas está limitada a la disponibilidad de datos:– Ordenar las instrucciones en función de las dependencias de

datos– Los programas se representan como grafos de flujos de datos.– Las instrucciones se implementarían con plantillas.– Esto permite un análisis formal del programa y verificar su

corrección.

• Implementación hardware de algoritmos masivamente paralelos.

07/11/2008 Arquitectura de Computadores Paralelos

56

1.8 .Aplicaciones del procesamiento paralelo

• Modelización predictiva y simulaciones– La modelización de la superficie terrestre o de la atmósfera supone una

gran carga computacional (unos 1000 millones de MFLOPS)– P. ej. La predicción del tiempo a 24 horas vista, con precisión de 160000

km2 (400x400) supone unos 100 billones de operaciones (100 minutos en un Cray-1). Si queremos precisión de 40.000 km2, se necesitarían 14 horas.

• Diseño y automatización de proyectos de ingeniería– Análisis de elementos finitos, aerodinámica computacional, inteligencia

artificial, robótica, visión computacional …• Exploración de recursos energéticos

– Modelización de yacimientos, seguridad de reactores nucleares• Investigación médica

– Tomografía computerizada, síntesis de proteínas, …