Está en la página 1de 19

Es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para

finalmente unir todas las partes y obtener el resultado correcto.

VENTAJAS
Los algoritmos paralelos son importantes porque es ms rpido tratar grandes tareas de computacin mediante la paralelizacin que mediante tcnicas secuenciales. Los algoritmos paralelos tambin necesitan optimizar la comunicacin entre diferentes unidades de procesamiento

Los algoritmos paralelos tambin necesitan optimizar la comunicacin entre diferentes unidades de procesamiento
MEMORIA COMPARTIDA PASO DE MENSAJES *.*

DISEO DE ALGORITMOS PARALELOS


El diseo involucra cuatro etapas las cuales se presentan como secuenciales pero que en la prctica no lo son. Particionamiento Comunicacin Agrupamiento Asignacin

PROBLEMAGRAFICAMENTE

TENEMOS

PARTICIN

COMUNICACIN

AGRUPACIN

ASIGNACIN

GRAFICAMENTE TENEMOS

PROBLEMA

PARTICIN

COMUNICACIN

AGRUPACIN

ASIGNACIN

Una buen particionamiento divide tanto los cmputos como los datos.
Descomposicin funcional

Descomposicin de dominio

Al particionar se deben tener en cuenta los siguientes

aspectos El nmero de tareas debe ser por lo menos un orden de magnitud superior al nmero de procesadores disponibles.

Hay que evitar cmputos y almacenamientos


Redundantes. Hay que tratar de que las tareas sean de tamaos equivalentes Considerar alternativas de paralelismo en esta Etapa.

El nmero de tareas debe ser proporcional al


tamao del problema.

COMUNICACIN

La comunicacin requerida por un algoritmo puede ser definida en dos fases.

*Primero se definen los canales


* Segundo se especifica la informacin o
mensajes

En ambientes de memoria distribuida las tareas interactan enviando y recibiendo mensajes.


Pero en ambientes de memoria compartida se debe utilizar mecanismos de sincronizacin.

En la etapa de comunicacin hay que tener en cuenta los siguientes aspectos:


Todas las tareas deben efectuar aproximadamente el mismo nmero de operaciones de comunicacin.
La comunicacin entre tareas debe ser tan pequea como sea posible. Las operaciones de comunicacin deben poder proceder concurrentemente. Los cmputos de diferentes tareas deben poder proceder concurrentemente. ..

GRAFICAMENTE TENEMOS

PROBLEMA

PARTICIN

COMUNICACIN

AGRUPACIN

ASIGNACIN

GRAFICAMENTE TENEMOS

PROBLEMA

PARTICIN

COMUNICACIN

AGRUPACIN

ASIGNACIN

AGRUPAMIENTO

eficiencia y costos de implementacin.

se va de lo abstracto a lo concreto.

se puede reducir la cantidad de datos y costo.

En la etapa de AGRUPACION se debe tomar en cuenta los siguientes aspectos:

Chequear si la agrupacin redujo los costos de comunicacin.

Si se han replicado cmputos y/o datos, se debe verificar que los beneficios son superiores a los costos.

Se debe verificar que las tareas resultantes tengan costos de computo y comunicacin similares.

ASIGNACION

Cada tarea es asignada a un procesador tratando de maximizar la utilizacin de los procesadores y de reducir el costo de comunicacin.

ESTATICA

(se establece antes de la ejecucin del programa) o en tiempo de ejecucin mediante algoritmos de balanceo de carga.

Analizar si es posible reducir aun ms el nmero de tareas sin introducir desbalances de cargas o reducir la extensibilidad.

Hay que revisar si el nmero de tareas es extensible con el tamao del problema

La asignacin de tareas puede ser realizada de las siguientes maneras:

Esttica: una tarea es asignada a un procesador desde su inicio hasta su fin. Dinmica: una tarea puede ser migrada durante su ejecucin. Esto puede agregar un costo adicional.

También podría gustarte