PROCESAMIENTO
Enviado por RAMONmm20 • 25 de Noviembre de 2014 • 4.133 Palabras (17 Páginas) • 193 Visitas
PROCESAMIENTO PARALELO
Es un proceso empleado para acelerar el tiempo de ejecución de un programa dividiéndolo en múltiples trozos que se ejecutaran al mismo tiempo, cada uno en su propios procesadores.
El procesamiento en paralelo se basa principalmente en multiprocesadores fuertemente acoplados que cooperan para la realización de los procesos.
Sus características son:
Posee dos o más procesadores de uso general similares y de capacidades comparables.
Todos los procesadores comparten el acceso a una memoria global
También puede utilizarse algunas memorias locales (privadas como la cache).
El procesamiento paralelo implica una serie de dificultades a nivel programación de software la ventaja de él procesamiento en paralelo es ejecuta procesos en donde cada procesador se encargar de uno u otro y aceleran de esta forma el cálculo.
4.1. ASPECTOS BÁSICOS DE LA COMPUTACIÓN PARALELA
La computación paralela, es muy importante actualmente, al permitir mejorar la velocidad en la solución de grandes problemas, de modo que se mejora el rendimiento de cómputo.
La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de energía (y por consiguiente la generación de calor) de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo.
Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que admite su hardware: equipos con procesadores multinúcleo y multiprocesador que tienen múltiples elementos de procesamiento dentro de una sola máquina y los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea. Muchas veces, para acelerar la tareas específicas, se utilizan arquitecturas especializadas de computación en paralelo junto a procesadores tradicionales.
Los programas informáticos paralelos son más difíciles de escribir que los secuenciales, 5 porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y sincronización entre diferentes subtareas son algunos de los mayores obstáculos para obtener un buen rendimiento del programa paralelo.
La máxima aceleración posible de un programa como resultado de la paralelización se conoce como la ley de Amdahl.
El paralelismo puede obtenerse de distintas maneras:
Multicomputadores: Computadoras independientes, muy a menudo una de ellas actúa como supervisor, que realizan una tarea común en una sola ubicación (una configuración muy común, aunque ciertamente limitada, es la minicomputadora como preprocesador de un computador mainframe)
Multiprocesadores: Un conjunto de unidades de cómputo, cada una de las cuales tiene sus propios conjuntos de instrucciones y datos, compartiendo una misma memoria. Los computadores multiprocesadores consisten en un número n mayor o igual a 2 de procesadores que operan simultáneamente sobre una misma memoria, y están interconectados mediante canales que transmiten comandos de control y datos. Están controlados por un único Sistema Operativo.
Redes de computadoras: Computadoras independientes conectadas mediante un canal de manera tal que los recursos propios disponibles en un punto de la red pueden estar disponibles para todos los miembros de la red.
Procesador Pipeline: Un solo computador el cual puede realizar simultáneamente operaciones de cálculos en determinadas secciones, con diferentes estadios de completitud. Los procesadores pipeline se basan en el principio de dividir los cálculos entre una cantidad de unidades funcionales que operan simultáneamente existiendo superposición.
Procesador Array: Un grupo de unidades de cómputo cada una de las cuales realiza simultáneamente la misma operación sobre diferentes conjuntos de datos. Los procesadores array operan sobre vectores. Las instrucciones del computador vectorial son ejecutadas en serie (como en los computadores clásicos) pero trabajan en forma paralela sobre vectores de datos.
Algunos Aspectos a considerar son:
Diseño de computadores paralelos. Escalabilidad y comunicaciones.
Diseño de algoritmos eficientes. No hay ganancia si los algoritmos no se diseñan adecuadamente métodos para evaluar los algoritmos paralelos. ¿Cómo de rápido se puede resolver un problema usando una maquina paralela? ¿Con que eficiencia se usan esos procesadores?
Lenguajes para computadores paralelos, flexibles para permitir una implementación eficiente y que sean fáciles de programar.
4.2. TIPOS DE COMPUTACIÓN PARALELA
La computación paralela o procesamiento en paralelo consiste en acelerar la ejecución de un programa mediante su descomposición en fragmentos que pueden ejecutarse de forma simultánea, cada uno en su propia unidad de proceso.
En este sentido se habla de mayor o menor grado de paralelismo en la medida en que un algoritmo sea más o menos divisible en partes independientes con igual coste computacional.
Entre las interacciones hay que considerar dos siguientes:
o La transferencia de datos.
o La sincronización de los cálculos de los diferentes procesadores.
Tipos de computadores según la taxonomía de Flynn:
SISD: Instrucción única, datos únicos. Las instrucciones se ejecutan secuencialmente pero pueden estar solapadas en las etapas de ejecución.
SIMD: Instrucción única, datos múltiples. Son los procesadores matriciales en los que existen varias unidades de procesamiento trabajando sobre flujos de datos distintos pero ejecutando la misma instrucción.
MISD: Instrucción múltiple, datos únicos. Este se caracteriza por la existencia de varias unidades de procesamiento cada una ejecutando una instrucción diferente pero sobre el mismo flujo de datos.
MIMD: Es una técnica empleada para lograr paralelismo. Las máquinas que usan MIMD tienen un número de procesadores que funcionan de manera
...