Tema 01:_Introducción al Procesamiento Paralelo

Anuncio
ESPG
MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA
ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN
Tema 01:
Introducción al
Procesamiento Paralelo
Prof: Alberto E. Cohaila Barrios
T em
pe
ra tu
re
F lo
w
P re
07/11/2008
Arquitectura de Computadores Paralelos
s su
re A
la rm
Co
nd
ito
i
ns
ST
Co
n tro
l Pa
nel
OP
[email protected], [email protected], [email protected]
1
Temas a desarrollar:
1.
2.
3.
4.
5.
6.
7.
Introducción al procesamiento paralelo
Rendimiento en los computadores
Paralelismo en sistemas monoprocesadores
Principios de Segmentación encauzada
Computadores de Segmentación encauzada
Estructura y algoritmos en procesadores matriciales
Arquitectura y programación de los multiprocesadores:
Pascal FC, LabVIEW y C++
8. Multiprocesamiento
9. Arquitectura paralela distribuida: Cluster
10. Aplicaciones
07/11/2008
Arquitectura de Computadores
Paralelos
2
1. Introducción al procesamiento paralelo
• Conceptuación de Procesamiento Paralelo (PP)
Computador de altas prestaciones
• Servidor
• PC industrial
• PC usuario
Evolución de la
arquitectura
Concurrencia en
sistemas
informáticos
modernos
Aplicaciones
avanzadas
- Demanda creciente 07/11/2008
Arquitectura de Computadores
Paralelos
3
1. Introducción al paralelismo
• Conceptuación de Procesamiento Paralelo (PP)
Estructura de los computadores paralelos
clasificación:
Computadores de
segmentación
encausada
Procesadores
matriciales
Sistemas
multiprocesadores
técnicas: • VLSI y
07/11/2008
• Flujo
Arquitectura de Computadores
Paralelos
de datos
4
1.1 Concepto de Arquitectura de
computadores
• 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
07/11/2008
Arquitectura de Computadores
Paralelos
5
1.1 Concepto de Arquitectura de
computadores
• Bell y Newell, en 1970, introdujeron una
descripción multinivel jerárquica:
–
–
–
–
Nivel
Nivel
Nivel
Nivel
de
de
de
de
circuito eléctrico
diseño lógico
programación
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
6
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 software
subyacentes 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
7
1.2 Evolución de los computadores
Seguridad
Banco de datos
Canales de
comunicació
comunicación Dispositivos
perifé
periféricos
El sistema informático moderno
Composición de elementos tales como:
Sistemas operativos
Procesadores
Memorias
07/11/2008
Unidades
funcionales
Redes de
interconexió
interconexión
Arquitectura de Computadores
Paralelos
Compiladores
8
Ejemplo 01:
Sistema de monitoreo remoto de variables de clima como
alternativa de solución al Agro en la región de Tacna
Problema
computacional
Medició
Medición de variables de temperatura,
radiació
radiación, humedad, velocidad de viento;
adquirir, visualizar y almacenar el BD.
Luego el envió
envió de informació
información historica
de modo remoto a usuarios (agricultor)
final.
Sistema operativo + lenguaje de programación
Comprender la
estructura
Hardware y software
+
Algoritmo computacional
07/11/2008
Arquitectura de Computadores
Paralelos
9
Ejemplo 02:
Comunicación entre Host basados en el estándar USB 2.0
(NO ethernet)
Problema
computacional
Elaborar el algoritmo de protocolo
de red bajo la normativa USB 2.0
que comunique mas de 2 host.
host.
Sistema operativo + lenguaje de programación
Comprender la
estructura
Hardware y software
+
Algoritmo computacional
07/11/2008
Windows vista + Java
- Algoritmo de multiprogramació
multiprogramación - Driver del fabricante
Arquitectura de Computadores
Paralelos
10
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
11
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
12
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
13
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
14
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
15
1.3 Generación de computadores
19901990-actualidad
Sexta
Quinta
19721972-1986
Mas de 1000
19821982-1989
Megaflops es la
productividad
VLSI, des. de esperada
comp. persocales
LSI, leng.
leng. de alto nivel,
19621962-1975 compiladores de vectorizació
vectorización
19521952-1963
19381938-1953
SSI y MSI como
circuito integrado
Transistor+diodos
Reles+tubo
Reles+tubo vací
vacío
07/11/2008
Arquitectura de Computadores
Paralelos
16
2000
• Video:
– Evolución de procesadores Intel
• El procesador
07/11/2008
Arquitectura de Computadores
Paralelos
17
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”
• Procesamiento del
computador,
• Tendencia, 3 puntos de vista:
07/11/2008
• Sistema operativo y
• Velocidad del procesador
Arquitectura de Computadores(chip)
Paralelos
18
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
07/11/2008
Arquitectura de Computadores
Paralelos
Alto grado de
paralelismo
19
Volumen
creciente de
material a
procesar
Proces.
Proces.
de
inteligencia
Procesamiento de
conocimientos
Procesamiento de informació
información
Creciente
complejidad
y
sofisticació
sofisticación
del proceso
(alto grado
de
paralelismo)
Procesamiento de datos
07/11/2008
Arquitectura de Computadores
Los espacios de datos, información, conocimiento e inteligencia desde el punto de vista del
Paralelos
procesamiento por computador.
20
b) Desde el punto de vista del sistema
operativo
• Han mejorado en 4 fases:
–
–
–
–
Procesamiento por lotes (batch)
Multiprogramación
Tiempo compartido
Multiprocesamiento
Aumenta el
grado de
paralelismo
• Se refuerzan los 4 niveles (datos, información,
conocimiento e inteligencia) ascendentemente del
procesamiento por computador
07/11/2008
Arquitectura de Computadores
Paralelos
21
1.5 Paralelismo
Conceptos 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
22
1.5 Paralelismo
Conceptos básicos de 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).
07/11/2008
Arquitectura de Computadores
Paralelos
23
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)
Explota la concurrencia entre múltiples instrucciones. Es
deseable la vectorización
– A nivel de bucle (middle-grained)
Operaciones mas rápidas y concurrentes dentro de c/instrucción, se
implementa con frecuencia directamente por medio de hardware
– A nivel de procedimiento o tarea (middle-grained)
Descomposición de un programa en múltiples tareas
– A nivel de programa (coarse-grained)
Desarrollo de algoritmos procesables en paralelo
• Los niveles 1 a 3 se pueden explotar mediante la arquitectura dela máquina
07/11/2008
Arquitectura
de Computadores
• Los niveles 2 a 4 se pueden explotar
mediante
el sistema operativo
Paralelos
24
Ejemplo
Concurrencia, uso de Cobegin
07/11/2008
Arquitectura de Computadores
Paralelos
25
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
26
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.
presente
pasado
P1
P2
...
t
P1
t
P2
P3
P4
07/11/2008
Arquitectura de Computadores
Paralelos
...
sucesos
27
1.5.3 ¿Qué es procesamiento paralelo?
Concurrencia implica
Paralelismo
• Los sucesos
paralelos son los que
pueden producirse en
diferentes recursos
durante el mismo
intervalo de tiempo
07/11/2008
Simultaneidad
• Los sucesos
simultá
simultáneos son los
que pueden
producirse en el
mismo instante
Arquitectura de Computadores
Paralelos
Solapamiento
[segmentación encauzada
(pipelining)]
• Los sucesos
solapados son los
que pueden
producirse en
intervalos de tiempo
superpuestos
28
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
29
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 Distribuido
- Redes de computadoras dispersos
y débilmente acoplados
- Se puede alcanzar alto grado de
concurrencia en sistemas distribuidos
07/11/2008
Arquitectura de Computadores
Paralelos
30
1.6 Paralelismo en sistemas
Monoprocesadores
• Inicio  Un solo procesador central
• Prog.
Prog. concurrente
Sist. monoprocesador
• Límite en la consecució
consecución de alto
rendimiento
•Necesidad de un controlador de
procesamiento paralelo, para incrementar
la potencia de cá
cálculo
• Actualidad  Procesadores múltiples
Sist. multiprocesador
07/11/2008
• Memoria y perifé
periféricos
compartidos bajo control de
un sistema operativo
integrado
Arquitectura de Computadores
Paralelos
31
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
32
Bus synchronous backplane
Interconnect
(TriTri-State)
State)
07/11/2008
Arquitectura del sistema monoprocesador
11/780 de tipo supermidi.
Arquitectura de VAX
Computadores
(Cortesia de Digital Equipment
ParalelosCorporation)
33
Arquitectura del computador monoprocesador IBM Sistema 360/Modelo 168 de tipo maxicomputador.
Computadores
(Cortesia deArquitectura
Internationalde
Business
Machines Corp.)
07/11/2008
Paralelos
34
Hoy Día
CPU
Memoria
E/S
Buses de dirección, datos y control
(BusTri-State)
07/11/2008
Arquitectura de Computadores
Paralelos
35
• Video:
– Dentro del PC
07/11/2008
Arquitectura de Computadores
Paralelos
36
1.6.2 Mecanismo de procesamiento
paralelo
•
Los sistemas monoprocesador se basan en la
arquitectura Von Neumann.
•
Formas de dotar paralelismo:
1.
2.
3.
4.
5.
6.
07/11/2008
Multiplicidad de unidades funcionales
Paralelismo y segmentación encauzada (pipeling) dentro de la
UCP
Solapamiento de operaciones de E/S y UCP
Uso de sistemas jerárquicos de memoria
Equilibrado de los anchos de banda de los subsistemas
Multiprogramación y tiempo compartido
Arquitectura de Computadores
Paralelos
37
1. Multiplicidad de unidades funcionales
•
•
Los primeros computadores disponían de un 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 ALU’s)
• Actualmente el PC y procesadores periféricos están equipados con
múltiples unidades funcionales para realizar operaciones aritméticológicas paralelas o simultaneas (multiplicidad altamente encauzada)
07/11/2008
Arquitectura de Computadores
Paralelos
38
Arquitectura del computador CDC-6000, 10 ALU’s
ALU
(son
independientes y
pueden operar
simultaneamente)
simultaneamente)
(UCP)
•07/11/2008
Con 10 Unidades funcionales 24 registros
Arquitectura
disponibles,
de Computadores
la velocidad
velocidad de procesamiento de instrucciones se 39
Paralelos
incrementa significativamente
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
40
2. Segmentación encauzada
Extracción de
instrucción
Segmento 1
Almacenamiento
del resultado
Segmento 2
Segmento 5
Decodificación
1 CPI
n
 Nro. instrucciones
CPI 
i
* CPI i
i 1
Nro. instruccio nes Total
CPI: Ciclo de reloj por instrucción
Segmento 4
Segmento 3
Ejecución
aritmético-lógico
07/11/2008
Extracción del
operando
Arquitectura de Computadores
Paralelos
41
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: Direct
Memory Acces) trabaja mediante robos de ciclos a la UCP
• De esta gestión se encarga el SO
07/11/2008
Arquitectura de Computadores
Paralelos
42
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
43
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
44
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:
BUp  BdU  BmU
07/11/2008
Arquitectura de Computadores
Paralelos
45
5. Equilibrado del ancho de banda
en los subsistemas
07/11/2008
Arquitectura de Computadores
Paralelos
46
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
47
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
48
07/11/2008
Arquitectura de Computadores
Paralelos
49
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
50
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
51
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 kveces más rápido que su equivalente no
segmentado.
07/11/2008
Arquitectura de Computadores
Paralelos
52
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
53
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
54
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
55
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, …
07/11/2008
Arquitectura de Computadores
Paralelos
56
Descargar