Openmp

Solo disponible en BuenasTareas
  • Páginas : 3 (644 palabras )
  • Descarga(s) : 4
  • Publicado : 12 de noviembre de 2009
Leer documento completo
Vista previa del texto
OpenMP

¿Qué es OpenMP?
• • • • • • Modelo de programación paralela Paralelismo de memoria compartida Soporta el paralelismo por datos Escalable Permite paralelización incremental Extensiones alenguajes de programación existentes ( Fortran, C, C++)

1

Shared Memory Systems (cont)

OpenMP Pthreads

Distributed Memory Systems
Processor M Processor ••••••••••••• M M Processor

MPIHPF

Interconnect

2

Clustered of SMPs

MPI hybrid MPI + OpenMP

Sintaxis de OpenMP
• La mayoria de las construcciones en OpenMP son directivas de compilación o pragmas.
– En C y C++, lospragmas tienen la forma:
• #pragma omp construct [clause [clause]…]

– En Fortran, las directivas tienen la forma:
• C$OMP construct [clause [clause]…] • !$OMP construct [clause [clause]…] •*$OMP construct [clause [clause]…]

• Como las construcciones son directivas, un programa en OpenMP puede ser compilado por compiladores que no soportan OpenMP.

3

Programa sencillo
La mayoría delas construcciones son directivas de compilación o pragmas La parte central de OpenMP es la paralelización de lazos

Programa Secuencial Programa Paralelo void main() { void main() { doublea[1000],b[1000],c[1000]; double a[1000],b[1000],c[1000]; for (int i = 0; i< 1000; i++){ #pragma omp parallel for a[i] = b[iI] + c[i]; for (int i = 0; i< 1000; i++){ } a[i] = b[iI] + c[i]; } } }

Modelo deprogramación en OpenMP

4

¿Cómo interactuan los threads?
• OpenMP es un modelo de memoria compartida.
– Los threads se comunican utilizando variables compartidas.

• El uso inadecuado devariables compartidas origina carreras críticas: • Para controlar las carreras críticas:
– Uso de sincronización para protegerse de los conflictos de datos.

• La sincronización es costosa:
–Modificar cómo se almacenan los datos para minimizar la necesidad de sincronización.

Alcance de los Datos
• SHARED
La variable es compartida por todos los procesos

• PRIVATE
Cada proceso tiene una...
tracking img