ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В ПАКЕТЕ ПРИКЛАДНЫХ ПРОГРАММ MATLAB НА ПРИМЕРЕ ЗАДАЧИ МИНИМИЗАЦИИ ФУНКЦИИ

Васильева Мария Валерьевна1, Хестанова Анастасия Феликсовна1
1Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет «Московский институт электронной техники», студентка 4 курса факультета «Микроприборов и технической кибернетики»

Аннотация
В работе рассмотрены особенности параллельных вычислений в среде Matlab на примере конкретной задачи минимизации функции. Согласно полученным результатам, сделаны выводы о возможности и целесообразности использования распараллеливающих возможностей Matlab в задаче минимизации функции.

Ключевые слова: минимизация функций, параллельные вычисления


RESEARCH OF SPECIFIC FEATURES OF PARALLEL COMPUTING IN MATLAB ENVIRONMENT BY THE EXAMPLE OF FUNCTION MINIMIZATION TASK

Vasilyeva Mariya Valeryevna1, Khestanova Anastasiya Feliksovna1
1National Research University of Electronic Technology, fourth-year student at the Department of Microdevices and Technical Cybernetics

Abstract
The article covers the features of concurrent computing in Matlab environment by the example of a particular function minimization task. The acquired results are used to make conclusions about the possibility and reasonability of applying the parallelizing Matlab methods for function minimization task.

Keywords: function minimization, MATLAB, parallel computing


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Васильева М.В., Хестанова А.Ф. Исследование особенностей параллельных вычислений в пакете прикладных программ Matlab на примере задачи минимизации функции // Современные научные исследования и инновации. 2016. № 6 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2016/06/68852 (дата обращения: 21.04.2024).

Параллельные вычисления – актуальная, развивающаяся современная область вычислительных наук. Ее актуальность следует

а) из потребности в больших вычислительных ресурсах для решения прикладных задач и моделирования процессов;

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

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

Мы остановимся на среде разработки Matlab. Особенности рассматриваемого продукта, условия и принципы организации параллельных вычислений подробно описаны в литературе. Мы же рассмотрим особенности параллельных вычислений в среде Matlab на примере конкретной задачи минимизации функции.

Для решения была взята задача определения коэффициентов функции преобразования электрически малой дипольной антенны с полупроводниковым диодом. Постановка задачи подробно описана в литературе [1]. Функция реализует зависимость амплитудного коэффициента (KA) от измеряемого напряжения (UA). Формула, аппроксимирующая амплитудную характеристику, выглядит следующим образом:

где A, B и C – коэффициенты, которые необходимо определить. Таким образом, функция содержит в своем составе 3 переменных.

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

Таблица 1. Исходные опытные данные
Ua, мВ

1±0,1

2±0,1

3±0,1

5±0,1

7±0,1

10±0,1

20±0,1

30±0,1

 KA

0.77

1.1

1.35

1.74

2.1

2.58

3.95

5.18

Ua, мВ

50±0,2

70±0,3

100±1

200±1

300±1

500±2

700±3

1000±3

 KA

7.42

9.6

12.66

22.07

30.68

47.38

63.34

86.41

Ua, мВ

1200±3

1500±3

1999-5

 KA

101.5

123.91

160.63

Итоговая минимизируемая функция в общем виде выглядит следующим образом:

где n – количество исследуемых точек.

Поиск минимума функции осуществлялся с помощью команды fminunc из пакета Optimization Toolbox. Она реализует такие методы гладкой безусловной оптимизации, как:

  • метод наискорейшего спуска (Steepest Descent method);
  • квази-Ньютоновский BFGS-метод (Brouden–Fletcher–Goldfarb–Shanno);
  • квази-Ньютоновский DFP-метод (Davidon–Fletcher–Powell);
  • методы, основанные на построении доверительных двумерных областей (trust-region).

Вычисления производились в последовательном и параллельном режиме. Для оценки времени выполнения использовался Profiler (профилировщик)Matlab. Он позволяет определить время, затраченное на выполнение каждой строки кода функции или скрипта.

Все опыты проводились на вычислительной машине со следующими параметрами:

  • ОС: Windows 7;
  • процессор: Intel® CORE™ i5-3550 CPU @ 3.30 GHz 3.70 GHz;
  • количество процессоров: 4;
  • ОЗУ: 4 Гб;
  • тип системы: 64-разрядная.

По результатам моделирования в последовательном варианте, время, затраченное на выполнение функции поиска минимума, составило 0,58 секунды, количество расчетов функции равно 178 при 32 итерациях. При выполнении в параллельном режиме (при использовании команды parpool(4)) время выполнения функции составило 5,04 секунды. При этом время работы всей программы (от старта и до получения результата) составило 32,354 секунды. То есть, кроме увеличения времени выполнения функции поиска минимума, добавились накладные расходы параллельной обработки информации, а именно, время подготовки к распараллеливанию (порядка 19 секунд, это объясняется тем, что создание потока – очень сложная операция, требующая значительных вычислительных затрат) и отключения функции распараллеливания (порядка 4 секунд). В случае уменьшения числа потоков время выполнения команды fminunc несколько уменьшается, что может быть связано с уменьшением расходов на взаимодействие между параллельными процессами. Таким образом, в случае решения поставленной задачи команда распараллеливания Matlab не дала положительных результатов по скорости выполнения. Связано это может быть с тем, что особенностью данной функции является именно распараллеливание вычисления градиента, количество расчетов которого в данном случае невелико.

По результатам основного решения задачи было решено провести дополнительное исследование зависимости распараллеливания от количества переменных. В литературе доказывается, что мы можем модифицировать функцию путем изменения количества переменных. Согласно этому утверждению, были составлены и исследованы функции числом переменных от 2 до 26. Графики изменения времени выполнения функции fminuncпредставлены на графике (рис. 1).

Рис. 1. График изменения скорости выполнения функции поиска минимума в зависимости от количества переменных и количества потоков

По результатам сравнительного анализа было выявлено, что прямой зависимости времени выполнения функции поиска минимума от количества переменных нет. Наблюдается зависимость от количества итераций выполнения алгоритма (вычисления последовательных приближений x1x2, … и т.д.), (рис. 2). В среднем, каждые 30 итераций выполняются за 5,5 секунд.

Рис. 2. График изменения скорости выполнения операции fminunc в зависимости от количества итераций алгоритма

Дополнительно была исследована функция Растригина от 100 до 250 переменных. Результаты приведены на графике (рис. 3). Анализ показывает, что от изменения числа переменных разница по скорости работы функции с таким количеством переменных в задаче поиска минимума функции междуfminunc из Optimisation Toolbox и с использованием Parallel Toolbox не зависит. Анализ скорости выполнения команды по количеству потоков показывает, что введение распараллеливания вычислений также не дает положительных результатов.

Рис. 3. График изменения скорости выполнения операции fminunc на примере функции Растригина в зависимости от количества переменных и количества потоков

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


Библиографический список
  1. Лукьянов В.И, Токатлы В.И, Тищенко В.А. Исследование функции преобразования электрически малой дипольной антенны с полупроводниковым диодом. Измерительная техника. 2000. № 2.
  2. Г.В. Жиба, А.С. Миронов. Исследование эффективности использования Matlab при распределенных вычислениях. Электронное научное издание «Ученые заметки ТОГУ». 2015, Том 6, № 4, С. 460 – 464.
  3. Жуковский А.А., Брылева О.А. Особенности применения инструмента Matlab Parallel Computing Toolbox в распределенных вычислениях. 9-я Международная молодёжная научно-техническая конференция «Современные проблемы радиотехники и телекоммуникаций РТ-2013». С. 365.
  4. Parallel Computing Toolbox. Mathworks. URL: http://uk.mathworks.com/products/parallel-computing/


Количество просмотров публикации: Please wait

Все статьи автора «Васильева Мария Валерьевна»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация