Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este apéndice se resumen los cambios clave realizados en la especificación de C/C++ de OpenMP para pasar de la versión 1.0 a la versión 2.0. Los siguientes elementos son nuevas características agregadas a la especificación:
Se permiten comas en las directivas de OpenMP.
Adición de la cláusula
num_threads. Esta cláusula permite a un usuario solicitar un número específico de subprocesos para una construcción paralela.La directiva threadprivate se ha ampliado para aceptar variables estáticas de ámbito de bloque.
Las matrices de longitud variable C99 son tipos completos y se pueden especificar en cualquier lugar donde se permitan tipos completos, como en las listas de cláusulas
private,firstprivateylastprivate(vea la sección 2.7.2).Una variable privada en una región paralela se puede marcar de nuevo como privada en una directiva anidada.
Se ha agregado la cláusula
copyprivate. Proporciona un mecanismo para usar una variable privada para transmitir un valor de un miembro de un equipo a los demás miembros. Es una alternativa al uso de una variable compartida para el valor cuando resulte complicado proporcionar esta variable compartida (por ejemplo, en una recursividad que requiere una variable diferente en cada nivel). La cláusula copyprivate solo puede aparecer en la directivasingle.Adición de rutinas de tiempo omp_get_wtick y omp_get_wtime similares a las rutinas de MPI. Estas funciones son necesarias para marcar tiempos de reloj.
Se ha agregado un apéndice con una lista de comportamientos definidos por la implementación en OpenMP C/C++. Se requiere una implementación para definir y documentar su comportamiento en estos casos.
Los siguientes cambios sirven para aclarar o corregir las características de la especificación anterior de la API de OpenMP para C/C++:
Se ha aclarado que no está definido el comportamiento de omp_set_nested y omp_set_dynamic cuando
omp_in_paralleldevuelve un valor distinto de cero.Se ha aclarado el anidamiento de directivas cuando se usan opciones paralelas anidadas.
Se puede llamar a las funciones de inicialización de bloqueos y destrucción de bloqueos en una región paralela.
Se han agregado nuevos ejemplos al apéndice A.