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 loop
pragma, 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 oraz słowa kluczowe __pragma
i _Pragma