Multiprocesamiento en Lenguaje C -...

Post on 15-Jul-2020

12 views 0 download

Transcript of Multiprocesamiento en Lenguaje C -...

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