Compartir a través de


Valor predeterminado de 2.7.2.5

La cláusula de predeterminado permite al usuario afecta a los atributos de datos de las variables.La sintaxis de la cláusula de predeterminado es la siguiente:

default(shared | none)

Especificar valor predeterminado (compartido) equivale explícitamente a enumerar cada variable actualmente visible en una cláusula de compartido , a menos que sea threadprivate o cont- completo.En ausencia de una cláusula explícita de predeterminado , el comportamiento predeterminado es el mismo que si valor predeterminado (compartido) fuera especificado.

Especificar establezca como valor predeterminado (ninguno) requiere que por lo menos uno de los siguientes debe ser true para cada referencia a una variable en la extensión léxica de construcción paralela:

  • La variable explícitamente aparece en una cláusula de atributo de uso compartido de datos de una construcción que contiene la referencia.

  • la variable se declara dentro de la construcción paralela.

  • la variable es threadprivate.

  • La variable tiene const- tipo completo.

  • La variable es la variable de control de bucle para un bucle de Para que inmediatamente siga una directiva de Para o de paralelo para , y la referencia variable aparece dentro del bucle.

Especificando una variable en firstprivate, lastprivate, o la cláusula de informe detallado de una directiva incluida produce una referencia implícita a la variable en el contexto envolvente.Dichas referencias implícitas son también bajo los requisitos anteriores.

Una sola cláusula de predeterminado se puede especificar en una directiva de Paralelo .

El atributo predeterminado de uso compartido de datos de una variable se puede reemplazar utilizando private, firstprivate, lastprivate, informe detallado, y las cláusulas de compartido , tal como se muestra en el ejemplo siguiente:

#pragma  omp  parallel  for  default(shared)  firstprivate(i)\
   private(x)  private(r)  lastprivate(i)