1. Indice de pagina
  2. 1. Introducción
  3. 2. Rutinas de ejecución
  4. 2.1. omp_set_num_threads
  5. 2.2. omp_get_num_threads
  6. 2.3. omp_get_max_threads
  7. 2.4. omp_get_thread_num
  8. 2.5. omp_get_num_procs
  9. 2.6. omp_in_parallel
  10. 2.7. omp_set_dynamic
  11. 2.8. omp_get_dynamic
  12. 2.9. omp_set_nested
  13. 2.10. omp_get_nested
  14. 2.11. omp_set_schedule
  15. 2.12. omp_get_schedule
  16. 2.13. omp_get_thread_limit
  17. 2.14. omp_set_max_active_levels
  18. 2.15. omp_get_max_active_levels
  19. 2.16. omp_get_level
  20. 2.17. omp_get_ancestor_thread_num
  21. 2.18. omp_get_team_size
  22. 2.19. omp_get_active_level
  23. 3. Cerrojos
  24. 3.1. omp_init_[nest]_lock
  25. 3.2. omp_destroy_[nest]_lock
  26. 3.3. omp_set_[nest]_lock
  27. 3.4. omp_unset_[nest]_lock
  28. 3.5. omp_test_[nest]_lock
  29. 4. Rutinas de tiempo
  30. 4.1. omp_get_wtime
  31. 4.2. omp_get_wtick

Introducción

Rutinas de ejecución y monitorizado de de hebras, procesos y entornos paralelos.
Soporte de sincronización mediante cerrojos OpenMP. Las rutinas de tiempo dan soporte para la portabilidad del timer.
Los prototipos de la librería de rutinas están definidas en el fichero “omp.h”.

Rutinas de ejecución

omp_set_num_threads

void omp_set_num_threads(int num_threads);

Afecta al numero de hebras usadas posteriormente por la regiones paralelas no especificadas por la clausula num_threads.

omp_get_num_threads

Devuelve el numero de hebras en el equipo actual.

omp_get_max_threads

Devuelve el numero máximo de hebras que pueden utilizarse en una nueva región paralela.

omp_get_thread_num

Devuelve el identificador de la hebra actual, donde el identificador esta entre 0 y el tamaño máximo del equipo menos 1.

omp_get_num_procs

Devuelve el numero de procesadores disponibles para el programa.

omp_in_parallel

int omp_in_parallel(void);

Devuelve true si la llamada a la rutina se realiza dentro de una región paralela activa; en otro caso devuelve false.

omp_set_dynamic

void omp_set_dynamic(int dynamic_threads);

Activa o desactiva el ajuste dinámico del número de subprocesos disponibles.

omp_get_dynamic

int omp_get_dynamic(void);

Devuelve el valor de la variable de control interno (VIC) dyn-var, para determinar si el ajuste dinámico del número de procesos está activado o desactivado.

omp_set_nested

void omp_set_nested(int nested);

Activa o desactiva el paralelismo anidado, mediante la modificación de nest-var (VIC).

omp_get_nested

int omp_get_nested(void);

Devuelve el valor del nest-var ()VIC, que determina si el paralelismo anidado está activado o desactivado.

omp_set_schedule

void omp_set_schedule(omp_sched_t kind, int modifier);

Afecta al planificador por defecto usado en las rutinas, modifica la variable run-sched-var (VIC).

omp_get_schedule

void omp_get_schedule(omp_sched_t *kind,int *modifier);

Devuelve el planificador aplicado en las rutinas de planificación.

omp_get_thread_limit

Devuelve el numero máximo de hebras disponibles para el programa.

omp_set_max_active_levels

void omp_set_max_active_levels(int max_levels);

Limita el numero regiones paralelas anidadas, modifica la variable max-active-levels-var (VIC).

omp_get_max_active_levels

 Devuelve el valor de la max-active-levels-var (VIC), que determina el número máximo de regiones paralelas anidadas.

omp_get_level

int omp_get_level(void);

Devuelve el número de regiones paralelas anidadas que contiene la llamada.

omp_get_ancestor_thread_num

Devuelve, para un determinado nivel anidado de la hebra actual, el numero de hebra padre o al que actualmente pertenece.

omp_get_team_size

int omp_get_team_size(int level);

Devuelve, para un determinado nivel anidado de la hebra actual, el tamaño del equipo del hebra padre o al que actualmente pertenece.

omp_get_active_level

Devuelve, para un determinado nivel anidado de la hebra actual, el numero de hebra del padre.

Cerrojos

omp_init_[nest]_lock

void omp_init_lock(omp_lock_t *lock);
void omp_init_nest_lock(omp_nest_lock_t *lock);

Esta rutina inicializa los cerrojos de OpenMP

omp_destroy_[nest]_lock

void omp_destroy_lock(omp_lock_t *lock);
void omp_destroy_nest_lock(omp_nest_lock_t *lock);

Estas rutinas de asegurar que el bloqueo de OpenMP no está inicializado.

omp_set_[nest]_lock

void omp_set_lock(omp_lock_t *lock);
void omp_set_nest_lock(omp_nest_lock_t *lock);

Estas rutinas proporcionan un medio de establecer un bloqueo de OpenMP.

omp_unset_[nest]_lock

void omp_unset_lock(omp_lock_t *lock);
void omp_unset_nest_lock(omp_nest_lock_t *lock);

Estas rutinas proporcionan un medio de establecer un bloqueo de OpenMP.

omp_test_[nest]_lock

int omp_test_lock(omp_lock_t *lock);
int omp_test_nest_lock(omp_nest_lock_t *lock);

Estas rutinas comprueba si el cerrojo esta bloqueado, no suspendiendo la ejecución de la tarea.

Rutinas de tiempo

omp_get_wtime

double omp_get_wtime(void);

Devuelve el valor del reloj en segundos.

omp_get_wtick

double omp_get_wtick(void);

Devuelve la precisión del reloj

Creado por: Daniel Guerrero Martínez y Sergio Rodríguez Lumley 2010

Valid HTML 4.01 Transitional