Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Multiprocesamiento
en Lenguaje CIntroducción al diseño de programas paralelos
Proyecto PAPIME PE104911
Pertinencia de la enseñanza del cómputo paralelo en el currículo de las
ingenierías
Niveles de paralelismo
• Paralelismo a nivel de tarea o trabajo
• Paralelismo a nivel de programa
• Paralelismo a nivel de instrucción
• Paralelismo a nivel de bit
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez2
Granularidad
Programa
Módulo
Mayorcomunicacióny planificación
Paralelismode
grano grueso
Paralelismode
Explotado por eldiseñador delalgoritmo o elprogramador
Puede ser necesarioel programador, conFunción
Rutina
Ciclo
SentenciaInstrucción
Mayor gradode paralelismo
degrano medio
Paralelismode
grano fino
el programador, conayuda del compilador
Explotado por elcompilador o el
hardware
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez3
• ¿A qué nivel de paralelismo se trabajará y que
tipo de grano?
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez4
¿Cuándo es conveniente paralelizar un
algoritmo, código o aplicación?
1. Aprender a programar en paralelo
2. Necesidad de una respuesta rápida
3. El problema utiliza algoritmos de cálculo intensivo, 3. El problema utiliza algoritmos de cálculo intensivo, demanda de CPU-Memoria-Disco
4. Aprovechar la arquitectura de la máquina
5. El uso de la aplicación sea frecuente, antes de cambios
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez5
Herramientas Lógicas
– Creatividad e Ingenio
– Paradigmas de programación paralela
– Metodologías de diseño
• Partición• Partición
• Comunicación
• Aglomeración
• Mapeo
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez6
Paradigmas de Programación
ParalelaTécnicas de programación paralela
• Maestro/ Esclavo (o Task-Farming)
• SPMD (Single–Program Múltiple-Data )
• Entubamiento de datos (Data Pipeling)
• Divide y conquista
• Híbridos
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez7
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez8
SPMD
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez9
Entubamiento de datos (Data Pipeling)
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez10
Divide y Conquista
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez11
Paralelismo Hibrido
• Modelo Hibrido
– Mezclar elementos de diferentes paradigmas
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez12
Paradigmas de programación
en base a la arquitectura de memoria
• Paradigmas de programación en
– Memoria Compartida
– Memoria Distribuida – Memoria Distribuida
– Combinación.
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez13
Fases del modelo de ciclo de vida y la
metodología orientada al procesamiento
paralelo sugeridas
• Fase de Análisis
• Fase de Diseño
• Fase de Implementación • Fase de Implementación
• Fase de Pruebas y Mantenimiento
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez14
Fase de DiseñoAplicar las etapas que conforman la metodología en el
diseño de programas paralelos :
– Particionamiento
– Comunicación
– Aglomeración
– Particionamiento
– Aglomeración
– Comunicación– Aglomeración
– Mapeo
– Comunicación
– Mapeo
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez15
Fase Diseño V1particionamiento comunicación
problema tareassubprocesos concomunicación
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez16
Fase Diseño V1aglomeración mapeo
subprocesos concomunicación
programasparalelos
procesadores
Paradigmas de programación paralela
Planificación de procesos
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez17
Fase Diseño V2
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez18
Particionamiento
Descomposición
Descomposición
• Dominio
• Funcional
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez19
Descomposición de Dominio
Ejemplo:
• Encontrar el elemento mayor de un arreglo
unidimensional de 1000 elementos enteros.
¿Cómo descomponer el problema?¿Cómo descomponer el problema?
Dividir el arreglo en arreglos más pequeños y
buscar el mayor en cada uno de ellos. Después
buscar el mayor entre los mayores.
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez20
Referencias
• http://www.mcs.anl.gov/~itf/dbpp/
• Designing and Building Parallel Programs ,Ian
Foster, Addison-Wesley Inc.
Proyecto PAPIME PE104911
Laura Sandoval- Karen Sáenz - Oscar Valdez21