Есть ли способ указать частичные данные для Exe c Comp? - PullRequest
1 голос
/ 14 июля 2020

Заглянув в класс, я вижу, что по умолчанию он выглядит как сложный ступенчатый. Есть ли способ указать аналитический партиал?

У меня есть код, который содержит много, по сути, однострочных явных компиляций с указанными аналитическими партиалами. Есть ли реальное преимущество в производительности по сравнению с ExecComp? Или с простыми функциями не получается примерно так же?

1 Ответ

4 голосов
/ 14 июля 2020

В настоящее время нет возможности указать аналитические c частичные для ExecComps, и вы правы в том, что они являются сложными.

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

[Изменить: я обновил рисунок с результатами для этого вычисления: y=sum(log(x)/x**2+3*log(x)]

Я добавил ниже рисунок, показывающий стоимость вычисления производных компонента по мере изменения размера входного массива для этого компонента. Компонент analyti c работает немного быстрее по всем направлениям, но требует большего количества строк кода.

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

Сравнение вычислительных затрат для exe c и analyti c comps

...