由 setup() 控制的墙时间

Wall time dominated by setup()

我创建了一个 OpenMDAO 问题,其中总时间由 prob.setup() 控制。调用 prob.run() 所需的时间为 10 秒,而调用 prob.setup() 所需的时间为 1916 秒。有 8 个单独的组件。根组有 20 个组和 4 个子组,每组 17 个子组。整个系统的参数总数为 115,021,但几乎都是 20 个用户输入,并在整个过程中得到提升。我将使用它进行优化。有没有办法加快速度,特别是因为所有最低组都使用完全相同的参数,除了一两个?是否针对此类更大的问题进行了任何可扩展性测试?可以并行 运行 setup() 吗?

我们正在努力控制一些问题的设置时间。当您有很多单独的变量时,事情就会变得昂贵。我们通常的技巧是将 link 事物放入更大的数组变量中,并让组件依赖于更大数组的切片。

安装程序确实是并行工作的,但我们还没有并行化安装程序本身。