E. Поведения, определяемые реализацией в OpenMP C/C++
Это приложение содержит расширения функциональности, которые называются "реализация-определено" данного API. Каждая функциональности крест-снабжена ссылается обратно к его описание в основном спецификации.
Заметки
Выполнение определяет реализацию и документ его функциональности в таких случаях, однако этот список может быть незакончен.
Число потоков. При параллельной области обнаружена, пока заблокирована динамическую настройку числа потоков и запрошенное число потоков для параллельной области превышает число, система среды выполнения может предоставить, расширения функциональности программы реализация-определена (см. страницу 9).
В Visual C++, для non-гнездят параллельной области, будут предоставлены 64 потоков (максимальный).
количество процессоров: Реализация-определено количества физических процессоров, фактически при размещении потоков в любой момент времени (см. страницу 10).
В Visual C++, это число не постоянное и управляется операционной системой.
Создание группы потоков. Реализация-определено количество потоков в рабочей группе, которые выполняются вложенных параллельной области. (см. страницу 10).
В Visual C++, это определяется операционной системой.
расписание (среда выполнения): Решение о планировании откладывается до времени выполнения. Тип расписания и размер блока можно выбрать во время выполнения путем установки OMP_SCHEDULE переменная среды. Если эта переменная среды не задана, то результирующее расписание реализация-определено (см. страницу 13).
в Visual C++, тип расписания static без изменения размера блока.
По умолчанию расписание: В отсутствие предложений расписания, реализация-определено расписание по умолчанию (см. страницу 13).
В Visual C++ по умолчанию тип расписания static без изменения размера блока.
АТОМАРНЫЙ: Он реализация-определен заменяет все ли реализация atomic директивы с Критические директивы, которые имеют одно и то же уникальное имя (см. страницу 20).
В Visual C++, если данные, измененные by atomic не находится на естественном выравнивании или если оно 1 или 2 байта длиной атомарных операций, которые удовлетворяют все свойства будут использовать одну критическую секцию. В противном случае критические секции не будут использоваться.
omp_get_num_threads: Если число потоков явно не задано пользователем, то значение по умолчанию реализация-определено (см. страницу 9. Раздел 3.1.2 на странице 37).
В Visual C++ по умолчанию количество потоков равно числу процессоров.
omp_set_dynamic: Значение по умолчанию для динамической настройки потока реализация-определено (см. Раздел 3.1.7 на странице 39).
в Visual C++, значение по умолчанию FALSE.
omp_set_nested: Если вложенная параллелизм включена, реализация-определено число потоков, используемых для выполнения вложенных параллельных области (см. Раздел 3.1.9 на странице 40).
В Visual C++, количество потоков определяется операционной системой.
OMP_SCHEDULE переменная среды: Значение по умолчанию для этой переменной среды реализация-определено (см. Раздел 4.1 на странице 48).
в Visual C++, тип расписания static без изменения размера блока.
OMP_NUM_THREADS переменная среды: Если не указано никакого значения, OMP_NUM_THREADS реализация-определена переменная среды или если указанное значение не является положительным целым числом или если значение превышает максимальное количество потоков, система может поддерживать, то количество потоков для использования (см. Раздел 4.2 на странице 48).
В Visual C++, если указанное значение равно нулю, либо количество потоков равно числу процессоров. Если значение превышает 64, то количество потоков равно 64.
OMP_DYNAMIC переменная среды: Значение по умолчанию реализация-определено (см. Шаг 4.3 на странице 49).
в Visual C++, значение по умолчанию FALSE.