Paralelismo

=Procesamiento Paralelo=

toc

El procesamiento paralelo denota diversas técnicas que se utilizan para tareas simultáneas de procesamiento de datos, para así aumentar la velocidad del sistema. La idea es descomponer una tarea en una serie de operaciones que serán realizadas simultáneamente reduciendo el tiempo que tarda realizándose. El sistema de procesamiento paralelo ejecuta el procesamiento concurrentemente para conseguir así menores tiempos de ejecución, para esto puede contar con más recursos como dos o más ALU's, ó dos o más procesadores, acelerando sus posibilidades de procesamiento y aumentando su eficiencia con respecto a los ciclos necesarios para la ejecución. El procesamiento paralelo se establece al distribuir los datos entre las unidades funcionales múltiples, donde cada unidad es independiente.

La importancia del paralelismo reside en la mejoría en la velocidad del procesamiento de los datos, siendo de especial relevancia en campos como la meteorología, la medicina, aerodinámica, física entre otras, donde es necesario procesar grandes cantidades de información realizando muchísimos cálculos muy alta velocidad. Las mejoras en velocidad también se deben al uso de componentes más veloces en la creación de las computadoras, sin embargo la ganancia en velocidad no es aprovechada si los componentes pierden tiempo valioso esperando la entrada de datos, es por esto que se utiliza el paralelismo.

Clasificación: __Taxonomía de Flynn__
El procesamiento paralelo puede clasificarse
 * Según la organización interna de los procesadores
 * Según la estructura de interconexión entre los procesadores
 * Según el flujo de información a través del sistema

M.J Flynn presentó una clasificación llamada Taxonomía de Flynn que es todavía la forma más común de clasificar a los sistemas según sus capacidades de procesamiento paralelo, clasifica la organización de un sistema de computadora mediante la cantidad de instrucciones y unidades de datos que se manipulan en forma simultánea. Al operar las computadoras por la ejecución de instrucciones sobre datos, el flujo de instrucciones es el que le indica a la computadora que debe hacer en cada ciclo, por lo tanto el flujo de datos es modificado por las instrucciones. Dependiendo de si hay uno o varios flujos la clasificación de Flynn divide a las computadoras en cuatro clases.

SISD


Una secuencia de instrucciones y una secuencia de datos. Un único procesador interpreta una única secuencia de instrucciones para operar con los datos almacenados en una única memoria. Dentro de esta categoría caen los computadores monoprocesador.

SIMD


Una secuencia de instrucciones y múltiples secuencias de datos. Una única instrucción controla paso a paso la ejecución simultánea y sincronizada de un cierto número de elementos cada uno con memoria asociada, de forma que cada instrucción es ejecutada por cada procesador con un conjunto de datos diferente. Un ejemplo son los procesadores vectoriales y matriciales.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">MISD


<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Múltiples secuencias de instrucciones y una secuencia de datos. 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.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">MIMD


<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Múltiples secuencias de instrucciones y múltiples secuencias de datos. Un conjunto de procesadores ejecuta simultáneamente secuencias de instrucciones diferentes con conjuntos de datos diferentes. Los SMP, clusters y los sistemas NUMA son ejemplos de esta categoría. Los procesadores son de uso general, cada uno con la capacidad de procesar las instrucciones necesarias para realizar las transformaciones apropiadas de los datos.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Se pueden subdividir según la forma en que se comunican los procesadores.


 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Si comparten memoria común, como los multiprocesadores simétricos (SMP), en el que el tiempo de acceso a memoria principal es aproximadamente el mismo para cualquier procesador, o la organización de acceso no uniforme a memoria (NUMA), en los que el tiempo de acceso a zonas distintas en memoria puede diferir.


 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Un conjunto de monoprocesadores independientes o SMP pueden interconectarse para formar un cluster, con memoria distribuida, en el que la comunicación entre los computadores se realiza mediante conexiones fijas o una red.