multiprocesamiento en lenguaje c -...

Post on 15-Jul-2020

15 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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