loop pragma

Określa sposób, w jaki kod pętli ma być brany pod uwagę przez auto-parallelizer lub wyklucza pętlę z uwagi przez autowektorię.

Składnia

#pragma loop( hint_parallel(N) )
#pragma loop( no_vector )
#pragma loop( ivdep )

Parametry

hint_parallel(N)
Wskazówka dla kompilatora, że ta pętla powinna być równoległa w n wątkach, gdzie n to dodatni literał liczby całkowitej lub zero. Jeśli n ma wartość zero , maksymalna liczba wątków jest używana w czasie wykonywania. Jest to wskazówka dla kompilatora, a nie polecenia. Nie ma gwarancji, że pętla zostanie zrównana. Jeśli pętla zawiera zależności danych lub problemy strukturalne, nie zostaną zrównoleglone. Na przykład nie jest zrównanana, jeśli jest przechowywana w skalarnym, który jest używany poza treścią pętli.

Kompilator ignoruje tę opcję, chyba że określono przełącznik kompilatora /Qpar .

no_vector
Domyślnie automatyczne wektoryzator próbuje wektoryzować wszystkie pętle, które ocenia, mogą z niego korzystać. Określ tę opcję pragma , aby wyłączyć automatyczne wektoryzator dla poniższej pętli.

ivdep
Wskazówka dla kompilatora w celu ignorowania zależności wektorów dla tej pętli.

Uwagi

Aby użyć metody looppragma, umieść ją bezpośrednio przed, a nie w definicji pętli. Efekt pragma ma zastosowanie dla zakresu pętli, która następuje po niej. Można zastosować wiele pragma dyrektyw do pętli w dowolnej kolejności, ale należy określić każde z nich w oddzielnej pragma instrukcji.

Zobacz też

Auto-parallelization and auto-vectorization (Auto-parallelization i auto-vectorization)
Dyrektywy Pragma i __pragma słowa kluczowe i _Pragma