loop
Určuje, jak bude kód smyčky považován pomocí automatického paralizéru nebo vylučuje smyčku z úvahy pomocí automatického vektorizéru.
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametry
hint_parallel( n )
Dává pokyn kompilátoru, že by tato smyčka měla být paralelizována přes n vláken, kde n je kladný celočíselný literál nebo nula.Pokud je n nula, je v době spuštění použit maximální počet vláken.To je pokyn kompilátoru, ne příkaz, a není zaručeno, že tato smyčka bude paralelizována.Pokud má smyčka závislosti na datech nebo strukturální problémy, například tato smyčka ukládá do skaláru, který je použit mimo tělo smyčky, nebude smyčka paralelizována.Kompilátor ignoruje tuto možnost, pokud není zadán přepínač kompilátoru /Qpar.
no_vector
Ve výchozím nastavení je automatický vektorizér zapnutý a pokusí se vektorizovat všechny smyčky, které vyhodnotí, že budou užitečné.Zadáním této direktivy pragma zakážete automatickou vektorizaci smyčky, která jej následuje.ivdep
Dá pokyn kompilátoru ignorovat závislosti vektorů pro tuto smyčku.Toto použijte ve spojení s hint_parallel.
Poznámky
Chcete-li použít direktivu pragma loop umístěte ji těsně před definici smyčky, ne dovnitř.Tato direktiva pragma se projeví v rozsahu smyčky, která ji následuje.Smyčce lze zadat více direktiv pragma v libovolném pořadí, ale je nutné každou z nich uvést v samostatném výrazu direktivy pragma.