Организация параллельных потоков. Часть 2. Учебное пособие. Валентин Юльевич Арьков

Читать онлайн.



Скачать книгу

выводится пример текста на экране и указаны размеры букв в пикселах (точках).

      Рис. 3.3. Выбор шрифта командного окна

      Задание. Настройте шрифт командного окна.

      После установки шрифта ещё раз запускаем программу на выполнение.

      Теперь буковки стали более читабельными (рис. 3.4).

      Рис. 3.4. Результаты работы программы

      Задание. Убедитесь, что настроили шрифт командного окна.

      3.2. Поддержка OpenMP

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

      Если в компиляторе включена поддержка OpenMP, то появится следующий идентификатор:

      _OPENMP.

      Для проверки задания макроса используется директива IF DEFINED:

      #ifdef.

      Директива предлагает компилятору проверить, определён ли указанный идентификатор.

      Запускаем следующую программу (рис. 3.5).

      Рис. 3.5. Проверка поддержки OpenMP

      Запущенная программа сообщает нам, что указанный макрос не определён (рис. 3.6).

      Это означает, что после компиляции мы получаем самую обычную последовательную программу.

      Рис. 3.6. Поддержки OpenMP пока нет

      Задание. Составьте и запустите программу (рис.3.5).

      Теперь включим поддержку распараллеливания. Настроим свойства текущего проекта:

      Project – Properties (рис. 3.7).

      Рис. 3.7. Свойства проекта

      Делаем следующие настройки (рис. 3.8):

      Configuration – All Configurations;

      Configuration Properties – C/C++ Language – OpenMP Support – Yes.

      В нижней части окна нам сообщают, что поддерживается версия 2.0:

      OpenMP Support – Enable OpenMP 2.0 language extensions.

      Здесь же показана опция командной строки, которая используется при вызове компилятора:

      /openmp.

      Нажимаем клавиши:

      Apply – OK.

      Рис. 3.8. Настройка свойств проекта

      Задание. Включите поддержку OpenMP.

      В окне редактирования программы сразу видно, что у нас включена поддержка OpenMP (рис. 3.9). Наводим курсор на идентификатор _OPENMP и видим, что он был определён.

      Где-то ещё имеется следующая строчка:

      #define _OPENMP 200203.

      Это означает, что перед компиляцией программы все ссылки на данный идентификатор заменяются на 200203.

      Кроме того, теперь у нас подсвечивается ветка, которая фактически будет вставлена в текст программы.

      Рис. 3.9. Окно редактора с поддержкой OpenMP

      Задание. Изучите изменения в окне редактора.

      Запускаем программу.

      На экран выводится то самое загадочное число 200203 (рис. 3.10). Возможно, у вас будет что-то другое.

      Рис. 3.10. Сообщение о поддерже OpenMP

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

      Полученное число сообщает нам год и месяц выпуска очередной версии спецификации.

      Чтобы понять смысл сообщения, вернемся