Multiprocesamiento en Lenguaje C -...

21
Multiprocesamiento en Lenguaje C Introducció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

Transcript of Multiprocesamiento en Lenguaje C -...

Page 1: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 2: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 3: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 4: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

• ¿A qué nivel de paralelismo se trabajará y que

tipo de grano?

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez4

Page 5: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

¿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

Page 6: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 7: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 8: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez8

Page 9: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

SPMD

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez9

Page 10: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Entubamiento de datos (Data Pipeling)

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez10

Page 11: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Divide y Conquista

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez11

Page 12: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Paralelismo Hibrido

• Modelo Hibrido

– Mezclar elementos de diferentes paradigmas

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez12

Page 13: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 14: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 15: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 16: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Fase Diseño V1particionamiento comunicación

problema tareassubprocesos concomunicación

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez16

Page 17: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 18: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Fase Diseño V2

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez18

Page 19: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

Particionamiento

Descomposición

Descomposición

• Dominio

• Funcional

Proyecto PAPIME PE104911

Laura Sandoval- Karen Sáenz - Oscar Valdez19

Page 20: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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

Page 21: Multiprocesamiento en Lenguaje C - UNAMlcomp89.fi-b.unam.mx/licad/assets/MultiprocesamientoProfesores/... · Puede ser necesario Función el programador, con Rutina Ciclo Sentencia

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