Introducción A La Programación Paralela
1
¿Qué es la computación secuencial?
Modelo de programación secuencial: •Un único procesador (CPU) •Un problema planteado en términos de secuencia de instrucciones simples •El procesador ejecuta las instrucciones estrictamente en las secuencia especificada por el programador •Sólo una instrucción se ejecuta cada vez (???)
2
¿Qué es lacomputación paralela?
Modelo de computación paralela •Múltiples procesadores •El problema es troceado en partes que pueden resolverse concurrentemente •Cada parte es resuelta de una manera secuencial
3
Programa Paralelo
Tarea A
Acción 1
Tarea B
Acción 1 Acción 2 Acción 3 Acción 4 Sincronización Acción 5 Acción 6
Tarea C
Acción 1
Acción 2
Acción 3 SincronizaciónSincronización
Acción 2 Acción 3
Acción 4
Acción 5 Acción 6
Acción 4
Acción 5 Acción 6
4
Diseño de un Algoritmo Paralelo
• Distribución del Trabajo en un conjunto de tareas
Planificación de los puntos de sincronización.
•
5
Diseño (granularidad)
1 ut.
1 ut.
...
1 ut.
n ut.
t ut.
t ut.
t ut.
Tseq=N Tpar=Tseq/N + Tañadido=
6
Problemasparalelizables
• Posibilidad de ser troceado en tareas • Que las tareas puedan desarrollarse concurrentemente ( con un mínimo de interacciones)
– Muchos eventos complejos interrelacionados que suceden simultáneamente
• • • • • • Predicción del clima, simulación atmósfera Reacciones nucleares y químicas Estudio del Genoma humano Estudio de actividades sísmicas Simulación de dispositivos mecánicos Diseño ysimulación de circuitos electrónicos.
7
Otros tipos de problemas
• Tratamiento de grandes cantidades de datos, o computación intensiva:
– Bases de datos: búsquedas y recuperación – Exploraciones petrolíferas – Motores de búsqueda en web – Diagnósticos médicos – Tratamiento de gráficos, realidad virtual – Edición de video y tecnologías multimedia.
8
¿Por qué usar computación paralela?• Tres principales necesidades:
– Mejorar el tiempo de ejecución de una determinada tarea. – Tratar problemas con gran dominio de datos (datos distribuidos) – Simple necesidad de concurrencia (hacer cosas simultáneamente)
9
Otras razones
• Utilizar recursos externos para suplir carencias (discos, capacidad de computación...) • Reducir costes aprovechando las capacidades de unnúmero de máquinas con recursos reducidos (sistema de archivo virtual distribuido)
10
Límites de la computación secuencial.
• Acercamiento al los límites físicos de integración
– Escala molecular
• y velocidad de transferencia
– 30cm/ns es el tope de velocidad (luz) que es posible lograr (9cm/ns en cables de cobre)
11
Uso de la programación paralela
• Estos límites quehacen que las mejoras progresivas de los procesadores van siendo cada vez menos espectaculares lo que lleva a pensar en la duplicación de recursos: • hyper thread, Corel duo, corel quad, Terascale
– Compiladores con directivas y opciones de compilación paralela
12
Conceptos y terminología
• Arquitectura von Neumann
– Programa almacenado – Memoria datos y programa – Ejecución secuencial
1314
Simple Instrucción, Simple Dato
• Incluye a los computadores secuenciales • Ejecución completamente determinista • En cada ciclo de reloj solo una instrucción en ejecución y un único flujo de movimiento de datos de la memoria para “alimentar”esa instrucción
15
Simple Instrucción, Múltiple Dato
• Todas las Unidades de Proceamiento ejecutan la misma instrucción • Cada UPpuede trabajar sobre datos distintos • Podrían denominarse vectoriales porque favorecen este tipo de estructuras de datos
16
Múltiple Instrucción, Simple dato
• Un mismo dato alimenta a múltiples unidades funcionales ejecutando diferentes instrucciones • Nunca han existido máquinas comerciales con esta configuracion.
• Podría concebirse como un array de UP con datos fluyendo de unas...
Regístrate para leer el documento completo.