Udostępnij za pośrednictwem


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