E. Zdefiniowane w implementacji zachowania OpenMP C/C++
Niniejszy dodatek podsumowano zachowania, które są opisane jako "zdefiniowane w implementacji" w tym interfejsie API.Każde zachowanie jest odsyłaczami powrót do jego opisu w specyfikacji głównego.
Uwagi
Implementacja jest wymagane, aby określić i udokumentować jej zachowanie w tych przypadkach, ale lista ta może być niekompletne.
Liczba wątków: regionu równoległego po napotkaniu podczas dynamicznego dostosowania liczba wątków jest wyłączona, a liczba wątków, wymagane dla regionu równolegle przekracza liczbę, która może dostarczyć system run-time, zachowanie programu jest zdefiniowane w implementacji (patrz strona 9).
W programie Visual C++ dla-zagnieżdżony region równolegle, 64 wątki (maksymalnie) będą dostarczone.
Liczba procesorów: liczba procesorów fizycznych faktycznie obsługującego wątki w danym momencie jest zdefiniowane w implementacji (patrz strona 10).
W programie Visual C++ liczba ta nie jest stała i jest kontrolowany przez system operacyjny.
Tworzenie zespołów wątków: liczbę wątków w zespole zagnieżdżonego regionu równoległe wykonywanie jest zdefiniowane w implementacji.(patrz strona 10).
W programie Visual C++ określona przez system operacyjny.
Schedule(Runtime): decyzji dotyczących planowania jest odroczone do czasu wykonywania.Można wybrać rozmiar typu i fragmencie harmonogram w czasie wykonywania przez ustawienie OMP_SCHEDULE zmiennej środowiskowej.Jeśli nie ustawiono tę zmienną środowiskową, harmonogram wynikowy jest zdefiniowane w implementacji (patrz strona 13).
W programie Visual C++ typu harmonogramu jest static z nie rozmiar fragmentu.
Harmonogram domyślny: w przypadku braku klauzuli harmonogram domyślny harmonogram jest zdefiniowane w implementacji (patrz strona 13).
W programie Visual C++ jest domyślny typ harmonogramu static z nie rozmiar fragmentu.
Atomowej: jest zdefiniowane w implementacji czy implementacja zamienia wszystkie atomic dyrektyw z krytyczny dyrektyw, które mają taką samą nazwę unikatową (patrz strona 20).
W programie Visual C++, jeśli dane są modyfikowane przez Atomowej nie znajduje się na wyrównanie naturalnych lub jeśli jest 1 lub 2 bajtów długo wszystkie operacje Atomowej, które spełniają tej właściwości będzie używać jednej sekcji krytycznej.W przeciwnym razie nie będzie używane sekcje krytyczne.
omp_get_num_threads: Jeśli liczba wątków nie zostanie jawnie ustawiona przez użytkownika, wartością domyślną jest zdefiniowane w implementacji (patrz strona 9, i sekcji 3.1.2 na stronie 37).
W programie Visual C++ domyślna liczba wątków jest równa liczbie procesorów.
omp_set_dynamic: domyślne dla dostosowania dynamiczny wątku jest zdefiniowane w implementacji (zobacz ppkt 3.1.7 na stronie 39).
W programie Visual C++, wartością domyślną jest FALSE.
omp_set_nested: po włączeniu zagnieżdżonych równoległości, liczba wątków używanych do zagnieżdżone regiony równoległe wykonywanie jest zdefiniowane w implementacji (zobacz ppkt 3.1.9 na stronie 40).
W programie Visual C++ liczba wątków jest określana przez system operacyjny.
OMP_SCHEDULEZmienna środowiskowa: wartość domyślną dla tej zmiennej środowiskowej jest zdefiniowane w implementacji (zobacz ppkt 4.1 na stronie 48).
W programie Visual C++ typu harmonogramu jest static z nie rozmiar fragmentu.
OMP_NUM_THREADSZmienna środowiskowa: Jeśli nie określono wartości dla OMP_NUM_THREADS zmienną środowiskową, lub jeśli określona wartość nie jest dodatnią liczbą całkowitą, lub jeśli wartość jest większa niż maksymalna liczba wątków, które system może obsłużyć, liczba wątków używanych jest zdefiniowane w implementacji (zobacz ppkt 4.2 na stronie 48).
W programie Visual C++ Jeśli określono wartość wynosi zero lub mniej, liczba wątków jest równa liczbie procesorów.Jeśli wartość jest większa niż 64, liczba wątków jest 64.
OMP_DYNAMICZmienna środowiskowa: wartość domyślna jest zdefiniowane w implementacji (zobacz sekcji 4.3 na stronie 49).
W programie Visual C++, wartością domyślną jest FALSE.