gemseo / problems / scalable / data_driven

Benchmark MDO formulations based on scalable disciplines

The study package implements several classes to benchmark MDO formulations based on scalable disciplines.

The ScalabilityStudy class implements the concept of scalability study:

  1. By instantiating a ScalabilityStudy, the user defines the MDO problem in terms of design parameters, objective function and constraints.

  2. For each discipline, the user adds a dataset stored in a AbstractFullCache and select a type of ScalableModel to build the ScalableDiscipline associated with this discipline.

  3. The user adds different optimization strategies, defined in terms of both optimization algorithms and MDO formulation.

  4. The user adds different scaling strategies, in terms of sizes of design parameters, coupling variables and equality and inequality constraints. The user can also define a scaling strategies according to particular parameters rather than groups of parameters.

  5. Lastly, the user executes the ScalabilityStudy and the results are written in several files and stored into directories in a hierarchical way, where names depends on both MDO formulation, scaling strategy and replications when it is necessary. Different kinds of files are stored: optimization graphs, dependency matrix plots and of course, scalability results by means of a dedicated class: ScalabilityResult.

The PostScalabilityStudy class implements the way as the set of ScalabilityResult-based result files contained in the study directory are graphically post-processed. This class provides several methods to easily change graphical properties, notably the plot labels. It also makes it possible to define a cost function per MDO formulation, converting the numbers of executions and linearizations of the different disciplines required by a MDO process in an estimation of the computational cost associated with what would be a scaled version of the true problem.


Comparing MDO formulations in terms of estimated true computational time rather than CPU time of the ScalabilityStudy is highly recommended. Indeed, time is often an obviousness criterion to distinguish between MDO formulations having the same performance in terms of distance to the optimum: look at our calculation budget and choose the best formulation that satisfies this budget, or even saves us time. Thus, it is important to carefully define these cost functions.