Что такое параллельные вычисления в 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 Параллельно

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

| |