You are on page 1of 5

Unidad 4. Procesamiento paralelo.

4.1 Aspectos bsicos de la computacin paralela.

La computacin paralela es una forma de cmputo en la que muchas instrucciones se ejecutan


simultneamente, operando sobre el principio de que problemas grandes, a menudo se pueden
dividir en unos ms pequeos, que luego son resueltos simultneamente (en paralelo). Hay varias
formas diferentes de computacin paralela: paralelismo a nivel de bit, paralelismo a nivel de
instruccin, paralelismo de datos y paralelismo de tareas.
El paralelismo se ha empleado durante muchos aos, sobre todo en la computacin de altas
prestaciones, pero el inters en ella ha decrecido ltimamente debido a las limitaciones fsicas que
impiden el aumento de la frecuencia. La computacin en paralelo se ha convertido en el paradigma
dominante en la arquitectura de computadores, principalmente en forma
de procesadores multincleo.
Las computadoras paralelas pueden clasificarse segn el nivel de paralelismo que admite
su hardware: equipos con procesadores multincleo y multi-procesador que tienen mltiples
elementos de procesamiento dentro de una sola mquina y los clsteres, MPPS y grids que utilizan
varios equipos para trabajar en la misma tarea.
La computacin en paralelo, utiliza simultneamente mltiples elementos de procesamiento para
resolver un problema. Esto se logra mediante la divisin del problema en partes independientes de
modo que cada elemento de procesamiento pueda ejecutar su parte del algoritmo de manera
simultnea con los otros.
Los elementos de procesamiento son diversos e incluyen recursos tales como una computadora con
mltiples procesadores, varios ordenadores en red, hardware especializado, o cualquier
combinacin de los anteriores.

Bibliografa: John L. Hennessy, D. A. (2007). ARQUITECTURA DE COMPUTADORES Un enfoque


cuantitativo. ESPANA: McGRAW-HILLPNTERAMERICANA DE ESPANA, S. A. U
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.
La paralelizacin de ciclos conduce a menudo a secuencias similares de operaciones (no
necesariamente idnticas) o funciones que se realizan en los elementos de una gran estructura de
datos. Muchas de las aplicaciones cientficas y de ingeniera muestran paralelismo de datos.

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.
Durante muchos aos, la computacin paralela se ha aplicado en la computacin de altas
prestaciones, pero el inters en ella ha aumentado en los ltimos aos debido a las restricciones
fsicas que impiden el escalado en frecuencia.

La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de


computadores, principalmente en los procesadores multincleo. Sin embargo, recientemente, el
consumo de energa de los ordenadores paralelos se ha convertido en una preocupacin. Los
ordenadores paralelos se pueden clasificar segn el nivel de paralelismo que admite su hardware:
los ordenadores multincleo y multiproceso tienen varios elementos de procesamiento en una sola
mquina, mientras que los clster, los MPP y los grids emplean varios ordenadores para trabajar en
la misma tarea.

Los programas de ordenador paralelos son ms difciles de escribir que los secuenciales porque la
concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los
ms comunes. La comunicacin y la sincronizacin entre las diferentes sub-tareas son tpicamente
las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento
de velocidad que consigue un programa como resultado de la paralelizacin viene dado por la ley de
Amdahl.

Bibliografa: John L. Hennessy, D. A. (2007). ARQUITECTURA DE COMPUTADORES Un enfoque


cuantitativo. ESPANA: McGRAW-HILLPNTERAMERICANA DE ESPANA, S. A. U
4.2.1 Taxonoma de las arquitecturas paralelas.

La taxonoma introducida primeramente por Flynn es todava la forma ms comn de clasificar a los
sistemas segn sus capacidades de procesamiento paralelo. Flynn propuso las siguientes
categoras o clases de computadores:

Una secuencia de instrucciones y una secuencia de datos (SISD, Single Instruction Single
Data): un nico procesador interpreta una nica secuencia de instrucciones para operar con
los datos almacenados en una nica memoria. Los computadores monoprocesador caen
dentro de esta categora

Una secuencia de instrucciones y mltiples secuencias de datos (SIMD, de Single


Instruction Mltiple Data): una nica instruccin mquina controla paso a paso la ejecucin
simultnea y sincronizada de un cierto nmero de elementos de proceso. Cada elemento de
proceso tiene una memoria asociada, de forma que cada instruccin es ejecutada por cada
procesador con un conjunto de datos diferentes. Los procesadores vectoriales y los
matriciales pertenecen a esta categora.

Mltiples secuencias de instrucciones y una secuencia de datos (MISD): se transmite una


secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una
secuencia de instrucciones diferente. Esta estructura nunca ha sido implementada.

Mltiples secuencias de instrucciones y mltiples secuencias de datos (MIMD): un conjunto


de procesadores ejecuta simultneamente secuencias de instrucciones diferentes con
conjuntos de datos diferentes. Los SMP, los clster y los sistemas NUMA son ejemplos de
esta categora.
En la organizacin MIMD los procesadores son de uso general; cada uno es capaz de procesar
todas las instrucciones necesarias para realizar las transformaciones apropiadas de los datos.
Los computadores MIMD se pueden subdividir adems segn la forma que tienen los procesadores
para comunicarse. Si los procesadores comparten una memoria comn, entonces cada procesador
accede a los programas y datos almacenados en la memoria compartida, y los procesadores se
comunican unos con otros a travs de esa memoria.
La forma ms comn de este tipo de sistemas se conoce como multiprocesador simtrico (SMP). En
un SMP, varios procesadores comparten una nica memoria mediante un bus compartido u otro tipo
de mecanismo de interconexin.
Una caracterstica distintiva de estos sistemas es que el tiempo de acceso a memoria principal es
aproximadamente el mismo para cualquier procesador. Un desarrollo ms reciente es la
organizacin con acceso no uniforme a memoria (NUMA).Como el propio nombre indica, el tiempo
de acceso a zonas de memoria diferentes puede diferir en un computador NUMA.
Bibliografa: John L. Hennessy, D. A. (2007). ARQUITECTURA DE COMPUTADORES Un enfoque
cuantitativo. ESPANA: McGRAW-HILLPNTERAMERICANA DE ESPANA, S. A. U

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

You might also like