pętla

Określa, jak kod pętli jest używany przez auto-parallelizer, i/lub wyklucza pętle z rozpatrzenia przez auto-vectorizer.

#pragma loop( hint_parallel(n) )

#pragma loop( no_vector )

#pragma loop( ivdep )

Parametry

  • hint_parallel( n )
    Wskazówki dla kompilatora, że ta pętla powinna odbywać się równolegle przez n wątków, gdzie n jest dodatnim literałem liczby całkowitej lub zerem.Jeśli n wynosi zero, maksymalna liczba wątków jest używana w czasie wykonywania.To jest wskazówka dotycząca kompilatora, nie polecenia i nie ma żadnej gwarancji, że pętla będzie odbywać się równolegle.Jeżeli pętla ma zależności danych lub strukturalne problemy — na przykład, pętla przechowuje wartość skalarną, używaną poza ciałem pętli — następnie pętli nie będzie równoległa.

    Kompilator ignoruje tę opcję, jeśli przełącznik /Qpar nie jest określony.

  • no_vector
    Domyślnie auto-vectorizer jest włączony i spróbuje wektoryzować wszystkie pętle, które ocenia jako korzystające z niego.Określ tą pragmę, aby wyłączyć auto-vectorizer dla pętli, następującej po niej.

  • ivdep
    Wskazówki w kompilatorze do ignorowania wektorowych zależności dla tej pętli.Wykorzystaj tę usterkę w połączeniu z hint_parallel.

Uwagi

Aby użyć pragmy loop, umieść ją bezpośrednio przed — nie w — definicja pętli.Pragma staje się skuteczna dla następującego po niej zakresu pętli.Można stosować pragmy wielokrotne do pętli, w dowolnej kolejności, ale muszą one określać każdą z nich w oddzielnych instrukcji pragmy.

Zobacz też

Informacje

Automatyczna paralelizacja i wektoryzacja

Dyrektywy pragma i słowo kluczowe __Pragma