loop
Określa, jak kod pętli jest uważany przez auto-parallelizer, i/lub wyklucza pętli z rozpatrzenia przez auto-vectorizer.
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametry
hint_parallel(n)
Wskazówki do kompilator, że ta pętla powinny odbywać się równolegle przez n wątków, gdzie n jest literałem dodatnią liczbą całkowitą lub zerem.Jeśli n jest równa zero, maksymalną liczbę wątków jest używany w czasie wykonywania.To jest Wskazówka do kompilatora, a nie polecenia, a nie ma żadnej gwarancji, że pętla będzie odbywać się równolegle.Jeśli pętli ma zależności danych lub strukturalnych problemów — na przykład pętli są przechowywane na wartość skalarną, który jest używany poza pętli —, a następnie pętli nie będzie obliczeń.Kompilator ignoruje tę opcję, jeśli nie /Qpar przełącznik kompilatora.
no_vector
Domyślnie auto-vectorizer jest na i podejmie próbę vectorize wszystkie pętli, które ocenia jako korzystających z niego.Określ ten pragma wyłączyć auto-vectorizer dla pętli, która następuje.ivdep
Wskazówki do kompilatorowi ignorowanie wektor zależności dla tej pętli.Wykorzystać tę usterkę w połączeniu z hint_parallel.
Uwagi
Aby użyć loop pragma, umieść go bezpośrednio przed — nie w — definicja pętli.Pragma staje się skuteczne dla zakresu pętli, następująca po niej.Można zastosować wiele pragmy pętli, w dowolnej kolejności, ale musi określać każdego z nich w oddzielnych pragma instrukcja.