Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Programación con Paralelismo Implícito (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
OpenMPDirectivas distribución de trabajo
La directiva PRAGMA OMP PARALLEL FOR
Características de la directiva:
Distribuye la carga de un bucle entre las tareas
La descomposición se hace en el espacio de iteraciones
El contador es implícitamente declarado PRIVATE
Restricciones :
En C, el bucle debe ser de un tipo determinado
En Fortran, el bucle no puede ser del tipo do while
El contador debe ser el mismo para todas las tareas
Sólo admite bloques estructurados de código
Las variables SHARED sólo se actualizan al final

Monografias.com
La directiva PRAGMA OMP PARALLEL SECTION
Hasta ahora hemos considerado paralelismo de data nada más
OpenMP nos permite asignar hilos distintos a partes distintas del código (paralelismo funcional)
Permite implementar el paralelismo tipo MIMD
Precede a un bloque de k bloques de código que se puede ejecutar en paralelo por k hilos
La sintaxis:#pragma omp parallel sections

OpenMPDirectivas distribución de trabajo

Monografias.com
v = alpha();
w = beta();
x = gamma(v, w);
y = delta();
printf ("%6.2fn", epsilon(x,y));

Se puede ejecutar
alpha, beta, and delta
en paralelo.

OpenMPDirectivas distribución de trabajo

Monografias.com
La directiva PRAGMA OMP SECTION
Precede cada bloque de código dentro del bloque grande
Se puede omitir para el primer bloque después de la pragma parallel sections
La sintaxis:#pragma omp section
OpenMPDirectivas distribución de trabajo

Monografias.com
Ejemplo de parallel section

#pragma omp parallel sections
{
#pragma omp section /* Optional */
v = alpha();
#pragma omp section
w = beta();
#pragma omp section
y = delta();
}
x = gamma(v, w);
printf ("%6.2fn", epsilon(x,y));

OpenMPDirectivas distribución de trabajo

Monografias.com
Otra Posibilidad
Ejecutar alpha y
beta en paralelo.
Ejecutar gama y
delta en paralelo.
OpenMPDirectivas distribución de trabajo

Monografias.com
La directiva PRAGMA OMP SECTIONS
Aparece a dentro de un bloque paralelo de código
Tiene el mismo significado como la pragma parallel sections
Varias pragmas sections dentro de un bloque paralelo podría reducir los gastos de fork/join
Restricciones de la directiva:
La manera de asignar secciones a tareas no está definida
Cada sección debe ser un bloque estructurado de código
No se crean nuevas tareas, se usan las existentes
Las variables SHARED sólo se actualizan al final

OpenMPDirectivas distribución de trabajo

Monografias.com
#pragma omp parallel
{
#pragma omp sections
{
v = alpha();
#pragma omp section
w = beta();
}
#pragma omp sections
{
x = gamma(v, w);
#pragma omp section
y = delta();
}
}
printf ("%6.2fn", epsilon(x,y));
OpenMPDirectivas distribución de trabajo

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter