Zasady C.2
Notacja jest opisane w ppkt 6.1 standardowy C.Niniejszy dodatek gramatyki pokazuje rozszerzeń gramatyka języka podstawowego dyrektyw OpenMP C i C++.
/ * w C++ (ISO/IEC 14882:1998) * /
Instrukcja seq:
Instrukcja
dyrektywa openmp
Instrukcja seq instrukcji
Instrukcja seq openmp dyrektywy
/ * w C90 (ISO/IEC 9899:1990) * /
Lista instrukcji:
Instrukcja
dyrektywa openmp
Lista instrukcji instrukcji
Lista instrukcji openmp dyrektywy
/ * w C99 (ISO/IEC 9899:1999) * /
element bloku:
Deklaracja
Instrukcja
dyrektywa openmp
Instrukcja:
/ * Standardowy sprawozdania * /
openmp konstrukcja
konstrukcja openmp:
konstrukcja równolegle
dla konstrukcji
konstrukcja sekcji
konstrukcja Single
równolegle do konstrukcji
równolegle z sekcji konstrukcja
kapitan construc
konstrukcja krytyczne
konstrukcja Atomowej
konstrukcja uporządkowane
dyrektywa openmp:
dyrektywy bariery
dyrektywy Flush
Struktura blok:
Instrukcja
konstrukcja równoleżnika na:
blok strukturę dyrektywy równolegle
równolegle dyrektywy:
równoległe omp # pragma równolegle klauzulioptseqnowego wiersza
Klauzula równoleżnika na:
Klauzula unikatowy równolegle
Klauzula danych
Klauzula unikatowy równolegle:
if ( expression )
num_threads ( wyrażenie )
dla konstrukcji:
dla dyrektywy iteracji oświadczenie
dla dyrektywy:
# pragma omp for dla klauzulioptseq nowego wiersza
dla klauzuli:
unikatowe dla klauzuli
Klauzula danych
nowait
unikatowe dla klauzuli:
Zamówione
Harmonogram ( harmonogramu rodzaju )
schedule ( schedule-kind , expression )
rodzaj harmonogram:
statyczne
dynamiczne
z przewodnikiem
Runtime
konstrukcja sekcji:
sekcja zakres dyrektywy sekcje
sekcje dyrektywy:
sekcje omp # pragma klauzuli sekcjeoptseq nowego wiersza
Klauzula sekcje:
Klauzula danych
nowait
zakres sekcji:
{sekcja sekwencji}
kolejność sekcji:
sekcja dyrektywyopt strukturę bloku
strukturę dyrektywy sekcji kolejność sekcji block
sekcja dyrektywy:
sekcja omp # pragma nowego wiersza
konstrukcja pojedynczego:
blok strukturę dyrektywy Single
dyrektywy pojedynczego:
pojedynczy omp # pragma pojedynczej klauzulioptseq nowego wiersza
Klauzula pojedynczego:
Klauzula danych
nowait
równolegle do konstrukcji:
równolegle do dyrektywy iteracji oświadczenie
równolegle do dyrektywy:
równolegle do omp # pragma równolegle do klauzulioptseq nowego wiersza
równolegle do klauzuli:
Klauzula unikatowy równolegle
unikatowe dla klauzuli
Klauzula danych
równolegle z sekcji konstrukcja:
równolegle sekcje dyrektywy sekcji zakres
równolegle sekcje dyrektywy:
sekcje równoległych omp # pragma równolegle sekcje klauzulioptseq nowego wiersza
równolegle sekcje klauzuli:
Klauzula unikatowy równolegle
Klauzula danych
konstrukcja wzorca:
blok strukturę dyrektywy wzorca
wzorzec dyrektywy:
wzorzec omp # pragma nowego wiersza
konstrukcja krytycznych:
blok strukturę dyrektywy krytyczne
krytyczne dyrektywy:
krytyczne omp # pragma frazę regionuopt nowego wiersza
region fraza:
(identyfikator)
bariera dyrektywy:
bariera omp # pragma nowego wiersza
konstrukcja Atomic:
dyrektywę atomowa wyrażenie oświadczenie
dyrektywę atomowa:
# pragma omp atomic nowego wiersza
dyrektywy Flush:
toalety omp # pragma flush varsopt nowego wiersza
Flush vars:
(zmienna lista)
konstrukcja uporządkowane:
blok strukturę dyrektywy uporządkowane
uporządkowane dyrektywy:
# pragma omp uporządkowane nowego wiersza
Deklaracja:
/ * standardowe deklaracje * /
threadprivate dyrektywy
dyrektywa threadprivate:
**# pragma omp threadprivate (**listy zmiennej **)**nowego wiersza
Klauzula danych:
prywatne ( listy zmiennej )
copyprivate ( listy zmiennej )
firstprivate ( listy zmiennej )
**lastprivate (**listy zmiennej )
udostępnione (listy zmiennej)
domyślne (wspólne)
Domyślnie (brak)
redukcja ( redukcji operator : listy zmiennej )
copyin ( listy zmiennej )
operator redukcji:
One of: + * - & ^ | & & ||
/ * c * /
Lista zmiennych:
Identyfikator
Lista zmiennych , identyfikator
/ * w języku C++ * /
Lista zmiennych:
Identyfikator wyrażenia
Lista zmiennych , wyrażenie id