loop
Controlla il modo in cui il codice del ciclo deve essere considerato dalla funzione di parallelizzazione automatica e/o esclude un ciclo dalla considerazione da parte della funzione di vettorizzazione automatica.
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametri
hint_parallel( n )
Suggerisce al compilatore che questo ciclo deve essere parallelizzato attraverso i thread n, dove n è un valore letterale intero positivo o zero. Se n è zero, il numero massimo di thread viene utilizzato in fase di esecuzione. Si tratta di un suggerimento al compilatore, non di un comando, pertanto non è garantito che il ciclo verrà parallelizzato. Se il ciclo presenta dipendenze di dati o problemi strutturali, ad esempio viene archiviato in un valore scalare che è utilizzato oltre il corpo del ciclo, quest'ultimo non verrà parallelizzato.Il compilatore ignora questa opzione a meno che non sia stata specificata l'opzione /Qpar.
no_vector
Per impostazione predefinita, la vettorizzazione automatica è attivata e tenterà di vettorizzare tutti i cicli che ritiene possano trarne vantaggio. Specificare questo pragma per disabilitare la funzione di vettorizzazione automatica per il ciclo che la segue.ivdep
Suggerisce al compilatore di ignorare le dipendenze del vettore per questo ciclo. Deve essere utilizzata insieme a hint_parallel.
Note
Per utilizzare il pragma loop, inserirlo immediatamente prima della definizione di un ciclo non all'interno di essa. Il pragma diventa effettivo per l'ambito del ciclo che lo segue. È possibile applicare i pragma a un ciclo, in qualsiasi ordine, ma è necessario dichiarare ciascuno in un'istruzione del pragma distinta.