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

Тут можно читать онлайн Валентин Арьков - Организация параллельных потоков. Часть 2. Учебное пособие - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

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

Организация параллельных потоков. Часть 2. Учебное пособие - описание и краткое содержание, автор Валентин Арьков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
При решении инженерных, экономических и научных задач используются высокопроизводительные вычисления – High Performance Computing или сокращённо HPC.Параллельные программы нужны для того, чтобы использовать вычислительные мощности многоядерных процессоров и графических ускорителей. В данной работе мы рассмотрим технологию автоматической организации параллельных потоков для многоядерных вычислительных машин.

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

Организация параллельных потоков. Часть 2. Учебное пособие - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Валентин Арьков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Устанавливаем конфигурацию Release.

Нажимаем комбинацию клавиш:

Ctrl + F5.

Видим результаты работы программы в командном окне.

Задание. Создайте программу «Всем привет!» и запустите её на выполнение.

В данной работе мы будем иметь дело только с вариантом Releaseи не будем заниматься отладкой программы в режиме Debug. Чтобы больше не отвлекаться на эти красивые названия, их нужно будет разобрать и изучить.

Задание.Изучите в Википедии статьи «Отладка программы», «Debugging», «Software bug», «Стадии разработки программного обеспечения» и «Software release life cycle». Выясните значение, происхождение и перевод терминов DEBUGи RELEASE.

По умолчанию шрифт командного окна довольно мелкий.

Настроим его покрупнее.

Щелкаем по значку в левом верхнем углу окна (рис. 3.2) и выбираем свойства:

Properties.

Рис 32 Свойства командного окна Здесь нас интересует раздел шрифтов Font - фото 5

Рис. 3.2. Свойства командного окна

Здесь нас интересует раздел шрифтов:

Font.

Выбираем любой моноширинный шрифт (рис. 3.3). Это означает, что все буквы одинаковой ширины. В названии некоторых шрифтов может быть слово mono. «Моно» означает «один». Эти шрифты имитируют первые печатные устройства, похожие на печатные машинки. Моноширинный шрифт позволяет расположить результаты вывода на экран ровными столбцами.

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

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

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

– Size – 24;

– Font – Courier New;

– Bold fonts.

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

Рис 33 Выбор шрифта командного окна ЗаданиеНастройте шрифт командного - фото 6

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

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

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

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

Рис 34 Результаты работы программы Задание Убедитесь что настроили шрифт - фото 7

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

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

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

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

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

_OPENMP.

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

#ifdef.

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

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

Рис 35 Проверка поддержки OpenMP Запущенная программа сообщает нам что - фото 8

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

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

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

Рис 36 Поддержки OpenMP пока нет ЗаданиеСоставьте и запустите программу - фото 9

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

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

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

Project – Properties(рис. 3.7).

Рис 37 Свойства проекта Делаем следующие настройки рис 38 - фото 10

Рис. 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.

Рис 38 Настройка свойств проекта ЗаданиеВключите поддержку OpenMP В окне - фото 11

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

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

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

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

#define _OPENMP 200203.

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

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

Рис 39 Окно редактора с поддержкой OpenMP ЗаданиеИзучите изменения в окне - фото 12

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

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

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

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

Рис 310 Сообщение о поддерже OpenMP Задание Запустите программу на - фото 13

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

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

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

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

https://www.openmp.org/specifications/

Находим дату: март 2002 года (рис. 3.11).

Читаем, какая версия была выпущена тогда.

Для первого знакомства с технологией и для наших простых экспериментов этого более чем достаточно. Мы не используем сложные и продвинутые инструменты.

Рис 311 Версии спецификаций ЗаданиеНайдите версию спецификации для языка - фото 14

Рис. 3.11. Версии спецификаций

Задание.Найдите версию спецификации для языка Си по дате выпуска.

3.3. Первая параллельная программа

Компилятор работает и поддерживает распараллеливание.

Составим самую первую параллельную программу.

Добавляем одну строчку (рис. 3.12):

#pragma omp parallel.

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

Рис 312 Параллельная программа Запускаем программу и ничего не изменилось - фото 15

Рис. 3.12. Параллельная программа

Запускаем программу и… ничего не изменилось (рис. 3.13).

Это всё ещё последовательная программа «Всем привет!»

Рис 313 Последовательная программа ЗаданиеСоздайте и запустите программу - фото 16

Рис. 3.13. Последовательная программа

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Арьков читать все книги автора по порядку

Валентин Арьков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x