Sdílet prostřednictvím


2.7.2.5 výchozí

Výchozí klauzule umožňuje uživateli ovlivnit atributy sdílení dat proměnných.Syntaxe výchozí klauzule je takto:

default(shared | none)

Zadání default(shared) je ekvivalentní výpis výslovně každé proměnné aktuálně viditelné v sdílené klauzule, pokud je threadprivate nebo nevýhodyt-kvalifikovanou.Neexistuje explicitní výchozí klauzule, výchozí nastavení je stejné jako v případě default(shared) nebyly zadány.

Zadání default(none) vyžaduje, aby nejméně jeden z následujících musí být splněny pro každý odkaz na proměnnou v lexikální rozsah paralelní konstrukce:

  • Proměnná výslovně uvedeny v klauzuli atribut sdílení dat o konstrukci, která obsahuje odkaz.

  • Proměnná je deklarována v rámci paralelní konstrukce.

  • Proměnná je threadprivate.

  • Proměnná je const-kvalifikované typu.

  • Proměnná je řídicí proměnná smyčky pro pro smyčky, která následuje ihned pro nebo pro paralelní směrnice a proměnné odkaz se objeví uvnitř smyčky.

Určení na proměnnou firstprivate, lastprivate, nebo snížení doložky uzavřené směrnice způsobuje implicitní odkaz na proměnnou v ohraničujícím kontextu.Implicitní odkaz se také řídí výše uvedené požadavky.

Pouze jedinou výchozí na lze zadat klauzuli paralelní směrnice.

Proměnné výchozí atribut sdílení dat lze přepsat pomocí soukromé, firstprivate, lastprivate, snížení, a sdíleného klauzule doložené následující příklad:

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