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

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

Организация параллельных потоков. Часть 2: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Организация параллельных потоков. Часть 2»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Организация параллельных потоков. Часть 2», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Сумма должна быть всегда одна и та же. Это просто проверка правильности работы программы. На всякий случай. Если не выводить результат работы S на экран и никак его не использовать, компилятор может немного оптимизировать нашу программу. За ним нужен глаз да глаз.

Рис.5.28. Параллельное суммирование

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

Программа готова.

Незабываем выбрать конфигурацию Release и включить поддержку OpenMP.

Скомпилируем её:

Build — Build Solution.

Исполняемый файл готов.

Создаём пакетный файл для многократного запуска с разным числом потоков (рис. 5.29).

Мы уже познакомились с использованием цикла в пакетных файлах.

Отключаем вывод команд на экран.

Выводим заголовок таблицы.

Далее вызываем по пять прогонов с числом потоков от одного до двенадцати.

Это решение задачи «в лоб».

Немного громоздко, но работоспособно.

Рис. 5.29. Пакетный файл

Задание.Составьте пакетный файл (рис. 5.29).

На самом деле, мы можем организовать вложенные циклы. Ведь пакетный файл — это язык программирования. Почти как настоящий.

В результате у нас осталось всего три строчки в нашем пакетном файле (рис. 5.30). Такой файл легко отлаживать. Меньше шансов ошибиться.

Рис. 5.30. Вложенные циклы

Задание.Составьте пакетный файл (рис. 5.30).

Переходим в командную строку.

Меняем текущий диск и каталог.

Запускаем наш пакетный файл и перенаправляем вывод в файл:

19> 19.txt.

Мы называем пакетный и текстовый файл одинаково —просто чтобы немного запутать читателя.

Загружаем полученный текстовый файл в Excel.

Обрабатываем данные с помощью сводной таблицы.

Строим график изменения времени выполнения от числа потоков (рис. 5.31).

Как ни странно, скорость работы почти не меняется, начиная с четырёх потоков.

Рис.5.31.

Задание.Загрузите данные в Excel и постройте график (рис. 5.31).

Теперь наконец-то мы сможем найти показатели ускорения и эффективности.

У нас есть число потоков и время выполнения.

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

Для дальнейших расчётов мы выделим сводную таблицу и скопируем её в буфер обмена. Затем мы вставим её на свободном месте листа — но только как значения:

Paste Options — Values.

Добавим столбцы показателей S pи E p(рис. 5.32).

Мы сравниваем длительность работы параллельной программы с последовательной. Поэтому в формулах для расчёта ускорения мы фиксируем адрес первой ячейки E18, нажав клавишу F4. За счёт этого мы можем копировать нашу формулу в остальные ячейки столбца.

Строим графики ускорения и эффективности в зависимости от числа потоков (и ядер).

Рассмотрим график. Картина довольно неожиданная. Получается, что ускорение нашей программы не достигает 8 раз на восьми ядрах. Мы не достигли даже ускорения в четыре раза.

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

Рис. 5.32. Ускорение и эффективность

Задание.Постройте таблицу и графики (рис. 5.32). Сделайте выводы об ускорении программы.

Мы рассмотрели работу параллельной программы, которой потоки выполняются на любых ядрах. К тому же, операционная система норовит перебрасывать потоки с одного ядра на другое.

Интересно, что будет, если привязать каждый поток к своему ядру? Станет ли от этого программа работать быстрее?

Задание. Добавьте в программу параллельного суммирования привязку потоков к ядрам. Повторите исследование и выясните, как влияет привязка к ядрам на ускорение расчётов.

6. Численное интегрирование

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

Посмотрим, как покажет себя компьютер на задаче численного интегрирования. Там придётся работать с вещественными числами. А ведь операции с плавающей точкой выполняются гораздо дольше.

6.1. Варианты заданий

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

Формула приводится на рис. 6.1.

Рис. 6.1. Определённый интеграл

Мы используем те же самые варианты заданий, что и предыдущей работе (рис. 6.2).

Рис. 6.2. Варианты заданий

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Организация параллельных потоков. Часть 2» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Организация параллельных потоков. Часть 2» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x