6.2.1. Optimization in ParAMS 2023.1
************************************

Starting with ParAMS 2023.1, the parameter optimization is controlled
by GloMPO: Globally Managed Parallel Optimization.

To run a parameter optimization, set "Task Optimization" in the input
file.

You can now run multiple optimizers in parallel. Optimizers converging
to bad solutions or otherwise performing badly can be shut off and new
ones started. You may configure:

* One or multiple Optimizers

* Exit conditions, see also the table below.

* Conditions for stopping optimizers, see also the table below.

* Parallelization options

* Output to generate

* Checkpoints (restart/continue from a previous run)

* The initial starting parameters for each new optimization
  (Generator)

* Parameter constraints

* Other input

+----------------------+--------------------------------+--------------------------------+
|                      | ExitConditions (link)          | Stoppers (link)                |
|======================|================================|================================|
| What does it do?     | Stops the entire optimization. | Stops one running optimizer.   |
+----------------------+--------------------------------+--------------------------------+
| What happens once    | The job ends.                  | Other optimizers are           |
| triggered?           |                                | unaffected  and keep running.  |
|                      |                                | If possible,  a new optimizer  |
|                      |                                | will be started  to replace    |
|                      |                                | the stopped one.               |
+----------------------+--------------------------------+--------------------------------+
| When is it           | Approximately every 10         | This is controlled by the      |
| evaluated?           | function  evaluations or more  | "CheckStopperInterval" key.    |
|                      | frequently.                    |                                |
+----------------------+--------------------------------+--------------------------------+
| Am I required to use | Yes                            | No                             |
| one?                 |                                |                                |
+----------------------+--------------------------------+--------------------------------+
| What is checked?     | Generally, global properties   | Generally, optimizer-specific  |
|                      | like total time used, or total | properties. Comparisons are    |
|                      | function calls made by *all*   | often  made between one        |
|                      | optimizers.                    | optimizer and  the best        |
|                      |                                | optimizer.                     |
+----------------------+--------------------------------+--------------------------------+
| Easy to set up?      | Yes. Generally determined by   | Generally, trickier to set up. |
|                      | resource limitations (like     | Requires problem-specific      |
|                      | time),  or specific goals      | information and a good guess   |
|                      | (like getting  a certain       | of how optimizers will behave  |
|                      | number of results.             | on the problem.                |
+----------------------+--------------------------------+--------------------------------+
| Good to know?        | None.                          | By default, won't trigger for  |
|                      |                                | the  best optimizer unless     |
|                      |                                | "ApplyStoppersToBestOptimizer  |
|                      |                                | Yes"  is used.                 |
+----------------------+--------------------------------+--------------------------------+

The default behavior is to just run a single optimization, as in
ParAMS 2022.1. This corresponds to the following input:

   ParallelLevels
       Optimizations 1
   End
   ExitCondition
       Type MaxOptimizersConverged
       MaxOptimizersConverged 1
   End
