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
Top Related