Организация параллельных потоков. Часть 2 - [3]

Шрифт
Интервал


Рис. 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. «Моно» означает «один». Эти шрифты имитируют первые печатные устройства, похожие на печатные машинки. Моноширинный шрифт позволяет расположить результаты вывода на экран ровными столбцами.

Задаём подходящий размер.

Если буквы плохо различимы, делаем шрифт жирным.

В нашем примере мы выбрали такой шрифт:

— Size — 24;

— Font — Courier New;

— Bold fonts.

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


Рис. 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). Наводим курсор на идентификатор


Еще от автора Валентин Юльевич Арьков
Анализ и визуализация данных в электронных таблицах

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


Организация параллельных потоков. Часть 1

В данной лабораторной работе рассматриваются основы организации параллельных потоков с помощью стандартных вызовов операционной системы. В работе используется бесплатная интегрированная среда разработки. Приводятся примеры программ на языке Си.


Применение гистограмм в управлении качеством

Гистограмма — это один из самых простых инструментов статистического УПРАВЛЕНИЯ КАЧЕСТВОМ производства. В этой работе будет использоваться пакет Microsoft Excel для создания исходных данных, а также для построения и анализа гистограммы. Можно также использовать любой другой программный инструмент, позволяющий строить гистограммы.


Бизнес-аналитика. Извлечение, преобразование и загрузка данных

Системы бизнес-аналитики работают с различными источниками данных с помощью функций ETL (Extract-Transform-Load). Название ETL можно перевести как «извлечение, преобразование и загрузка данных». Имеется в виду загрузка в хранилище данных для дальнейшей обработки в системе бизнес-аналитики. В простейшем случае это загрузка данных в виде одной, объединённой, консолидированной таблицы. В данной работе мы познакомимся с основными этапами ETL на примере загрузки данных в электронные таблицы.


Анализ распределения в Excel

Учебное пособие позволяет освоить базовые методы статистического анализа распределения с помощью сводки и группировки данных в пакете Microsoft Excel. Практическое знакомство происходит подробно, шаг за шагом, с примерами и комментариями. Попутно можно улучшить навыки работы в Excel, что само по себе уже полезно как элемент современной компьютерной грамотности.


Анализ рядов динамики в электронных таблицах

В данной работе мы рассмотрим раздел «Динамика». Здесь изучают данные, привязанные ко времени. Мы будем опираться на две предыдущие работы: «Анализ распределения (Сводка и группировка)» и «Анализ взаимосвязи (Корреляция и регрессия)». Работа выполняется в пакете типа электронных таблиц. Как и в предыдущих работах, вначале мы сгенерируем случайные числа и поиграем с ними, а затем поработаем с реальными данными.