Está en la página 1de 39

Unidad 4

Procesamiento Paralelo
4.1 COMPUTACION PARALELA

La computacin paralela es una forma de cmputo en la que


muchas instrucciones se ejecutan simultneamente,1 operando
sobre el principio de que problemas grandes, a menudo se
pueden dividir en unos ms pequeos, que luego son resueltos
simultneamente (en paralelo).
Diferentes tipos de paralelismo:

Paralelismo a nivel de bit


Paralelismo a nivel de instruccin
Paralelismo de datos
Paralelismo de tareas.
Se emplea generalmente en la computacin de altas
presentaciones
Limitaciones fsicas que impiden; aumento infrecuencia como
el consumo de energa
Se a convertido en el paradigma dominante en la arquitectura
de las computadoras (procesadores)
Las computadoras paralelas se
clasifican segn el nivel de
paralelismo que admite su
hardware:

Equipos con procesadores multincleo


Equipos con multi-procesador
Se trata que la tarea se divida en tareas
mas pequeas
Se da de dos formas:

Multiprocesador: se cuenta con una memoria y unos dispositivos de


E/S compartidos unidos con una red de interconexin a los
procesadores encargados de ejecutar a las diversas tareas
Es como tener una computadora con muchos procesadores

Multicomputadores: tener dos o mas computadoras que estn


interconectadas
Son tres los pasos a considerar
para realizar computacin
paralela
1-Tomar una tarea y dividir las subtareas
2-Asignar las tareas para que los procesadoras
las hagan
3-Comunicacin, si no no puedes operar a la
ves
4.2 Tipos de computacin paralela
PARALELISMO A NIVEL DE BIT

Desde el advenimiento de la integracin a gran escala (VLSI) como


tecnologa de fabricacin de chips de computadora en la dcada de 1970
hasta alrededor de 1986, la aceleracin en la arquitectura de
computadores se lograba en gran medida duplicando el tamao de
la palabra en la computadora, la cantidad de informacin que el
procesador puede manejar por ciclo.
El aumento del tamao de la palabra reduce el
nmero de instrucciones que el procesador debe
ejecutar para realizar una operacin en variables
cuyos tamaos son mayores que la longitud de la
palabra.
Por ejemplo, cuando un procesador de 8 bits debe sumar dos enteros
de 16 bits, el procesador primero debe adicionar los 8 bits de orden
inferior de cada nmero entero con la instruccin de adicin, a
continuacin, aadir los 8 bits de orden superior utilizando la
instruccin de adicin con acarreo que tiene en cuenta el bit de
acarreo de la adicin de orden inferior, en este caso un procesador de
8 bits requiere dos instrucciones para completar una sola operacin,
en donde un procesador de 16 bits necesita una sola instruccin para
poder completarla.
PARALELISMO A NIVEL DE INSTRUCCIN

Un programa de ordenador es, en esencia, una secuencia de


instrucciones ejecutadas por un procesador. Estas instrucciones
pueden reordenarse y combinarse en grupos que luego son ejecutadas
en paralelo sin cambiar el resultado del programa. Esto se conoce
como paralelismo a nivel de instruccin. Los avances en el paralelismo
a nivel de instruccin dominaron la arquitectura de computadores desde
mediados de 1980 hasta mediados de la dcada de 1990.
Los procesadores modernos tienen pipeline de instrucciones de
varias etapas. Cada etapa en el pipeline corresponde a una accin
diferente que el procesador realiza en la instruccin correspondiente a
la etapa; un procesador con un pipeline de N etapas puede tener hasta
n instrucciones diferentes en diferentes etapas de finalizacin. El
ejemplo cannico de un procesador segmentado es un
procesador RISC, con cinco etapas: pedir instruccin, decodificar,
ejecutar, acceso a la memoria y escritura. El procesador Pentium
4tena un pipeline de 35 etapas.
Adems del paralelismo a nivel de instruccin del pipelining, algunos
procesadores pueden ejecutar ms de una instruccin a la vez.
Estos son conocidos como procesadores superes calares. Las
instrucciones pueden agruparse juntas slo si no hay dependencia
de datos entre ellas. El scoreboarding y el algoritmo de
Tomasulo (que es similar a scoreboarding pero hace uso del ) son
dos de las tcnicas ms comunes para implementar la ejecucin
fuera de orden y la paralelizacin a nivel de instruccin.
PARALELISMO DE DATOS

El paralelismo de datos es el paralelismo inherente en programas


con ciclos, que se centra en la distribucin de los datos entre los
diferentes nodos computacionales que deben tratarse en paralelo.
Una dependencia de terminacin de ciclo es la dependencia de una
iteracin de un ciclo en la salida de una o ms iteraciones
anteriores. Las dependencias de terminacin de ciclo evitan la
paralelizacin de ciclos.
Este bucle no se puede paralelizar porque CUR depende de s mismo
(PREV2) y de PREV1, que se calculan en cada iteracin del bucle.
Dado que cada iteracin depende del resultado de la anterior, no se
pueden realizar en paralelo. A medida que el tamao de un problema
se hace ms grande, la paralelizacin de datos disponible
generalmente tambin lo hace.
PARALELISMO DE TAREAS

El paralelismo de tareas es la caracterstica de un programa paralelo


en la que clculos completamente diferentes se pueden realizar en
cualquier conjunto igual o diferente de datos. Esto contrasta con el
paralelismo de datos, donde se realiza el mismo clculo en distintos o
mismos grupos de datos. El paralelismo de tareas por lo general no
escala con el tamao de un problema.
4.2.1 Taxonoma de las arquitecturas paralelas
El primer paso hacia la paralelizacin de las arquitecturas de los
computadores, se da con la aparicin de los procesadores o
sistemas vectoriales. Los procesadores vectoriales extienden el
concepto de paralelismo por segmentacin al tratamiento de grandes
cadenas de datos.
Problemas.
Se han propuesto diversas definiciones para arquitecturas paralelas. La
dificultad en definir con precisin el trmino est entrelazada con el
problema de especificar una taxonoma de arquitecturas paralelas. El
problema central para poder especificar una definicin y
consiguientemente la taxonoma para las modernas arquitecturas
paralelas es lograr satisfacer el siguiente conjunto de imperativos:
Excluir las arquitecturas que incorporan solamente mecanismos de
paralelismo de bajo nivel y que se han popularizado tanto como
caracterstica tpica de las modernas computadoras.
Mantener los elementos tiles de la clasificacin de Flynn tales como
los flujos de datos e instrucciones. Incluir los procesadores vectoriales
pipelinizados y otras arquitecturas que intuitivamente ameritan incluirse
como arquitecturas paralelas, pero que no se ajustan fcilmente al
esquema de Flynn.
4.2.2 Arquitectura de los computadores
secuenciales
A diferencia de los sistemas combinacionales, en los sistemas
secuenciales, los valores de las salidas, en un momento dado, no
dependen exclusivamente de los valores de las entradas en dicho
momento, sino tambin de los valores anteriores. El sistema secuencial
ms simple es el biestable.
La mayora de los sistemas secuenciales estn gobernados por
seales de reloj. A stos se los denomina "sncronos" o "sincrnicos",
a diferencia de los "asncronos" o "asincrnicos" que son aquellos que
no son controlados por seales de reloj
A continuacin se indican los principales sistemas secuenciales
que pueden encontrarse en forma de circuito integrado o como
estructuras en sistemas programados:
Contador
*Registros
4.2.2.1 Taxonoma de Flynn
Esta taxonoma de las arquitecturas est basada en la clasificacin
atendiendo al flujo de datos e instrucciones en un sistema. Un flujo
de instrucciones es el conjunto de instrucciones secuenciales que
son ejecutadas por un nico procesador, y un flujo de datos es el
flujo secuencial de datos requeridos por el flujo de instrucciones.
4.2.2.2 Organizacin del espacio de
direcciones de memoria
Organizacin lgica

Los programas a menudo estn organizados en mdulos, algunos de


los cuales pueden ser compartidos por diferentes programas, algunos
son de slo-lectura y otros contienen datos que se pueden modificar.
La gestin de memoria es responsable de manejar esta organizacin
lgica, que se contrapone al espacio de direcciones fsicas lineales.
Una forma de lograrlo es mediante la segmentacin de memoria.
Organizacin fsica

La memoria suele dividirse en un almacenamiento primario de alta


velocidad y uno secundario de menor velocidad. La gestin de
memoria del sistema operativo se ocupa de trasladar la informacin
entre estos dos niveles de memoria
Sistemas de memoria compartida:
Multiprocesadores
Qu es Multiprocesamiento de
Memoria Compartida?

Son sistemas con mltiples procesadores que comparten un nico


espacio de direcciones de memoria. Cualquier procesador puede
acceder a los mismos datos, al igual que puede acceder a ellos
cualquier dispositivo de entrada/salida. Tambin llamados
multiprocesadores estrechamente acoplados.
Cada procesador posee su propia unidad de control ejecuta su
propio cdigo sobre sus propios datos, puede ejecutar cualquier
aplicacin.
MEMORIA COMPARTIDA

La memoria compartida por todos los procesadores y accesible


desde cualquiera. Descompuesta en varios mdulos para permitir el
acceso concurrente de varios procesadores; se distribuye
fsicamente por todos los procesadores (memorias locales).
El conjunto de memorias locales forma el espacio de
direccionamiento global accesible por todos los procesadores.
REDES DE INTERCONEXIN
DINMICAS O INDIRECTAS
El objetivo de la interconexin de red es dar un servicio de
comunicacin de datos que involucre diversas redes con diferentes
tecnologas de forma transparente para el usuario. Los dispositivos
de interconexin de redes sirven para superar las limitaciones
fsicas de los elementos bsicos de una red extendiendo las
topologas de esta.
RED DINAMICA

Una red dinmica es una red cuya topologa


puede variar durante el curso de la ejecucin
de un programa paralelo o entre dos
ejecuciones de programas. La red est
Constituida por elementos materiales
especficos, llamados conmutadores o
switches; son redes que pueden cambiar la
topologa de comunicacin durante la
ejecucin de los programas o entre dos
ejecuciones de programas, se han utilizado
esencialmente en los multiprocesadores de
memoria compartida: soporta por
consiguiente , la carga de unir los
procesadores a los bancos de la memoria
central.
RED INDIRECTA

Las redes indirectas tambin pueden modelarse con un grafo


donde n es un conjunto de switches y c es el conjunto de
enlaces unidireccionales o bidireccionales entre switches. Para
el anlisis de
la mayora de propiedades, no es necesario incluir
explcitamente los nodos de procesamiento en el grafo. Aunque
las redes indirectas pueden modelarse de forma similar alas
directas, existen algunas diferencias entre ellas.
REDES DE MEDIO
COMPARTIDO
En el caso de la televisin o la radio, existen
diferentes canales y emisoras que estn
compartiendo el medio.
A fin de que no haya problemas, hay una
regulacin del espectro radioelctrico.
cada uno de los canales tiene asignada una
frecuencia determinada y no hay ms de un
canal usando la misma frecuencia.
Este sistema se llama multiplexacin por
divisin de frecuencia y no slo se utiliza en
la radio y la televisin.
Si lo que se est compartiendo es una fibra
ptica, se tiende a realizar una multiplexacin
por divisin del tiempo. Supongamos que una
misma fibra est siendo utilizada por cuatro
comunicaciones. En ese caso, la fibra estar
disponible durante un instante determinado
de tiempo para la comunicacin nmero 1; el
siguiente instante de tiempo lo estar para la
comunicacin 2 y as sucesivamente. Una
vez haya acabado la comunicacin nmero 4,
la fibra volver a estar disponible para la
comunicacin 1.
REDES CONMUTADAS

Consiste en un conjunto de nodos interconectados


entre si, a travs de medios de transmisin, formando
la mayora de las veces una topologa mallada,
donde la informacin se transfiere
encaminndola del nodo de origen al nodo destino
mediante conmutacin entre nodos intermedios. Una
transmisin de este tipo tiene 3 fases:
-Establecimiento de la conexin
-Transferencia de la informacin
-Liberacin de la conexin
Las redes conmutadas se dividen en:
-Conmutacin de paquetes
-Conmutacin de circuitos
COHERENCIA DE CACHE

Hace referencia a la integridad de los datos almacenados en las caches locales de los
recursos compartidos. La coherencia de la cache es un caso especial de la coherencia de
memoria. Coherencia de cache es cuando existen varias copias del mismo dato
simultneamente en caches diferentes por lo tanto si los procesadores actualizan sus
copias pueden producirse inconsistencia
de memoria. Cuando un procesador cambia un dato en su propia cache local el cambio
debe hacerse en todas las caches que tiene copia. Alternativamente las otras copias se
deben invalidar.

El protocolo de coherencia es situar las variables locales utilizadas recientemente en la


cache apropiada y mantelos all para las distintas escrituras y lecturas, al mismo tiempo
que se mantiene.

También podría gustarte