Procesamiento Paralelo
xitla984 de Octubre de 2014
5.550 Palabras (23 Páginas)1.206 Visitas
“Procesamiento paralelo”
Arquitectura de computadoras
20/09/2014
ISC
PRESENTA:
Jonatán Casarín Méndez
Isidro Torres Rodríguez
Brenda Xitlaly López Sánchez
CATEDRÁTICO:
ING. RAFAEL AGUILAR SIXTO
JESÚS CARRANZA, VER
Contenido
Introducción 3
PROCESAMIENTO PARALELO 5
4.1 Aspectos básicos de la computación paralela 5
4.2 Tipos de computación paralela 7
4.2.1 Taxonomía de las arquitecturas paralelas 10
4.2.2 Arquitectura de los computadores secuenciales 11
4.2.2.1Taxonomía de Flynn 12
4.2.2.2 Organización del espacio de direcciones de memoria 14
4.3 Sistemas de memoria compartida: multiprocesadores 16
4.3.1 Redes de interconexión dinámicas o indirectas 20
4.3.1.1 Redes de medio compartido 22
4.3.1.2 Redes conmutadoras 22
4.3.2 Coherencia de caché 23
4.4 Sistemas de memoria distribuida 25
4.4.1 Redes de interconexión estática 26
4.4.2 Clúster 26
4.4.3 Programación de clúster 28
4.4.4 Consideraciones sobre rendimiento de los clúster 28
4.5 Casos de estudio 29
Conclusión 30
Fuente de referencia 31
Introducción
En esta investigación se hablara sobre el desarrollo que lleva a cabo el procesamiento paralelo que trata de un proceso empleado para acelerar el tiempo de ejecución de un programa diviendolo en múltiples trozos que se ejecutaran al mismo tiempo, cada uno en su propio procesador.
En principio, un programa dividido en trozos de esta forma, podría ejecutarse a veces más rápido, que su equivalente en un solo procesador, pero aún así queda claro que éste es su límite teórico (es decir el máximo que podremos alcanzar) pudiendo conseguir en el mejor de los casos un valor aproximado con un buen paralelismo.
El procesamiento en paralelo es una forma eficaz de procesamiento de información que favorece la explotación de los sucesos concurrentes en el proceso de computación.
La concurrencia implica paralelismo, simultaneidad y pipeline.
Hay tres tipos de sucesos:
Sucesos Paralelos: ocurren en múltiples recursos durante el mismo intervalo de tiempo.
Sucesos Simultáneos: ocurren en el mismo instante.
Sucesos Pipeline: ocurren en lapsos superpuestos.
Se puede hablar de niveles de paralelismo, que caracterizamos de la siguiente manera:
- Multiprogramación, Multiprocesamiento: Estas acciones se toman a nivel de Programa o Trabajo.
- Tarea o Procedimientos: Acciones que se toman dentro de un mismo programa, ejecutándose procesos independientes en forma simultánea.
- Interinstrucciones: Acciones a nivel de instrucción, o sea, dentro de mismo proceso o tarea se pueden ejecutar instrucciones independientes en forma simultánea.
- Intrainstrucciones: Acciones simultáneas que se pueden realizar para una misma instrucción, por ejemplo vectorización de operaciones escalares dentro de una instrucción compleja tipo DO, FOR, etc.
El paralelismo de un mayor nivel se obtiene por medio de algoritmos, los de menor nivel con importante actividad del hardware.
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 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 multi-procesador 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, 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.
Aspectos a considerar
• Diseño de computadores paralelo: 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 máquina paralela? ¿Con qué eficiencia se usan esos procesadores?
• Lenguajes para computadores paralelos, flexibles para permitir una implementación eficiente y que sean fáciles de programar.
• Herramientas para la programación paralela.
• Programas paralelos portables.
• Compiladores paralelizantes.
4.2 Tipos de computación paralela
Taxonomía de las Computadoras
Las diferentes posibilidades existentes para desarrollar sistemas paralelos hacen que una clasificación definitiva sea complicada. Se muestra una clasificación clásica propuesta por Flynn, que se basa en el ciclo de instrucciones y en el flujo de dato.
Taxonomía de FLYNN
En 1966 Flynn propuso una clasificación generalista de las computadoras adoptando como criterio el flujo de instrucciones y el flujo de datos que en ellos se desarrolla. La clasificación de Flynn es la siguiente:
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 asíncrona e independiente.
Organización del Espacio de Direcciones de Memoria
El intercambio de información entre procesadores depende el sistema de almacenamiento que se dispongan. Atendiendo este criterio se obtiene una nueva clasificación de las arquitecturas paralelas en:
• Sistemas de memoria compartida o multiprocesadores.
• Sistemas de memoria distribuida o multicomputadores.
4.2.1 Taxonomía de las arquitecturas paralelas
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 computo.
La supercomputadora Cray-2 fue la más rápida del mundo desde 1985 hasta 1989.
La supercomputadora paralela Blue Gene de IBM.
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
...