Megosztás:


loop pragma

Azt szabályozza, hogy az automatikus párhuzamosító hogyan tekinti a hurokkódot, vagy kizárja a hurkot az automatikus vektorizáló által figyelembe vett szempontokból.

Szintaxis

#pragma loop( hint_parallel( n) )
#pragma loop( no_vector )
#pragma loop( ivdep )

Paraméterek

hint_parallel( n)
Egy tipp a fordítónak, hogy ezt a hurkot n szálak között kell párhuzamosnak lennie, ahol n pozitív egész szám konstans vagy nulla. Ha n nulla, a rendszer futásidőben használja a szálak maximális számát. Ez egy tipp a fordítónak, nem parancsnak. Nincs garancia arra, hogy a hurok párhuzamos lesz. Ha a hurok adatfüggőségekkel vagy strukturális problémákkal rendelkezik, akkor nem lesz párhuzamos. Például nem párhuzamos, ha egy olyan skalárba van tárolva, amelyet a hurok törzsén kívül használnak.

A fordító figyelmen kívül hagyja ezt a beállítást, hacsak nincs megadva a /Qpar fordítókapcsoló.

no_vector
Alapértelmezés szerint az automatikus vektorizáló megpróbálja vektorizálni az összes kiértékelt hurkot, ami előnyös lehet. Adja meg ezt a pragma a következő ciklus automatikus vektorizálójának letiltásához.

ivdep
Egy tipp a fordítónak, amely figyelmen kívül hagyja a ciklus vektorfüggőségeit.

Megjegyzések

A looppragmahasználatához helyezze közvetlenül a hurokdefiníció elé, nem pedig a hurokdefinícióba. A pragma az azt követő ciklus hatókörére érvényes. Egy ciklusra több pragma direktívát is alkalmazhat, de mindegyiket külön pragma utasításban kell megadnia.

Lásd még:

Automatikus párhuzamosítás és automatikus vektorizálás
Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak