Тестирование эффективности многопоточной реализации исполнения локальных узлов в библиотеке GridMD - Повышение производительности работы библиотеки GridMD
Тестирование эффективности многопоточной реализации исполнения локальных узлов производилось на примере расчета определенного интеграла функции. Расчет был реализован средствами GridMD (см Приложение), где он был представлен в виде графа, продемонстрированном на Рис. 11.
Рис. 11 Граф исполнения GridMD для расчета определенного интеграла
Распараллеливание интегрирования функции возможно путем разбиения области интегрирования на отдельные интервалы, параллельного интегрирования функции на каждом из интервалов и итогового суммирования результатов интегрирования на интервалах разбиения. Именно такую схему изображает представленный граф исполнения, в узле Start которого разбивается исходная область интегрирования на интервалы, в узлах Split происходит интегрирование функции на каждом из интервалов и в узле End суммируется результат исполнения всех узлов Split. Рассмотренная схема концептуально является шаблоном ветвления, поддерживаемым в GridMD, и реализуется с помощью класса GmFork. Каждый из узлов графа был объявлен как локальный.
В текущей реализации менеджер сценариев по результатам разбора графа спланирует параллельное исполнение узлов Split и отправит их на исполнение в пул потоков.
При тестировании рассчитывался определенный интеграл функции F(x) = sin(x) На отрезке [-1000,1000] c переменным шагом интегрирования. Тестирование производилось на ОС Ubuntu 14.04 и четырехядерном процессоре Intel Core i7 2670QM. Число рабочих потоков в пуле устанавливалось равным числу виртуальных ядер, а именно восьми. Сравнение времени расчета интеграла с помощью GridMD без поддержки многопоточности и при использовании пула потоков представлено на Рис. 12.
Рис. 12 Сравнение времени расчета с помощью многопоточной реализации GridMD и без поддержки потоков
При сравнении область определения разбивалась на 25 интервалов, создавая 25 параллельных ветвей графа исполнения и равное им количество заданий для пула потоков. На каждом шаге теста уменьшался шаг интегрирования (увеличивалось число разбиений всей области интегрирования). Результат интегрирования на каждом из шагов был равен нулю с точностью до ошибки интегрирования, так как интегрировалась четная функция на симметричном относительно нуля интервале. По результатам теста можно сказать, что производительность библиотеки с внедрением пула потоков увеличилась в среднем в 2.5 раза.
Далее было проведено сравнение расчета интеграла с помощью многопоточной версии GridMD и пула потоков, реализованного с помощью средств библиотеки Boost в виде отдельного компонента с аналогичным классу GmThreadPool интерфейсом. (Рис. 13).
Рис. 13 Оценка накладных расходов, вносимых служебными действиями GridMD при расчете
Тaкое сравнение помогает оценить степень влияния накладных расходов GridMD по разбору графа менеджером сценариев, планированию и генерации заданий, разрешение зависимостей узлов по данным через файловую систему. На Рис. 13 видно, что кривые лежат близко друг к другу, и в среднем GridMD своими служебными действиями дает увеличение времени расчета в 6 секунд.
Похожие статьи
-
Библиотека GridMD поддерживает три механизма определения действий, связываемых с узлами графа [8]. Узел графа может соответствовать исполнению стороннего...
-
Одной из особенностей библиотеки GridMD является поддержка Алгоритмических шаблонов распределенных вычислений. Алгоритмические шаблоны являются...
-
В рамках данной работы будет произведена оптимизация выполнения Локальных узлов графа исполнения. В процессе исполнения графа возможна итерация, в...
-
Механизм исполнения GridMD приложения - Повышение производительности работы библиотеки GridMD
Управление исполнением графа осуществляется обособленно из Клиентского приложения, осуществляющего вызовы интерфейсных функций библиотеки GridMD [8]....
-
Заключение, Список используемых источников - Повышение производительности работы библиотеки GridMD
В работе произведена успешная оптимизация выполнения локальных узлов графа исполнения приложений, основанных на библиотеки GridMD. В качестве метода для...
-
Модель вычислительного процесса в GridMD - Повышение производительности работы библиотеки GridMD
Узлы графа исполнения, используемого в GridMD, представляют собой конкретные этапы исполнения, с которыми связываются действия, определяемые программным...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
-
Обозначенные условия определяют работу по внедрению многопоточных средств в модели параллельного программирования С общей памятью с использованием...
-
Общие сведения о библиотеке GridMD Библиотека GridMD является инструментом разработчика распределенных приложений [8][9][10]. Приложение, разделяемое на...
-
Создание очереди заданий - Повышение производительности работы библиотеки GridMD
Для организации работы потоков был выбран паттерн проектирования Пул потоков (Thread Pool) [16] . Пул потоков является объектом, которому возможна выдача...
-
Основные компоненты библиотеки - Повышение производительности работы библиотеки GridMD
Двумя главными компонентами библиотеки GridMD является менеджер сценариев и менеджер заданий (Рис. 4) [10]. Менеджер сценариев разбирает определенный...
-
Иерархия параллельных вычислительных систем - Повышение производительности работы библиотеки GridMD
Одной из основополагающих классификаций параллельных систем является Таксономия Флинна , в которой различаются следующие типы систем по взаимодействию...
-
Workflow-методология - Повышение производительности работы библиотеки GridMD
Суть workflow-методологии хорошо отражена в определении, данным Workflow Management Coalition [5] - это автоматизация бизнес процесса, при котором...
-
Введение - Повышение производительности работы библиотеки GridMD
На сегодняшний день уровень развития вычислительной техники и средств доступа к вычислительным ресурсам предоставляет значительные возможности по...
-
Общие сведения о распределенных вычислениях Обычно под Распределенными вычислениями понимают область знаний, изучающую организацию Распределенных систем...
-
Программное обеспечение промежуточного уровня (middleware) Является основной концепцией по организации программного обеспечения распределенных систем...
-
При работе порта в полудуплексном режиме коммутатор не может изменять протокол и пользоваться для управления потоком новыми командами, такими как...
-
Методология Все тесты будут необходимо провести на разных размерах базы данных, чтобы увидеть, как классические JOINы скалируются в сравнении с...
-
Как отмечалось, входной язык системы MathCAD -- интерпретирующий. В интерпретаторах, например в добром старом Бейсике, листинг программы пользователя...
-
Вычисление интегралов, Вычисление сумм и произведений - Работа с символьным процессором
Система MathCAD содержит встроенную функцию для вычисления значений определенных интегралов приближенным численным методом. Ею целесообразно...
-
Численные эксперименты были проведены для следующих целей: Подтверждение корректности алгоритмов. Подтверждение линейности временных затрат алгоритмов. В...
-
Следующая группа символьных операций выполняется с выражениями, требующими указания переменной, по отношению к которой выполняется операция. Для этого...
-
Программная модель данных, получившая название "MapReduce", была создана несколько лет назад в компании Google, и там же была осуществлена первая...
-
Тестирование и отладка системы - Исследование и модернизация локальной вычислительной сети
Тестирование системы является одной из завершающих стадий в процессе проектирования. На этом этапе проверяется соответствие созданной распределенной...
-
Датчики Pt1000 (TSQ* и TSH*) прекрасно подходят для любых климатических систем, где необходимо измерять температуры в диапазоне от -50 до 250 °C с...
-
К эксплуатационным затратам относятся затраты, обеспечивающие поддержание рабочей среды в рабочем состоянии. В нашем случае состоят из элементов: Где -...
-
Схема реализации функции А Функция А : Функция сброса: Для реализации функции сигнала А нам потребуется: - 2 элемента И, один с двумя входами, один с...
-
Интегрирование, Оператор интегрирования - Вычисление интегралов в Mathcad
Интегрирование в MathCAD реализовано в виде вычислительного оператора. Допускается вычислять интегралы от скалярных функций в пределах интегрирования,...
-
Заключение - Проектирование учебной локальной вычислительной сети
Локальная вычислительная сеть конфигурация При работе над курсовым проектом, изучил весь цикл проектирования и реализации данной ЛВС. Была спроектирована...
-
Тактовая частота - Частота синхронизирующих работу ЭВМ ("тактовых") импульсов, задаваемых генератором тактовой частоты, которые регулируют выполнение...
-
Блок модуля последовательного управления SCM (Sequential Control Module) представляет собой модуль-контейнер для последовательности блоков шагов STEP и...
-
Метод конечных элементов является численным методом для нахождения приближенных решений физических задач. В основе этого метода лежит разделение...
-
Множество D с двумя заданными на нем операциями (плюс) и (умножение) называется диоидом, если выполнены следующие аксиомы: § Ассоциативность. §...
-
Команда Floating Point, Команда Complex - Работа с символьным процессором
В MathCAD имеется возможность выполнения численных вычислений с повышенной точностью -- 20 знаков после запятой. Для перехода в такой режим вычислений...
-
Введение, Правила и порядок выполнения курсовой работы - Программирование в среде Turbo Pascal
Настоящие методические указания предназначены для выполнения курсовой работы "Расчеты на ЭВМ характеристик выходных сигналов электрических цепей" по...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Ферменная конструкция представляет собой стержневую систему. При замене жестких узлов шарнирами, она остается геометрически неизменяемой и удовлетворяет...
-
Подход NoSQL - Технологии больших данных: анализ и выбор решения для реализации проекта
Понятие NoSQL означает "Не только SQL" или "Не SQL". Термин получил известность, начиная с 2009 год, когда развитие интернет-технологий и социальных...
-
Расчет экономической эффективности внедрения информационной системы произведем на основе метода "потоков платежей" ("Cash Flow") с использованием...
-
Возможности системы Широкую известность и заслуженную популярность еще в середине 80-х годов приобрели интегрированные системы для автоматизации...
Тестирование эффективности многопоточной реализации исполнения локальных узлов в библиотеке GridMD - Повышение производительности работы библиотеки GridMD