Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här bilagan sammanfattas de beteenden som beskrivs som "implementeringsdefinierade" i det här API:et. Varje beteende korsreferenseras tillbaka till beskrivningen i huvudspecifikationen.
Anmärkningar
En implementering krävs för att definiera och dokumentera dess beteende i dessa fall, men den här listan kan vara ofullständig.
Antal trådar: Om en parallell region påträffas när dynamisk justering av antalet trådar inaktiveras och antalet trådar som begärs för den parallella regionen är mer än det antal som körningssystemet kan ange, är programmets beteende implementeringsdefinierat (se sidan 9).
I Visual C++, för en icke-kapslad parallell region, tillhandahålls 64 trådar (maximalt).
Antal processorer: Antalet fysiska processorer som faktiskt är värdar för trådarna vid en viss tidpunkt är implementeringsdefinierat (se sidan 10).
I Visual C++ är det här talet inte konstant och styrs av operativsystemet.
Skapa team med trådar: Antalet trådar i ett team som kör en kapslad parallell region är implementeringsdefinierad (se sidan 10).
I Visual C++bestäms det här talet av operativsystemet.
schedule(runtime): Beslutet om schemaläggning skjuts upp till körningstid. Du kan välja schematyp och segmentstorlek vid körning genom att ställa in
OMP_SCHEDULEmiljövariabeln. Om den här miljövariabeln inte har angetts är det resulterande schemat implementeringsdefinierat (se sidan 13).I Visual C++ är schematypen
staticutan segmentstorlek.Standardschemaläggning: I avsaknad av schemasatsen är standardschemat implementeringsdefinierat (se sidan 13).
I Visual C++är
staticstandardschematypen utan segmentstorlek.ATOMÄR: Det är implementeringsdefinierat om en implementering ersätter alla
atomicdirektiv medcriticaldirektiv som har samma unika namn (se sidan 20).I Visual C++, om data som modifierats av atomiska inte är på en naturlig anpassning eller om det är en eller två byte långt, kommer alla atomiska operationer som uppfyller denna egenskap att använda ett kritiskt avsnitt. Annars används inte kritiska avsnitt.
omp_get_num_threads: Om antalet trådar inte uttryckligen har angetts av användaren är standardinställningen implementeringsdefinierad (se sidan 9).
I Visual C++är standardantalet trådar lika med antalet processorer.
omp_set_dynamic: Standardinställningen för dynamisk trådjustering är implementeringsdefinierad.
I Visual C++är
FALSEstandardvärdet .omp_set_nested: När kapslad parallellitet är aktiverad, definieras antalet trådar som används för att köra kapslade parallella regioner av implementationen.
I Visual C++bestäms antalet trådar av operativsystemet.
OMP_SCHEDULE miljövariabel: Standardvärdet för den här miljövariabeln är implementeringsdefinierat.
I Visual C++ är schematypen
staticutan segmentstorlek.OMP_NUM_THREADS miljövariabel: Om inget värde har angetts för
OMP_NUM_THREADSmiljövariabeln, eller om det angivna värdet inte är ett positivt heltal, eller om värdet är större än det maximala antalet trådar som systemet kan stödja, är antalet trådar som ska användas implementeringsdefinierat.Om det angivna värdet i Visual C++ är noll eller mindre är antalet trådar lika med antalet processorer. Om värdet är större än 64 är antalet trådar 64.
OMP_DYNAMIC miljövariabel: Standardvärdet är implementeringsdefinierat.
I Visual C++är
FALSEstandardvärdet .