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, …
Top Related