loop
pragma
Controlla il modo in cui il codice del ciclo deve essere considerato dal parallelizzatore automatico o esclude un ciclo dalla considerazione da parte del vettore automatico.
Sintassi
#pragma loop( hint_parallel(
n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametri
hint_parallel(
n)
Suggerimento al compilatore che questo ciclo deve essere parallelizzato tra n thread, dove n è un valore letterale integer positivo o zero. Se n è zero, viene usato il numero massimo di thread in fase di esecuzione. Si tratta di un suggerimento per il compilatore, non per un comando. Non esiste alcuna garanzia che il ciclo verrà parallelizzato. Se il ciclo presenta dipendenze di dati o problemi strutturali, non verrà parallelizzato. Ad esempio, non viene parallelizzato se archivia in un oggetto scalare usato oltre il corpo del ciclo.
Il compilatore ignora questa opzione a meno che non venga specificata l'opzione del /Qpar
compilatore.
no_vector
Per impostazione predefinita, il vettore automatico tenta di vettorizzare tutti i cicli valutati può trarre vantaggio da esso. Specificare questa opzione pragma per disabilitare il vettore automatico per il ciclo che segue.
ivdep
Suggerimento al compilatore per ignorare le dipendenze vettoriali per questo ciclo.
Osservazioni:
Per usare loop
pragma, posizionarlo immediatamente prima, non in, una definizione di ciclo. Ha pragma effetto per l'ambito del ciclo che lo segue. È possibile applicare più pragma direttive a un ciclo, in qualsiasi ordine, ma è necessario specificare ognuna di esse in un'istruzione separata pragma .
Vedi anche
Parallelizzazione automatica e vettorizzazione automatica
Pragmadirettive e parole __pragma
chiave e _Pragma