0

I have created an OpenMDAO problem where the total wall time is being dominated by the prob.setup(). The time that it takes to call prob.run() is 10 seconds while the time that it takes to call the prob.setup() is 1916 seconds. There are 8 individual components. The root group has 20 groups with 4 subgroups of 17 subsubgroups. The total number of params is 115,021 in the whole system but almost all are 20 user inputs that are promoted throughout. I will be using this for optimization. Is there a way to speed this up, especially since all the lowest groups are using the exact same params except for like one or two? Has any testing of scalability been done for larger problems like this? It is possible to run the setup() in parallel?

Ry10
  • 87
  • 4
  • I've pushed up a fix that allows you to specify an index when using the brent driver. This might help you to reduce the number of vars. You can check it out on https://github.com/Kenneth-T-Moore/OpenMDAO/tree/brent if you want it before it is reviewed and accepted on master. – Kenneth Moore Jan 29 '16 at 21:08

1 Answers1

0

We have some work getting setup times under control for some problems. Things get expensive when you have a lot of separate variables. Our usual trick is to link things into bigger array variables and have components depend on slices of the larger arrays.

Setup does work in parallel, but we haven't parallelized the setup itself.

Justin Gray
  • 5,605
  • 1
  • 11
  • 16