resumen de la conferencia "OpenMP".

Actividad 5

TRABAJO INDIVIDUAL

Realiza un breve resumen de la conferencia "OpenMP".


En cuanto a la conferencia acerca de de OpwnMP puedo exponer lo siguiente
OpenMP es una interfaz de programación de aplicaciones (API) para la programación multiproceso de memoria compartida en múltiples plataformas. Permite añadir concurrencia a los programas escritos en C, C++ y Fortran sobre la base del modelo de ejecución fork-join. Está disponible en muchas arquitecturas, incluidas las plataformas de Unix y de Microsoft Windows. Se compone de un conjunto de directivas de compilador, rutinas de biblioteca, y variables de entorno que influencian el comportamiento en tiempo de ejecución.
Definido juntamente por un grupo de proveedores de hardware y de software mayores, OpenMP es un modelo de programación portable y escalable que proporciona a los programadores una interfaz simple y flexible para el desarrollo de aplicaciones paralelas para las plataformas que van desde las computadoras de escritorio hasta las supercomputadoras. Una aplicación construida con un modelo de programación paralela híbrido se puede ejecutar en un cluster de computadoras utilizando ambos OpenMP y MPI, o más transparentemente a través de las extensiones de OpenMP para los sistemas de memoria distribuida.
Modelo de ejecución
OpenMP se basa en el modelo fork-join, paradigma que proviene de los sistemas Unix, donde una tarea muy pesada se divide en K hilos (fork) con menor peso, para luego "recolectar" sus resultados al final y unirlos en un solo resultado (join). Modelo Fork-join
Sintaxis básica
La sintaxis básica que nos encontramos en una directiva de OpenMP es:
# pragma omp <directiva> [cláusula [ , ...] ...]
Modelo de Ejecución
Cuando se incluye una directiva OpenMP esto implica que se incluye una sincronización obligatoria en todo el bloque. Es decir, el bloque de código se marcará como paralelo y se lanzarán hilos según las características que nos dé la directiva, y al final de ella habrá una barrera para la sincronización de los diferentes hilos (salvo que implícitamente se indique lo contrario con la directiva nowait). Este tipo de ejecución se denomina fork-join.
Directivas
También se suelen llamar constructores:
  • parallel: Esta directiva nos indica que la parte de codigo que la comprende puede ser ejecutada por varios hilos.
  • for: Igual que parallel pero optimizado para los bucles for. Su formato es:
·         #pragma parallel for [cláusula, ... , cláusula]
  • section y sections: Indica secciones que pueden ejecutarse en paralelo pero por un único hilo.
Funciones
  • omp_set_num_threads: Fija el número de hilos simultaneos.
  • omp_get_num_threads: Devuelve el número de hilos en ejecución.
  • omp_get_max_threads: Devuelve el número máximo de hilos que lanzará nuestro programa en las zonas paralelas. Es muy útil para reservar memoria para cada hilo.
  • omp_get_num_procs: Devuelve en número de procesadores de nuestro ordenador o disponibles (para sistemas virtuales).



Comentarios

  1. Oky Jesus. Comentario: mas que resumen de la conferencia pareciera un trabajo de investigacion. Elimina los hipervinculos (links).

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Introducción a la lógica matemática - Cap. 2 Reglas de Inferencia.

Introducción a la lógica matemática - Cap. 4 Tablas de certeza

Hubo un problema pero puedes intentarlo de nuevo Windows error OOBEEULA