Está en la página 1de 11

COMPUTACION

PARALELA
DEFINICION

La computacin paralela o procesamiento en paralelo consiste en acelerar la ejecucin


de un programa mediante su descomposicin en fragmentos que pueden ejecutarse de
forma simultnea, cada uno en su propia unidad de proceso.
Normalmente, los problemas no pueden dividirse perfectamente en partes totalmente
independientes y se necesita, por tanto, una interaccin entre ellas que ocasiona una
disminucin de la velocidad computacional.
En este sentido se habla de mayor o menor grado de paralelismo en la medida en que un
algoritmo sea ms o menos divisible en partes independientes con igual coste
computacional.
Entre las interacciones hay que considerar principalmente las dos siguientes:
a) La transferencia de datos.
b) La sincronizacin de los clculos de los diferentes procesadores.
El concepto de computador paralelo, como es de esperar, no es una idea nueva. Por
ejemplo, Gill ya escribi acerca de la programacin paralela en 1958, y un ao despus
Holland plante la posibilidad de que un computador pudiera ejecutar un nmero arbitrario
de subprogramas simultneamente. En 1963Conway describe el diseo de un computador
paralelo y su programacin, y 40 aos ms tarde se siguen encontrando numerossimos
artculos con ttulos planteamientos similares a los que ya apuntaban estos precursores del
campo de la computacin paralela.

TAXONOMIA DE FLYNN

COMPUTACION
PARALELA
Michael J. Flynn cre uno de los primeros sistemas de clasificacin de computadoras,
programas paralelos y secuenciales, ahora conocida como la taxonoma de Flynn. Flynn
clasifica los programas y computadoras atendiendo a si estn operando con uno o
varios conjuntos de instrucciones y si esas instrucciones se utilizan en una o varias series
de datos.

Instruccin individual

Instruccin mltiple

Datos individuales

SISD

MISD

Mltiples datos

SIMD

MIMD

La clasificacin instruccin-nica-dato-nico (SISD) es equivalente a un programa


totalmente secuencial. La clasificacin instruccin-nica-datos-mltiples (SIMD) es anloga
a hacer la misma operacin varias veces sobre un conjunto de datos grande. Esto se hace
comnmente en aplicaciones de procesamiento de seales. Instrucciones-mltiples-datonico (MISD) es una clasificacin que rara vez se utiliza. A pesar de que se disearon
arquitecturas de computadoras en esta categora como arreglos sistlicos, muy pocas
aplicaciones se materializaron. Los programas instrucciones-mltiples-datos-mltiples
(MIMD) constituyen el tipo ms comn de programas paralelos.
Segn David A. Patterson y John L. Hennessy, Algunas mquinas son hbridos de estas
categoras, por supuesto, este modelo clsico ha sobrevivido porque es simple, fcil de
entender, y da una buena primera aproximacin. Adems, es, tal vez por su
comprensibilidad, el esquema ms utilizado.

COMPUTACION
PARALELA
TIPOS DE COMPUTACION 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.

PARALELISMO DE DATOS

COMPUTACION
PARALELA

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 clusters, 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.

COMPUTACION
PARALELA

La comunicacin y la sincronizacin entre las diferentes subtareas 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.

CLASES DE COMPUTADORAS PARALELAS


Las computadoras paralelas se pueden clasificar de acuerdo con el nivel en el que el
hardware soporta paralelismo. Esta clasificacin es anloga a la distancia entre los nodos
bsicos de cmputo. Estos no son excluyentes entre s, por ejemplo, los grupos de
multiprocesadores simtricos son relativamente comunes.

COMPUTACIN MULTINCLEO

COMPUTACION
PARALELA
Un procesador multincleo es un procesador que incluye mltiples unidades de
ejecucin (ncleos) en el mismo chip. Los procesadores superescalares pueden ejecutar
mltiples instrucciones por ciclo de un flujo de instrucciones (hilo), a diferencia de este, un
procesador multincleo puede ejecutar mltiples instrucciones por ciclo de secuencias de
instrucciones mltiples. Cada ncleo en un procesador multincleo potencialmente puede
ser superescalar, es decir, en cada ciclo, cada ncleo puede ejecutar mltiples
instrucciones de un flujo de instrucciones.(ps3)

MULTIPROCESAMIENTO SIMTRICO
Un multiprocesador simtrico (SMP) es un sistema computacional con mltiples
procesadores idnticos que comparten memoria y se conectan a travs de un bus. 24 La
contencin del bus previene el escalado de esta arquitectura. Como resultado, los SMPs
generalmente no comprenden ms de 32 procesadores. 25 Debido al pequeo tamao de
los procesadores y de la significativa reduccin en los requisitos de ancho de banda de
bus, tales multiprocesadores simtricos son extremadamente rentables, siempre que exista
una cantidad suficiente de ancho de banda. 24

COMPUTACION
PARALELA
COMPUTACIN EN CLSTER

Un clster es un grupo de ordenadores dbilmente acoplados que trabajan en estrecha


colaboracin, de modo que en algunos aspectos pueden considerarse como un solo
equipo. Los clsteres se componen de varias mquinas independientes conectadas por
una red. Mientras que las mquinas de un clster no tienen que ser simtricas, de no serlo,
el balance de carga es ms difcil de lograr. El tipo ms comn de clster es el cluster
Beowulf, que es un clster implementado con mltiples ordenadores comerciales idnticos
conectados a una red de rea local TCP/IP Ethernet.

PROCESAMIENTO PARALELO MASIVO


Un procesador paralelo masivo (MPP) es un solo equipo con varios procesadores
conectados en red. Tienen muchas de las caractersticas de los clster, pero cuentan con
redes especializadas de interconexin en tanto que las clsteres utilizan hardware
estndar para la creacin de redes. Los MPPs tambin tienden a ser ms grandes que
los clsteres, con mucho ms de 100 procesadores. En un MPP, cada CPU tiene su
propia memoria y una copia del sistema operativo y la aplicacin. Cada subsistema se
comunica con los dems a travs de un interconexin de alta velocidad.
Un gabinete de Blue Gene/L, clasificado como el cuarto mejor superordenador del mundo
de acuerdo a la clasificacin TOP500 en 11/2008. Blue Gene/L es un procesador
masivamente paralelo.

COMPUTACION
PARALELA
COMPUTACIN DISTRIBUIDA

La computacin distribuida es la forma ms distribuida de la computacin paralela. Se hace


uso de ordenadores que se comunican a travs de la Internet para trabajar en un problema
dado. Debido al bajo ancho de banda y la latencia extremadamente alta de Internet, la
computacin distribuida normalmente slo se refiere a problemas vergonzosamente
paralelos. Se han creado muchas aplicaciones de computacin distribuida
,SETI@home y Folding@home son los ejemplos ms conocidos.31
La mayora de las aplicaciones de computacin distribuida utilizan middleware, software
que se encuentra entre el sistema operativo y la aplicacin para administrar los recursos de
red y estandarizar la interfaz de software. El ms comn es la Infraestructura Abierta de
Berkeley para Computacin en Red (BOINC). A menudo, los programas de computacin
distribuida hacen uso de ciclos de repuesto, realizando clculos cuando el procesador
de un equipo est desocupado.
COMPUTADORAS PARALELAS ESPECIALIZADAS
Dentro de la computacin paralela, existen dispositivos paralelos especializados que
generan inters. Aunque no son especficos para un dominio, tienden a ser aplicables slo
a unas pocas clases de problemas paralelos.

CMPUTO RECONFIGURABLE
PROGRAMABLES

CON

ARREGLOS

DE

COMPUERTAS

El cmputo reconfigurable es el uso de un arreglo de compuertas programables (FPGA)


como coprocesador de un ordenador de propsito general. Un FPGA es, en esencia, un
chip de computadora que puede reconfigurarse para una tarea determinada.
Los
FPGAs
se
pueden
programar
con lenguajes
de
descripcin
de
hardware como VHDL o Verilog. Sin embargo, los lenguajes de programacin pueden ser
tediosos. Varios vendedores han creado lenguajes C a HDL que tratan de emular la
sintaxis y/o semntica del lenguaje de programacin C, con el que la mayora de los
programadores estn familiarizados. Los lenguajes C a HDL ms conocidos son MitrionC, C Impulse, DIME C y C-Handel. Tambin se pueden utilizar para este propsito
subconjuntos especficos de SystemC basados en C++.

COMPUTACION
PARALELA

La decisin de AMD de abrir HyperTransport a otros fabricantes la ha convertido en la


tecnologa que permite la computacin reconfigurable de alto rendimiento. De acuerdo con
CMPUTO DE PROPSITO GENERAL EN UNIDADES DE PROCESAMIENTO
GRFICO (GPGPU)

Tarjeta Nvidia Tesla GPGPU


El cmputo de propsito general en las unidades de procesamiento de grficos (GPGPU)
es una tendencia relativamente reciente en la investigacin de ingeniera informtica.
Los GPUs son co-procesadores que han sido fuertemente optimizados para procesamiento
degrficos por computadora. El procesamiento de grficos por computadora es un campo
dominado por operaciones sobre datos en paralelo, en particular de lgebra lineal y
operaciones con matrices.
Al principio, los programas de GPGPU normalmente utilizaban el API de grficos para
ejecutar programas. Sin embargo, varios nuevos lenguajes de programacin y plataformas
se han construido para realizar cmputo de propsito general sobre GPUs,
tanto Nvidia como AMD han liberado de entornos de programacin con CUDA y Stream
SDK,
respectivamente.
Otros
lenguajes
de
programacin
de
GPU
incluyen: BrookGPU, PeakStream yRapidMind. Nvidia tambin ha lanzado productos
especficos para la computacin en su serie Tesla. El consorcio de tecnologa Khronos
Group ha lanzado OpenCL, que es un marco para la escritura de programas que se
ejecutan en distintas plataformas conformadas por CPUs y GPUs. AMD, Apple, Intel,
Nvidia y otros estn apoyando OpenCL.

COMPUTACION
PARALELA

PROCESADORES VECTORIALES

Cray-1 es el procesador vectorial ms famoso.


Un procesador vectorial es un CPU o un sistema computacional que puede ejecutar la
misma instruccin en grandes conjuntos de datos. Los procesadores vectoriales tienen
operaciones de alto nivel que trabajan sobre arreglos lineales de nmeros o vectores. Un
ejemplo de operacin con vectores es: A = B C, donde A, B, y C son vectores de 64
elementos, donde cada uno es un nmero de punto flotante de 64 bits.38 Estn
estrechamente relacionadas con la clasificacin SIMD de Flynn. 38
Las computadoras Cray se volvieron famosas por su procesamiento de vectores en los
aos 1970 y 1980. Sin embargo, los procesadores vectoriales, tanto CPUs y como
sistemas computacionales, han desaparecido. Los conjuntos de instrucciones de los
procesadores modernos incluyen algunas instrucciones de procesamiento de vectores, por
ejemplo: AltiVec y Streaming SIMD Extensions (SSE).

COMPUTACION
PARALELA
BIBLIOGRAFIA

PDF DEL ING. ZAMORA GOMEZ COMPUTACION PARALELA DEL RUA (Repositorio
Institucional de la Universidad de Alicante)

http://conceptosarquitecturadecomputadoras.wordpress.com/computacion-paralela
Tesis Fin de Master en Computacin Paralela/ Presentado por Carla Ramiro Snchez
Dirigido por Dr.Antonio M. Vidal Maci

También podría gustarte