Читать «Организация параллельных потоков. Часть 2» онлайн - страница 8

Валентин Юльевич Арьков

Зато есть другой интересный параметр:

NUMBER_OF_PROCESSORS=8.

Как мы уже говорили, речь здесь идёт о так называемых «виртуальных процессорах», а вовсе не о микросхемах под названием «процессор».

Рис. 3.19. Параметры окружения

Задание. Просмотрите список параметров окружения и обратите внимание на количество процессоров.

Если наш параметр не задан, по умолчанию создаётся количество параллельных потоков, равное числу виртуальных процессоров.

Зададим создание трёх потоков:

set OMP_NUM_THREADS=3

Проверим, что появилось в нашем списке.

Вводим команду

SET

У нас появился наш параметр (рис. 3.20).

Рис. 3.20. Параметры окружения

Задание. Установите число потоков в командном окне.

Есть одна особенность работы с параметрами окружения в командной строке. Любые изменения параметров в командной строке действуют только в одном окне и только до тех пор, пока его не закроют. Постоянное и всеобщее задание параметров окружения делается по-другому. Мы этим заниматься не будем.

Задание. Откройте новое командное окно. Изучите список параметров окружения.

Нам нужно перейти в каталог, где находится скомпилированная программа — исполняемый файл.

Для этого придётся выяснить путь к файлу.

Возвращаемся в среду разработки.

Внизу экрана находим окно Output (рис. 3.21).

Здесь выводятся сообщения о результатах компиляции.

В нашем примере нам сообщают, что исполняемый файл успешно создан:

Build: 1 succeeded.

Нас интересует полный путь к файлу.:

E:\Arkov-OMP\omp-03-fork-join\Release\omp-03-fork-join. exe.

Путь можно скопировать в буфер, чтобы не печатать вручную.

Рис. 3.21. Окно сообщений компилятора

Задание. Ознакомьтесь с окномсообщений о результатах компиляции программы.

Переходим в командное окно.

Мы находимся на диске C:, а исполняемый файл — на диске E:.

Для перехода на другой диск вводим его имя и двоеточие.

Обращаем внимание, как изменилось приглашение к вводу команд.

Теперь здесь имя другого диска (рис. 3.22).

Рис. 3.22. Смена текущего диска

Задание. Смените текущий диск.

Сменим текущий каталог.

Вводим команду Change Directory:

CD

и путь к файлу.

Проверяем содержимое каталога Directory:

DIR

Убеждаемся, что исполняемый файл находится в текущем каталоге.

Запускаем программу на выполнение.

Вводим имя файла и нажимаем ОК.

Расширение EXE вводить не обязательно.

Видим, что параллельная область выполнялась на трёх потоках (рис. 3.23).

Рис. 3.23. Запуск программы

Задание. Запустите программу в командной строке и убедитесь, что вам удалось задать число потоков.

3.5.2. Библиотечная функция

Второй способ задать число параллельных потоков — это библиотечная функция. Конечно, речь здесь идёт о библиотеке OpenMP.

Формат вызова:

void omp_set_num_threads (int num).

Тип возвращаемого значения: void. Эта функция ничего не возвращает. Она просто делает своё дело.

Название функции можно расшифровать так:

Set Number of Threads — задать число параллельных потоков.

Чтобы использовать библиотечную функцию, нужно подключить эту библиотеку (рис. 3.24).

В начале программы указываем заголовочный файл: