Что такое параллельные вычисления в Optimization Toolbox?

Параллельная функциональность оптимизации

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

Следующие решатели Optimization Toolbox™ могут автоматически распределить числовую оценку градиентов целевых функций и нелинейных ограничительных функций к нескольким процессорам:

  • fmincon

  • fminunc

  • fgoalattain

  • fminimax

  • fsolve

  • lsqcurvefit

  • lsqnonlin

Эти решатели используют параллельную оценку градиента при следующих условиях:

  • У вас есть лицензия на программное обеспечение Parallel Computing Toolbox™.

  • Опция SpecifyObjectiveGradient установлен в false, или, если существует нелинейная ограничительная функция, опция SpecifyConstraintGradient установлен в false. Начиная с false значение по умолчанию этих опций, вы не должны устанавливать их; только не устанавливайте их обоих на true.

  • Параллельные вычисления включены с parpool, функция Parallel Computing Toolbox.

  • Опция UseParallel установлен в true. Значением по умолчанию этой опции является false.

Когда эти условия содержат, решатели вычисляют оцененные градиенты параллельно.

Примечание

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

Параллельная оценка градиентов

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

f(x)[f(x+Δ1e1)f(x)Δ1,f(x+Δ2e2)f(x)Δ2,,f(x+Δnen)f(x)Δn],

где

  • f представляет ограничительные функции или цель

  • ei является модульными векторами направления

  • Δi является размером шага в направлении ei

Чтобы оценить f (x) параллельно, решатели Optimization Toolbox распределяют оценку (f (x + Δiei) – f (x))/Δi к дополнительным процессорам.

Найдите что-либо подобное центральным различиям

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

f(x)[f(x+Δ1e1)f(xΔ1e1)2Δ1,,f(x+Δnen)f(xΔnen)2Δn].

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

Включите центральные конечные разности при помощи optimoptions установить FiniteDifferenceType опция к 'central'. Чтобы использовать прямые конечные разности, установите FiniteDifferenceType опция к 'forward'.

Вложенные параллельные функции

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

Предположим, например, своя целевая функция userfcn вызовы parfor, и вы хотите вызвать fmincon в цикле. Предположим также что условия для параллельной оценки градиента fmincon, как дали в параллельной Функциональности Оптимизации, удовлетворены. Когда Запуски parfor Параллельно показывают три случая:

  1. Наиболее удаленным циклом является parfor. Только тот цикл запускается параллельно.

  2. Наиболее удаленный parfor цикл находится в fmincon. Только fmincon запуски параллельно.

  3. Наиболее удаленный parfor цикл находится в userfcn. userfcn может использовать parfor параллельно.

Когда Запуски parfor Параллельно

Смотрите также

| |