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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

4.2.2. Редукция

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

При параллельном решении большой задачи возникает проблема «сбора промежуточных (частичных) сумм». Каждый поток обсчитывает свою часть задачи и получает часть общей суммы. После этого нужно собрать все частичные суммы и сложить их. Такая операция нужна очень часто. Поэтому была разработана готовая процедура «редукции».

Английское слово REDUCTION в данном конкретном случае означает «сворачивание, собирание, соединение, объединение, сведение».

Мы будем использовать параметр reduction в директиве pragma:

#pragma omp parallel for reduction (+: S).

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

Знак [+]указывает, что будет найдена сумма (есть и другие операции).

S — переменная, с которой будем работать.

Составляем программу (рис. 4.12).

При входе в параллельную область в каждом потоке создаётся локальная копия переменной S. Это механизм напоминает создание локальной переменной внутри подпрограммы. Из других модулей к локальной переменной доступа нет.

Слово ЛОКАЛЬНЫЙ буквально означает «местный, внутренний».

Рис. 4.12. Редукция

Создаём пакетный файл, аналогичный рассмотренному.

Переходим в командное окно и задаём разное количество параллельных потоков.

Запускаем пакетный файл.

Смотрим на результаты (рис. 4.13).

Последовательный запуск даёт правильные результаты.

Рис. 4.13. Последовательный запуск

Задаём несколько потоков.

Запуск тоже даёт правильные результаты (рис. 4.14).

Мы применили редукцию и попутно исключили ситуацию гонки.

Рис. 4.14. Параллельный запуск

Задание.Запустите параллельную программу с разным количеством потоков и изучите полученные результаты.

4.2.3. Порядок выполнения потоков

Следующий эксперимент — изучим порядок запуска и выполнения параллельных потоков.

Составим программу на основе предыдущих (рис. 4.15). Обратите внимание, что мы временно убрали редукцию из директивы parallel. Все потоки обращаются к одной и той же общей переменной S.

Программа печатает заголовок таблицы (строка 6).

Затем выводит номер потока и значение суммы (строка 10).

Так мы сможем проследить, в каком порядке работает программа.

Рис. 4.15. Порядок потоков

Запускаем программу, получаем таблицу (рис. 4.16).

Как видим, номера потоков печаются в случайном порядке.

Рис. 4.16. Порядок потоков

Задание. Создайте программу (рис. 4.15) и запустите её. Обратите внимание на порядок выполнения потоков.

Перейдём в командное окно.

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

omp-10-order> order. txt.

Эта манипуляция называется «перенаправление стандартного вывода». Экран — это стандартное устройство вывода, с которым работает функция printf. Вместо экрана, весь текстовый вывод отправляется в файл.

Итак, теперь вся таблица вместе с заголовком записана в текстовый файл. Открываем файл в Блокнотеи убеждаемся в том, что вся информация здесь (рис. 4.17).

Рис. 4.17. Вывод в файл

Задание.Запустите программу и направьте вывод в файл. Откройте файл в Блокноте и изучите его содержимое.

Загрузим текстовый файл для анализа в электронную таблицу.

Запускаем Excel. Вызываем в верхнем меню открытие файла:

File — Open — Other locations — Browse.

Переходим в каталог Release и находим текстовый файл: order. txt.

Устанавливаем загрузку текстовых файлов:

Text Files (*prn, *.txt, *csv).

В правой части окна видим содержимое файла (рис. 4.18).

Нажимаем ОК.

Рис. 4.18. Загрузка файла

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

Original data type — Delimited;

My data has headers(рис. 4.19).

Нажимаем Next.

Рис. 4.19. Первый шаг импорта

На втором шаге импорта указываем разделитель полей — символ табуляции:

Delimiters — Tab.

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

Нажимаем Next(рис. 4.20).

Рис. 4.20. Второй шаг импорта

После импорта файла получаем таблицу в Excel(рис. 4.21).

Выделяем диапазон ячеек — заголовок и данные.

Выбираем в верхнем меню форматирование таблицы:

Home — Styles — Format as Table.

Выбираем оформление таблицы.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x