Granularidad

Modelos de programación paralela

 

1.      Motivación:

·         Programar aplicaciones paralelas no es una tarea trivial.

·         Paralelismo debe considerar aspectos tales como:

·         División del problema/solución

·         Acceso a datos compartidos

·         Sincronismo entre las tareas/eventos

·         Asincronismo (no determinismo) en tareas/eventos

·         Paradigma de programación

 

Idealmente, un software paralelo debiera:

·         ser fácil de usar

·         proveer transparencia a la arquitectura del procesador

·         proveer transparencia a la red de comunicación (si existe)

·         ser portable

·         acomodar heterogeneidad

·         proveer escalabilidad

·         proveer transparencia al paralelismo

 

2.      Estrategias de Paralelismo

Aproximaciones principales para abordar programación paralela:

·         Paralelismo implícito

·         El programador se “abstrae” de la paralelización misma.

·         Uso de lenguajes y compiladores paralelos

·         El programador no tiene control de Como los datos y el cómputo es planificado.

 

·         Paralelismo semi explícito

·         código es modificado para hacer uso de librerías y software paralelo

·         Apoyo de librerías para sincronización de tareas y       paso de mensajes para comunicación

.

·         Paralelismo explicito

·         El código original sufre modificaciones sustanciales

·         El programador es responsable de la descomposición del problema, comunicación, mapeo de tareas a procesadores, etc.

 

 

3.      Modelos de Programación Paralela

·         Se puede explotar paralelismo a varios niveles

·         Cada nivel define un nivel de granu-laridad, es decir el tamaño del código que se paraleliza.

 

Granularidad

Entidad

Paralelizado por

Muy Fino

Instrucción

Procesador

Fino

Bloque de

instrucción

Compilador

Medio

Función

Programador

Grande

Programa

Programador

 

 

 

4.      Modelos de Programación  Paralela

·         Paso de Mensajes

·         Modelo mas popular para implementar paralelismo a nivel de tareas

·         Las tareas no comparten el espacio de direcciones

·         El programador especifica el particionamiento de los datos y el cómputo

·         El programador especifica cuando las tareas deben intercambiar datos

·         Cluster de computadores

·         Programador responsable de distribución de datos y comunicación

·         Uso de librer´ıas (eficientes)

·         Uso de compilador tradicional

·         Memoria compartida

·         Modelo para paralelizar tareas que comparten la memoria

·         Dependiendo de la herramienta usada, paralelización puede ser implícita o no

·         Comunicaciones mediante variables compartidas y puede ser implícita o no

·         Sistemas multiprocesadores

·         Compilador realiza la paralelización

·         Es posible reusar mucho código secuencial

·         Programador inserta directivas para especificar regiones paralelas

·         Híbridos

·         Paralelismo de Datos

 

Conclusiones

 

·         La granularidad se ha alcanzado otros tipos de niveles la distribución de las aplicaciones se realiza en diferentes plataformas y a través de la red.

 

Programación paralela requiere programadores especializados que entiendan computación paralela

 

Un software paralelo debe acomodar heterogeneidad y proveer escalabilidad

  

 

Bibliografía

 

http://webmail.diinf.usach.cl/~rannou/SlidesTallerParalelo/ModelosProgramacion.pdf

 

http://telematica.cicese.mx/computo/super/cicese2000/paralelo/Part4.html

 

 

 

About omaracostacasas

ING SOFTWARE
This entry was posted in Ingenieria de Software. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s