Compartir a través de


F. Nuevas características y aclaraciones de la versión 2.0

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, firstprivate y lastprivate (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 directiva single.

  • 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++: