loop
pragma
Styr hur loopkod ska beaktas av autoparallelliseraren eller exkluderar en loop från att övervägas av autovektoriseraren.
Syntax
#pragma loop( hint_parallel(
n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parametrar
hint_parallel(
n)
Ett tips till kompilatorn om att den här loopen ska parallelliseras över n trådar, där n är en positiv heltalsliteral eller noll. Om n är noll används det maximala antalet trådar vid körning. Det är ett tips till kompilatorn, inte ett kommando. Det finns ingen garanti för att loopen parallelliseras. Om loopen har databeroenden eller strukturella problem kommer den inte att parallelliseras. Den är till exempel inte parallelliserad om den lagrar till en skalär som används utanför looptexten.
Kompilatorn ignorerar det här alternativet om inte /Qpar
kompilatorväxel har angetts.
no_vector
Som standard försöker autovektoriseraren vektorisera alla loopar som utvärderas kan dra nytta av det. Ange den här pragma för att inaktivera automatisk vektoriserare för loopen som följer.
ivdep
Ett tips till kompilatorn om att ignorera vektorberoenden för den här loopen.
Anmärkningar
Om du vill använda loop
pragmaplacerar du den omedelbart före, inte i, en loopdefinition.
pragma börjar gälla för omfånget för den loop som följer den. Du kan tillämpa flera pragma direktiv på en loop i valfri ordning, men du måste ange var och en i en separat pragma-instruktion.
Se även
automatisk parallellisering och automatisk vektorisering
Pragma-direktiv och nyckelorden __pragma
och _Pragma