COMPUTACIÓN PARALELA
Un computador
paralelo es un conjunto de procesadores capaces de cooperar en la solución de
un problema.
El problema se
divide en partes. Cada parte se compone de un conjunto de instrucciones. Las
instrucciones de cada parte se ejecutan simultáneamente en diferentes CPUs.
Técnicas computacionales que descomponen un problema en sus tareas y pistas que
pueden ser computadas en diferentes máquinas o elementos de proceso al mismo
tiempo.
Por qué utilizar
computación paralela?
Reducir el tiempo
de procesamiento
Resolver problemas
de gran embergadura.
Proveer
concurrencia.
Utilizar recursos
remotos de cómputo cuando los locales son escasos.
Reducción de
costos usando múltiples recursos”baratos” en lugar de costosas
supercomputadoras.
Ampliar los
límites de memoria para resolver problemas grandes.
El mayor problema
de la computación paralela radica en la complejidad de sincronizar unas tareas
con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes,
para garantizar la exclusión mutua en las zonas del código en las que sea
necesario.
La computación
paralela está penetrando en todos los niveles de la computación, desde
computadoras masivamente paralelas usados en las ciencias de larga escala
computacional, hasta servidores múltiples procesadores que soportan
procesamiento de transacciones. Los principales problemas originados en cada
uno de las áreas básicas de la informática (por ejemplo, algoritmos, sistemas,
lenguajes, arquitecturas, etc.) se vuelven aún más complejos dentro del
contexto de computación paralela.
DE CIRCUITOS, BASADOS EN BUS, ANILLO O CON
CONMUTADOR
Existen varias
formas de implantar físicamente memoria compartida distribuida, a continuación
se describen cada una de ellas.
Memoria basada en
circuitos: Existe una
única área de memoria y cada micro tiene su propio bus de datos y direcciones
(en caso de no tenerlo se vuelve un esquema centralizado)
MCD basada en bus: En este esquema los micros comparten un bus
de datos y direcciones por lo que es más barato de implementar, se necesita
tener una memoria caché grande y sumamente rápida.
Multiprocesadores tipo bus
Conexión entre CPU
y memoria se hace a través de cables paralelos:
o algunos transmiten
las direcciones y datos que el CPU quiere leer o escribir
o otros envían o
reciben datos
o el resto para
controlar las transferencias.
Dicha colección de
cables se conoce con el nombre de bus.
Buses pueden ser
parte del chip, pero en la mayoría de los sistemas los buses son externos y son
usados para conectar circuitos impresos.
Una forma simple
de construir multiprocesadores es conectarlos en un bus con más de un CPU
MCD basada en
anillos: Es más
tolerante a fallos, no hay coordinador central y se privilegia el uso de la
memoria más cercana.
Multiprocesadores basados en anillo.
Ejemplo Memnet: un
espacio de direcciones se divide en una parte privada y otra compartida.
La parte privada:
o se divide en
regiones cada máquina cuenta con memoria para su pila, datos y códigos no
compartidos.
Parte compartida:
o común a todas las
máquinas y se guarda de forma consistente mediante un protocolo de hardware
parecido a los de bus se divide en bloques de 32 bytes, (unidad transferencia)
MCD basada en
conmutador: Varios
micros se conectan entre sí en forma de bus formando un grupo, los grupos están
interconectados entre sí a través de un conmutador. Cuando se realiza una
operación de memoria se intenta realizar dentro del grupo, de lo contrario pasa
al conmutador para que lo redirecciones a otro grupo.
Multiprocesadores con conmutador.
En anillo o bus,
el hecho de añadir un CPU satura el ancho de banda del bus o anillo
Dos métodos para
solucionar el problema:
o 1. Reducir la
cantidad de comunicación
o 2. Incrementar la
capacidad de comunicación
Una forma de
reducir la cantidad de comunicación es el ocultamiento trabajo adicional en
esta área:
- mejorar protocolo de ocultamiento
- optimizar el tamaño del bloque
- incrementar la localidad de las referencias a memoria.
Sin embargo
siempre se querrá añadir más CPUs y no habrá más ancho de banda en el bus.
No hay comentarios:
Publicar un comentario