2.5. Инструменты OpenMP
Для реализации параллелизма в технологии OpenMP используют три вида инструментов:
– Directives – Директивы компилятора;
– Library functions – Готовые библиотечные функции;
– Environment variables – Переменные среды (параметры окружения).
2.5. Среда разработки
Всё программное обеспечение, используемое в данной работе, является бесплатным и доступно на официальных сайтах фирм-разработчиков. Программы устанавливают в операционной системе Microsoft Windows.
Интегрированная среда разработки Microsoft Visual Studio Community Edition предоставляется бесплатно для студентов, индивидуально работающих программистов и разработчиков программного обеспечения с открытым исходным кодом Open Source.
В данной работе мы будем использовать Visual Studio. Не потому, что это самый лучший компилятор. И не потому, что мы хотели бы заработать на рекламе конкретного программного продукта. Просто под руку попалось. Работает для наших задач – и на том спасибо.
Желающие могут работать в любой другой операционной системе и использовать любой другой компилятор языка программирования Си. Всё, что требуется – это поддержка технологии распараллеливания OpenMP.
Устанавливаем Visual Studio.
Переходим на сайт:
https://visualstudio.microsoft.com/. (https://visualstudio.microsoft.com/)
Выбираем версию Community Edition (рис. 2.2). Она бесплатна для учебных и некоммерческих целей.
Рис. 2.2. Выбор версии среды разработки
Раньше, в далёком прошлом (несколько лет тому назад) программы были небольшие, и разработчики предлагали скачать образ диска в формате *.ISO. Его можно было даже на «болванку» записать. На записываемый DVD-R или на многоразовый, перезаписываемый DVD-RW.
Сегодня выбора почти не осталось. Есть только web-установщик. Небольшая программа, которая скачает из интернета необходимые компоненты для выбранной конфигурации. Счёт может идти на десятки гигабайт, а то и поболее.
Нажимаем кнопку «Установить» и начинается скачивание установщика (рис. 2.3).
Рис. 2.3. Скачивание веб-установщика
Как видим, пока мы скачали чуть больше одного мегабайта.
Скачанную программу запускаем. Начинается процесс установки. В дополнение к стандартному набору средств разработки, который нам предлагают по умолчанию, мы выбираем компилятор языка Си. Остальные компоненты тоже можно установить, если будет такое желание ии необходимость. Веб-установщик скачает всё, что потребуется для завершения установки.
Задание. Установите среду разработки и компилятор языка Си.
3. Составление параллельных программ
В этом разделе мы составим несколько программ, постепенно усложняя алгоритмы.
Каждую программу мы исследуем и рассмотрим со всех сторон.
Попутно мы уточним и проясним разные моменты и особенности.
3.1. Hello, World!
Убедимся, что среда разработки позволит нам сделать что-нибудь полезное. Мы начинаем работу с нуля. С самой простой программы «Всем привет!». Английское название: «Hello, World!»
Создаём новый проект. Пустой, незаполненный проект.
Добавляем новый элемент проекта – файл с исходным текстом программы (рис. 3.1).
Компилируем программу и запускаем её на выполнение.
Для каждой новой программы создаём новый каталог и новый файл с исходным текстом программы. Иначе потом следов не найдёшь. В руках останется последняя недоделанная программа, которая затёрла всю предыдущую работу.
Рис. 3.1. Программа «Всем привет»
Устанавливаем конфигурацию Release.
Нажимаем комбинацию клавиш:
Ctrl + F5.
Видим результаты работы программы в командном окне.
Задание. Создайте программу «Всем привет!» и запустите её на выполнение.
В данной работе мы будем иметь дело только с вариантом Release и не будем заниматься отладкой программы в режиме Debug. Чтобы больше не отвлекаться на эти красивые названия, их нужно будет разобрать и изучить.
Задание. Изучите в Википедии статьи «Отладка программы», «Debugging», «Software bug», «Стадии разработки программного обеспечения» и «Software release life cycle». Выясните значение, происхождение и перевод терминов DEBUG и RELEASE.
По умолчанию шрифт командного окна довольно мелкий.
Настроим его покрупнее.
Щелкаем по значку в левом верхнем углу окна (рис. 3.2) и выбираем свойства:
Properties.
Рис. 3.2. Свойства командного окна
Здесь нас интересует раздел шрифтов:
Font.
Выбираем любой моноширинный шрифт (рис. 3.3). Это означает, что все буквы одинаковой ширины. В названии некоторых шрифтов может быть слово mono. «Моно» означает «один». Эти шрифты имитируют первые печатные устройства, похожие на печатные машинки. Моноширинный шрифт позволяет расположить результаты вывода на экран ровными столбцами.
Задаём подходящий размер.
Если буквы плохо различимы, делаем шрифт жирным.