УДК 004.042

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

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

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

Ключевые слова: прикладные программы Matlab


RESEARCH OF SPECIFIC FEATURES OF PARALLEL REALISATION OF MINIMIZATION TASKS IN COMPUTING ENVIRONMENT MATLAB

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 main principles of concurrent computing in Matlab environment. The article defines some features of the discussed product as well as the conditions and methods for organizing parallel calculations.

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

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

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

В настоящее время существует множество программных средств, поддерживающих параллельные вычисления. Это могут быть интерфейсы программирования приложений (API), предназначенные для программирования многопоточных приложений на многопроцессорных системах с общей памятью (например, стандарт OpenMP). С их помощью пользователь может поэтапно распараллелить написанную программу. Недостаток такого подхода состоит в том, что пользователю требуется самостоятельно описать каждую математическую процедуру (например, поиска минимума функции и т.п.), на что требуется большое количество времени, не говоря уже о возможных логических ошибках. Вследствие этого все большую популярность набирают библиотеки математических процедур, оптимизированные под выполнение в среде параллельных вычислений (такие, как Intel MKL, Matlab), где

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

Остановимся на пакете прикладных программ Matlab.

К наиболее важным особенностям рассматриваемого продукта можно отнести следующие:

  • поддержка MPI;
  • поддержка нескольких параллельных сессий [1];
  • простой путь использования распределенных вычислительных ресурсов;
  • возможность взаимодействия с другими математическими системами (такими, как MathcadMS Excel);
  • управление процессами выполнения подзадач с использованием таких функций, как MathWorks, Job Manager, или с помощью планировщиков сторонних производителей, например, PlatformLSFWindows Compute Cluster Server [2];
  • организация доступа нескольких пользователей к ресурсам одного кластера, организация гетерогенных кластеров [3,4].

Реализация параллельных вычислений в Matlab возможна с помощью набора инструментов Matlab Parallel Toolbox. Для нас важным является то, что он может использоваться вместе с другим набором инструментов – Optimisation Toolbox. Совместно они позволяют решать такие задачи, которые значительно упрощаются при применении параллельных вычислений. Optimization Toolbox имеет встроенную поддержку параллельных вычислений, а также функцию пользовательского определения параллельной реализации программы. Это позволяет значительно сократить время на решение.

Такие функции Optimization Toolbox™, как fmincon, fminunc, fgoalattain, fminimax, fsolve, lsqcurvefit и lsqnonlin, позволяют автоматически распределять вычисление градиентов целевых функций и нелинейных функций с ограничениями на несколько процессоров, но осуществляется это только при следующих условиях:

  • установлена лицензия на программное обеспечение Parallel Computing Toolbox ™;
  • версия Matlab не ниже R2016a;
  • опция SpecifyObjectiveGradient устанавливается в значение false, или, если функция нелинейная с ограничениями, параметр SpecifyConstraintGradient устанавливается в значение false (по умолчанию оба параметра установлены в false);
  • возможность параллельной работы включена с помощью команды parpool, функции Parallel Computing Toolbox;
  • опция UseParallel установлена в значение true (по умолчанию значение параметра установлено в false) [5].

При выполнении этих условий расчет градиента функций решателями выполняется параллельно.

Особенности реализации параллельного расчета градиентов функций в пакете Matlab

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

где – целевая функция или функция с ограничениями, e– единичные вектора направлений,  Δei – размер шага в направлении ei .

Для параллельного расчета  решатели распределяют вычисление значения выражения  на дополнительные процессоры [6].

Параллельный метод центральных разностей

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

Несмотря на то, что оба метода могут работать в режиме параллельных вычислений, данный метод требует вычисления в два раза большего числа функций, при этом он является более точным. Для того, чтобы включить метод центральных конечных разностей, необходимо в параметре FiniteDifferenceType установить значение “central”, в противном случае – “forward”. Важным замечанием является то, что решатели используют функцию parfor, а так как вложенные параллельные циклы в Matlab не работают, то невозможно одновременно использовать вычисление параллельного градиента внутри параллельного цикла в пользовательской функции.

Факторы, влияющие на скорость параллельных вычислений в среде Matlab:
  • увеличение накладных расходов, связанных с вызовом функции parfor вместо for. В некоторых случаях они настолько значительны, что параллельные вычисления могут производиться гораздо медленнее, чем последовательные;
  • невозможность работы вложенных циклов parfor;
  • при наличии вложенности циклы parfor работают как последовательные, при этом временные затраты возрастают по сравнению с обычным циклом for;
  • большое количество входных параметров.
Факторы, влияющие на результат параллельных вычислений в среде Matlab:
  • данные из внешних файлов подгружаются в хаотичном порядке, что может оказывать влияние на результат вычислений в некоторых ситуациях, где важен именно порядок данных;
  • если два или более процессора попытаются получить доступ к одному и тому же файлу, он может быть заблокирован, выполнение задачи приостановлено;
  • если пользовательская целевая функция вызывает пакет Simulink®, то результаты параллельного вычисления градиента функции могут быть неверными;
  • невычисляемые операции, такие, как, например, ввод с клавиатуры, могут нестабильно работать внутри целевых функций или функций с ограничениями;
  • команда parfor не работает при наличии прерываний [7].

Для поиска глобального оптимума наилучшим решением будет запуск решателя из различных начальных точек на разных процессорах. Если при этом используется функция parfor, лучше отключить вычисление параллельного градиента. При этом время, потраченное на решение задачи таким способом, будет значительно меньше времени, потраченного на последовательный запуск функции с распараллеленным вычислением градиента на одной вычислительной машине.

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


Библиографический список
  1. Г.В. Жиба, А.С. Миронов. Исследование эффективности использования Matlab при распределенных вычислениях. Электронное научное издание «Ученые заметки ТОГУ». 2015, Том 6, № 4, С. 460 – 464.
  2. Жуковский А.А., Брылева О.А. Особенности применения инструмента Matlab Parallel Computing Toolbox в распределенных вычислениях/ 9-я Международная молодёжная научно-техническая конференция «Современные проблемы радиотехники и телекоммуникаций РТ-2013». С. 365.
  3. Дьяконов В.П. Вейвлеты. От теории к практике. Полное руководство пользователя. — М.: СОЛОН-Пресс, 2004.
  4. Поршнев С.В. MATLAB 7. Основы работы и программирования. Учебник / С.В. Поршнев. — М.: Бином. Лаборатория знаний, 2006.
  5. Parallel Computing Toolbox. Mathworks. URL: http://uk.mathworks.com/products/parallel-computing/
  6. Coleman, T.F. and Y. Li, “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds,” SIAM. Journal on Optimization, Vol. 6, pp. 418-445, 1996.
  7. Н.Н. Оленёв, Р.В. Печёнкин, А.М. Чернецов. Параллельное программирование в Matlab и его приложения // Вычислительный центр имени А.А. Дородницына РАН. М., 2007.


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


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

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

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

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

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