Udostępnij za pośrednictwem


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.