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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Показатель эффективности говорит о средней загрузке вычислительной мощности. Обычно измеряется в процентах. По сути, это эффективность использования (загрузки работой) доступных вычислительных элементов.

Задание. Изучите в английской версии Википедии статью «Speedup» и обратите внимание на определение терминов «ускорение» и «эффективность». Выясните, что такое «сверхлинейное ускорение» (Super-linear speedup) и за счёт чего оно достигается.

5.5.1. Пакетный файл

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

В первой строчке пакетного файла мы отключаем вывод на экран выполняемых команд.

Во второй строчке мы формируем строку заголовков полей (столбцов), разделяя их символом табуляции.

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

Рис. 5.16. Пакетный запуск

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

18> 18.txt.

Следим за загрузкой ядер (рис. 5.17). При каждом запуске загрузка поднимается до 100%. Это радует.

Попутно обратим внимание на дополнительные сведения в Диспетчере задач:

— один процессор (Sockets — 1);

— четыре ядра (Cores — 4);

— восемь логических (виртуальных) процессоров (Logical processors — 8).

Рис. 5.17. Загрузка процессора

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

Получаем текстовый файл.

Открываем его в Блокноте:

Notepad.

Убеждаемся, что здесь записаны колонки цифр (рис. 5.18).

Когда число оказывается длиннее, чем восемь знаков, получаем смещение на следующую позицию табуляции. Надеемся, это не помешает импорту данных в Excel.

Рис. 5.18. Результаты работы

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

5.5.2. Сводная таблица

Загружаем текстовый файл в Excel. Указываем символ табуляции в качестве разделителя полей.

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

Text Import Wizard — Step 3 of 3 — Advanced — Decimal separator —.

После загрузки форматируем полученную таблицу.

Добавляем вычисление десятичного логарифма от числа итераций и времени выполнения — три дополнительных стобца (рис. 5.19).

Рис. 5.19. Загруженная таблица

Задание. Загрузите таблицу и добавьте вычисление логарифма.

Данные загружена и подготовлены. Переходим к анализу результатов.

Щёлкаем по нашей таблице. Присвоим таблице уникальное имя:

Table Tools — Design — Properties — Table Name(рис. 5.20).

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

Рис. 5.20. Имя таблицы

Задание.Присвойте таблице короткое информативное имя.

Построим сводную таблицу (Pivot Table).

Выбираем в верхнем меню вставку сводной таблицы:

Insert — Tables — PivotTable.

Делаем настройки в диалоговом окне:

Create PivotTable.

Убеждаемся, что данные для анализа будут взяты из нашей таблицы:

Choose the data that you want to analyze — Select a table or range — Sum8Threads.

Указываем место для сводной таблицы на текущем листе:

Choose where you want the PivotTable report to be placed — Existing Worksheet.

В строчке Locationвыбираем ячейку на текущем листе. Это будет левый верхний угол нашей сводной таблицы (рис. 5.21).

Нажимаем ОК.

Рис. 5.21. Вставка сводной таблицы

На текущем листе появляются очертания будущей сводной таблицы (рис. 5.22).

В правой части окна выводится область настройки полей:

PivotTable Filelds.

Рис. 5.22. Заготовка сводной таблицы

Настроим поля сводной таблицы (рис. 5.23).

Перетаскиваем поля из списка в области строк и столбцов:

Rows — lg N;

Values — lg Twin, lg Tomp.

После такой настройки в сводной таблице появляются числовые значения.

В разделе значений Valuesмы видим указание на вычисление суммы значений:

Sum of lg Twin;

Sum of lg Tomp.

Рис. 5.23. Выбор полей

Настроим вычисление средних значений:

Щелкаем по полю Sum of Tompв области значений Valuesи выбираем в выпадающем меню Value Field Settings(рис. 5.24).

Рис. 5.24. Настройка значений

В диалоговом окне Value Field Settingsвыбираем вычисление среднего значения:

Summarize value field by — Average.

Настраиваем вычисления среднего для обоих отсчётов времени.

Убеждаемся, что в сводной таблице появились средние вместо сумм (рис. 5.25).

Рис. 5.25. Вычисление среднего

Задание.Настройте сводную таблицу, как описано выше.

Мы определили среднее время выполнения программы.

Сравним измерения времени, полученные двумя разными библиотечными функциями — Windowsи OpenMP.

Найдём разность (Twin — Tomp)и выразим её в процентах от Tomp(рис. 5.26).

Поскольку мы ссылаемся на ячейки сводной таблицы, в формуле появляется вызов специальной функции

GETPIVOTDATA

При этом мы не можем копировать формулы. Нам придётся ввести формулы во все ячейки вручную.

Рис. 5.26. Оценка погрешности

Построим график в логарифмическом масштабе (рис. 5.27).

По оси «иксов» — логарифм числа итераций.

По оси «игреков» — логарифм времени выполнения.

Настраиваем масштаб по осям так, чтобы всё поле графика было занято нами данными.

Устанавливаем цвет маркеров и линий.

Можно видеть, что начиная с 10 8 начинается практически прямая линия.

Так что в дальнейших опытах можно ограничиться меньшим количеством вычислений.

Рис. 5.27. Логарифмический масштаб

Задание.Сравните оценки времени выполнения, полученные разными способами.

5.5.3. Организация экспериментов

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

Сейчас нас интересует ускорение параллельной программы.

Немного упростим предыдущий вариант параллельного суммирования. Пусть всё делается автоматически.

Текст программы приводится на рис.5.28.

В командной строке вводим количество параллельных потоков (строка 5).

Преобразуем введённую строку в целое число (строка 10).

Задаём число потоков в параметрах директивы parallel (строка 12).

Мы выбрали постоянное количество итераций в цикле. Пусть это будет совсем небольшое число. Всего несколько миллиардов (строка 13).

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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