Batch sampling#

GEMSEO v6.2.0 added the option vectorize (default: False) to the DOE algorithms to enable batch sampling of outputs of interest. In other words, GEMSEO can evaluate a multidisciplinary system at several points at the same time, without the need for multiple processes (see the DOE option n_processes for more information). This can be particularly useful when evaluating such a system in parallel is more expensive than evaluating it serially because the disciplines are so inexpensive. In this case, the batch sampling can be sequential.

This example illustrates this features, first for an evaluation problem, then for a scenario.

from __future__ import annotations

from typing import TYPE_CHECKING

from numpy import array
from numpy import newaxis
from pandas.testing import assert_frame_equal

from gemseo.algos.design_space import DesignSpace
from gemseo.algos.doe.scipy.scipy_doe import SciPyDOE
from gemseo.algos.doe.scipy.settings.mc import MC_Settings
from gemseo.algos.evaluation_problem import EvaluationProblem
from gemseo.core.discipline.discipline import Discipline
from gemseo.core.mdo_functions.mdo_function import MDOFunction
from gemseo.formulations.disciplinary_opt_settings import DisciplinaryOpt_Settings
from gemseo.formulations.mdf_settings import MDF_Settings
from gemseo.problems.mdo.sellar.sellar_1 import Sellar1
from gemseo.problems.mdo.sellar.sellar_2 import Sellar2
from gemseo.problems.mdo.sellar.sellar_design_space import SellarDesignSpace
from gemseo.problems.mdo.sellar.sellar_system import SellarSystem
from gemseo.scenarios.mdo_scenario import MDOScenario
from gemseo.utils.timer import Timer

if TYPE_CHECKING:
    from gemseo.datasets.optimization_dataset import OptimizationDataset
    from gemseo.typing import RealArray
    from gemseo.typing import StrKeyMapping

For an evaluation problem#

First, we illustrate this feature with an EvaluationProblem consisting of calculating the area of several rectangles. To do this, we define the design space including the bounds of the length and width of such a rectangle:

design_space = DesignSpace()
design_space.add_variable("length", lower_bound=0.0, upper_bound=10.0)
design_space.add_variable("width", lower_bound=0.0, upper_bound=10.0)

Then, we define a function to compute the area of a rectangle from an array. The latter can contain either the values of the length and width of a rectangle, i.e., array([length, width]), or a collection of n pairs of length and width corresponding to n rectangles, i.e., array([[length_1, width_1], ..., [length_n, width_n]]). Note that the function includes dimension checks to support both cases.

class AreaFunction:
    """Compute the area of a rectangle."""

    def __init__(self) -> None:
        self.last_input_data = array([])

    def __call__(self, input_data: RealArray) -> RealArray:
        """Compute the area of the rectangle.

        Args:
            input_data: The input data.
                This 1D array is
                shaped as ``(input_dimension,)`` or ``(n_samples, input_dimension)``.

        Returns:
            The output data.
            This 1D array is
            shaped as ``(output_dimension,)`` or ``(n_samples, output_dimension)``.
        """
        is_1d = input_data.ndim == 1
        if is_1d:
            input_data = input_data[newaxis, :]

        self.last_input_data = input_data
        length = input_data[:, 0]
        width = input_data[:, 1]
        area = length * width
        return area[0] if is_1d else area


function = AreaFunction()

We can verify that the function works correctly:

(
    function(array([3.0, 6.0])),
    function(array([2.0, 4.0])),
    function(array([[3.0, 6.0], [2.0, 4.0]])),
)
(np.float64(18.0), np.float64(8.0), array([18.,  8.]))

This function can be attached to an EvaluationProblem using an MDOFunction

problem = EvaluationProblem(design_space)
problem.add_observable(MDOFunction(function, "area"))

Then, this problem can be sampled using a DOE algorithm, e.g., Monte Carlo. The default mode is sequential sampling; we use it to generate reference samples:

SciPyDOE("MC").execute(problem, settings_model=MC_Settings(n_samples=1000))
samples_ref = problem.to_dataset()
INFO - 16:24:58: Evaluation problem:
INFO - 16:24:58:    Evaluate the functions: area
INFO - 16:24:58:    over the design space:
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | length |      0      |  None |      10     | float |
INFO - 16:24:58:       | width  |      0      |  None |      10     | float |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58: Running the algorithm MC:
INFO - 16:24:58:      1%|          | 6/1000 [00:00<00:00, 12627.11 it/sec]
INFO - 16:24:58:      1%|          | 7/1000 [00:00<00:00, 10938.94 it/sec]
INFO - 16:24:58:      1%|          | 8/1000 [00:00<00:00, 10299.09 it/sec]
INFO - 16:24:58:      1%|          | 9/1000 [00:00<00:00, 9686.61 it/sec]
INFO - 16:24:58:      1%|          | 10/1000 [00:00<00:00, 9495.82 it/sec]
INFO - 16:24:58:      1%|          | 11/1000 [00:00<00:00, 9377.51 it/sec]
INFO - 16:24:58:      1%|          | 12/1000 [00:00<00:00, 9269.18 it/sec]
INFO - 16:24:58:      1%|▏         | 13/1000 [00:00<00:00, 9198.04 it/sec]
INFO - 16:24:58:      1%|▏         | 14/1000 [00:00<00:00, 9112.39 it/sec]
INFO - 16:24:58:      2%|▏         | 15/1000 [00:00<00:00, 9064.19 it/sec]
INFO - 16:24:58:      2%|▏         | 16/1000 [00:00<00:00, 9013.95 it/sec]
INFO - 16:24:58:      2%|▏         | 17/1000 [00:00<00:00, 8853.14 it/sec]
INFO - 16:24:58:      2%|▏         | 18/1000 [00:00<00:00, 8829.08 it/sec]
INFO - 16:24:58:      2%|▏         | 19/1000 [00:00<00:00, 8819.36 it/sec]
INFO - 16:24:58:      2%|▏         | 20/1000 [00:00<00:00, 8811.56 it/sec]
INFO - 16:24:58:      2%|▏         | 21/1000 [00:00<00:00, 8771.20 it/sec]
INFO - 16:24:58:      2%|▏         | 22/1000 [00:00<00:00, 8760.53 it/sec]
INFO - 16:24:58:      2%|▏         | 23/1000 [00:00<00:00, 8761.15 it/sec]
INFO - 16:24:58:      2%|▏         | 24/1000 [00:00<00:00, 8752.57 it/sec]
INFO - 16:24:58:      2%|▎         | 25/1000 [00:00<00:00, 8673.80 it/sec]
INFO - 16:24:58:      3%|▎         | 26/1000 [00:00<00:00, 8658.35 it/sec]
INFO - 16:24:58:      3%|▎         | 27/1000 [00:00<00:00, 8669.90 it/sec]
INFO - 16:24:58:      3%|▎         | 28/1000 [00:00<00:00, 8674.88 it/sec]
INFO - 16:24:58:      3%|▎         | 29/1000 [00:00<00:00, 8683.86 it/sec]
INFO - 16:24:58:      3%|▎         | 30/1000 [00:00<00:00, 8691.66 it/sec]
INFO - 16:24:58:      3%|▎         | 31/1000 [00:00<00:00, 8698.96 it/sec]
INFO - 16:24:58:      3%|▎         | 32/1000 [00:00<00:00, 8700.18 it/sec]
INFO - 16:24:58:      3%|▎         | 33/1000 [00:00<00:00, 8582.63 it/sec]
INFO - 16:24:58:      3%|▎         | 34/1000 [00:00<00:00, 8489.48 it/sec]
INFO - 16:24:58:      4%|▎         | 35/1000 [00:00<00:00, 8481.66 it/sec]
INFO - 16:24:58:      4%|▎         | 36/1000 [00:00<00:00, 8486.68 it/sec]
INFO - 16:24:58:      4%|▎         | 37/1000 [00:00<00:00, 8487.24 it/sec]
INFO - 16:24:58:      4%|▍         | 38/1000 [00:00<00:00, 8492.76 it/sec]
INFO - 16:24:58:      4%|▍         | 39/1000 [00:00<00:00, 8494.46 it/sec]
INFO - 16:24:58:      4%|▍         | 40/1000 [00:00<00:00, 8502.11 it/sec]
INFO - 16:24:58:      4%|▍         | 41/1000 [00:00<00:00, 8476.26 it/sec]
INFO - 16:24:58:      4%|▍         | 42/1000 [00:00<00:00, 8474.97 it/sec]
INFO - 16:24:58:      4%|▍         | 43/1000 [00:00<00:00, 8482.11 it/sec]
INFO - 16:24:58:      4%|▍         | 44/1000 [00:00<00:00, 8484.64 it/sec]
INFO - 16:24:58:      4%|▍         | 45/1000 [00:00<00:00, 8490.88 it/sec]
INFO - 16:24:58:      5%|▍         | 46/1000 [00:00<00:00, 8499.10 it/sec]
INFO - 16:24:58:      5%|▍         | 47/1000 [00:00<00:00, 8511.02 it/sec]
INFO - 16:24:58:      5%|▍         | 48/1000 [00:00<00:00, 8518.88 it/sec]
INFO - 16:24:58:      5%|▍         | 49/1000 [00:00<00:00, 8527.48 it/sec]
INFO - 16:24:58:      5%|▌         | 50/1000 [00:00<00:00, 8508.75 it/sec]
INFO - 16:24:58:      5%|▌         | 51/1000 [00:00<00:00, 8512.46 it/sec]
INFO - 16:24:58:      5%|▌         | 52/1000 [00:00<00:00, 8519.01 it/sec]
INFO - 16:24:58:      5%|▌         | 53/1000 [00:00<00:00, 8525.01 it/sec]
INFO - 16:24:58:      5%|▌         | 54/1000 [00:00<00:00, 8536.25 it/sec]
INFO - 16:24:58:      6%|▌         | 55/1000 [00:00<00:00, 8527.21 it/sec]
INFO - 16:24:58:      6%|▌         | 56/1000 [00:00<00:00, 8531.51 it/sec]
INFO - 16:24:58:      6%|▌         | 57/1000 [00:00<00:00, 8541.15 it/sec]
INFO - 16:24:58:      6%|▌         | 58/1000 [00:00<00:00, 8545.97 it/sec]
INFO - 16:24:58:      6%|▌         | 59/1000 [00:00<00:00, 8525.01 it/sec]
INFO - 16:24:58:      6%|▌         | 60/1000 [00:00<00:00, 8529.05 it/sec]
INFO - 16:24:58:      6%|▌         | 61/1000 [00:00<00:00, 8538.38 it/sec]
INFO - 16:24:58:      6%|▌         | 62/1000 [00:00<00:00, 8542.65 it/sec]
INFO - 16:24:58:      6%|▋         | 63/1000 [00:00<00:00, 8552.05 it/sec]
INFO - 16:24:58:      6%|▋         | 64/1000 [00:00<00:00, 8559.80 it/sec]
INFO - 16:24:58:      6%|▋         | 65/1000 [00:00<00:00, 8568.95 it/sec]
INFO - 16:24:58:      7%|▋         | 66/1000 [00:00<00:00, 8576.25 it/sec]
INFO - 16:24:58:      7%|▋         | 67/1000 [00:00<00:00, 8588.58 it/sec]
INFO - 16:24:58:      7%|▋         | 68/1000 [00:00<00:00, 8569.83 it/sec]
INFO - 16:24:58:      7%|▋         | 69/1000 [00:00<00:00, 8577.82 it/sec]
INFO - 16:24:58:      7%|▋         | 70/1000 [00:00<00:00, 8586.59 it/sec]
INFO - 16:24:58:      7%|▋         | 71/1000 [00:00<00:00, 8597.37 it/sec]
INFO - 16:24:58:      7%|▋         | 72/1000 [00:00<00:00, 8605.42 it/sec]
INFO - 16:24:58:      7%|▋         | 73/1000 [00:00<00:00, 8615.68 it/sec]
INFO - 16:24:58:      7%|▋         | 74/1000 [00:00<00:00, 8626.18 it/sec]
INFO - 16:24:58:      8%|▊         | 75/1000 [00:00<00:00, 8637.13 it/sec]
INFO - 16:24:58:      8%|▊         | 76/1000 [00:00<00:00, 8645.00 it/sec]
INFO - 16:24:58:      8%|▊         | 77/1000 [00:00<00:00, 8586.43 it/sec]
INFO - 16:24:58:      8%|▊         | 78/1000 [00:00<00:00, 8588.57 it/sec]
INFO - 16:24:58:      8%|▊         | 79/1000 [00:00<00:00, 8592.66 it/sec]
INFO - 16:24:58:      8%|▊         | 80/1000 [00:00<00:00, 8565.92 it/sec]
INFO - 16:24:58:      8%|▊         | 81/1000 [00:00<00:00, 8566.06 it/sec]
INFO - 16:24:58:      8%|▊         | 82/1000 [00:00<00:00, 8567.91 it/sec]
INFO - 16:24:58:      8%|▊         | 83/1000 [00:00<00:00, 8570.34 it/sec]
INFO - 16:24:58:      8%|▊         | 84/1000 [00:00<00:00, 8570.01 it/sec]
INFO - 16:24:58:      8%|▊         | 85/1000 [00:00<00:00, 8554.26 it/sec]
INFO - 16:24:58:      9%|▊         | 86/1000 [00:00<00:00, 8553.31 it/sec]
INFO - 16:24:58:      9%|▊         | 87/1000 [00:00<00:00, 8556.19 it/sec]
INFO - 16:24:58:      9%|▉         | 88/1000 [00:00<00:00, 8558.81 it/sec]
INFO - 16:24:58:      9%|▉         | 89/1000 [00:00<00:00, 8556.27 it/sec]
INFO - 16:24:58:      9%|▉         | 90/1000 [00:00<00:00, 8559.61 it/sec]
INFO - 16:24:58:      9%|▉         | 91/1000 [00:00<00:00, 8562.49 it/sec]
INFO - 16:24:58:      9%|▉         | 92/1000 [00:00<00:00, 8567.03 it/sec]
INFO - 16:24:58:      9%|▉         | 93/1000 [00:00<00:00, 8559.24 it/sec]
INFO - 16:24:58:      9%|▉         | 94/1000 [00:00<00:00, 8561.29 it/sec]
INFO - 16:24:58:     10%|▉         | 95/1000 [00:00<00:00, 8566.06 it/sec]
INFO - 16:24:58:     10%|▉         | 96/1000 [00:00<00:00, 8544.55 it/sec]
INFO - 16:24:58:     10%|▉         | 97/1000 [00:00<00:00, 8545.60 it/sec]
INFO - 16:24:58:     10%|▉         | 98/1000 [00:00<00:00, 8552.15 it/sec]
INFO - 16:24:58:     10%|▉         | 99/1000 [00:00<00:00, 8556.28 it/sec]
INFO - 16:24:58:     10%|█         | 100/1000 [00:00<00:00, 8540.28 it/sec]
INFO - 16:24:58:     10%|█         | 101/1000 [00:00<00:00, 8508.06 it/sec]
INFO - 16:24:58:     10%|█         | 102/1000 [00:00<00:00, 8506.36 it/sec]
INFO - 16:24:58:     10%|█         | 103/1000 [00:00<00:00, 8514.26 it/sec]
INFO - 16:24:58:     10%|█         | 104/1000 [00:00<00:00, 8496.12 it/sec]
INFO - 16:24:58:     10%|█         | 105/1000 [00:00<00:00, 8499.34 it/sec]
INFO - 16:24:58:     11%|█         | 106/1000 [00:00<00:00, 8504.30 it/sec]
INFO - 16:24:58:     11%|█         | 107/1000 [00:00<00:00, 8509.97 it/sec]
INFO - 16:24:58:     11%|█         | 108/1000 [00:00<00:00, 8516.19 it/sec]
INFO - 16:24:58:     11%|█         | 109/1000 [00:00<00:00, 8523.90 it/sec]
INFO - 16:24:58:     11%|█         | 110/1000 [00:00<00:00, 8514.62 it/sec]
INFO - 16:24:58:     11%|█         | 111/1000 [00:00<00:00, 8516.43 it/sec]
INFO - 16:24:58:     11%|█         | 112/1000 [00:00<00:00, 8517.59 it/sec]
INFO - 16:24:58:     11%|█▏        | 113/1000 [00:00<00:00, 8519.49 it/sec]
INFO - 16:24:58:     11%|█▏        | 114/1000 [00:00<00:00, 8522.73 it/sec]
INFO - 16:24:58:     12%|█▏        | 115/1000 [00:00<00:00, 8527.72 it/sec]
INFO - 16:24:58:     12%|█▏        | 116/1000 [00:00<00:00, 8530.99 it/sec]
INFO - 16:24:58:     12%|█▏        | 117/1000 [00:00<00:00, 8534.05 it/sec]
INFO - 16:24:58:     12%|█▏        | 118/1000 [00:00<00:00, 8529.71 it/sec]
INFO - 16:24:58:     12%|█▏        | 119/1000 [00:00<00:00, 8531.71 it/sec]
INFO - 16:24:58:     12%|█▏        | 120/1000 [00:00<00:00, 8536.00 it/sec]
INFO - 16:24:58:     12%|█▏        | 121/1000 [00:00<00:00, 8541.65 it/sec]
INFO - 16:24:58:     12%|█▏        | 122/1000 [00:00<00:00, 8547.79 it/sec]
INFO - 16:24:58:     12%|█▏        | 123/1000 [00:00<00:00, 8548.46 it/sec]
INFO - 16:24:58:     12%|█▏        | 124/1000 [00:00<00:00, 8551.50 it/sec]
INFO - 16:24:58:     12%|█▎        | 125/1000 [00:00<00:00, 8554.92 it/sec]
INFO - 16:24:58:     13%|█▎        | 126/1000 [00:00<00:00, 8485.31 it/sec]
INFO - 16:24:58:     13%|█▎        | 127/1000 [00:00<00:00, 8480.22 it/sec]
INFO - 16:24:58:     13%|█▎        | 128/1000 [00:00<00:00, 8480.84 it/sec]
INFO - 16:24:58:     13%|█▎        | 129/1000 [00:00<00:00, 8483.57 it/sec]
INFO - 16:24:58:     13%|█▎        | 130/1000 [00:00<00:00, 8484.15 it/sec]
INFO - 16:24:58:     13%|█▎        | 131/1000 [00:00<00:00, 8480.93 it/sec]
INFO - 16:24:58:     13%|█▎        | 132/1000 [00:00<00:00, 8482.43 it/sec]
INFO - 16:24:58:     13%|█▎        | 133/1000 [00:00<00:00, 8483.26 it/sec]
INFO - 16:24:58:     13%|█▎        | 134/1000 [00:00<00:00, 8482.68 it/sec]
INFO - 16:24:58:     14%|█▎        | 135/1000 [00:00<00:00, 8473.34 it/sec]
INFO - 16:24:58:     14%|█▎        | 136/1000 [00:00<00:00, 8475.61 it/sec]
INFO - 16:24:58:     14%|█▎        | 137/1000 [00:00<00:00, 8481.35 it/sec]
INFO - 16:24:58:     14%|█▍        | 138/1000 [00:00<00:00, 8485.76 it/sec]
INFO - 16:24:58:     14%|█▍        | 139/1000 [00:00<00:00, 8490.86 it/sec]
INFO - 16:24:58:     14%|█▍        | 140/1000 [00:00<00:00, 8494.42 it/sec]
INFO - 16:24:58:     14%|█▍        | 141/1000 [00:00<00:00, 8499.52 it/sec]
INFO - 16:24:58:     14%|█▍        | 142/1000 [00:00<00:00, 8503.22 it/sec]
INFO - 16:24:58:     14%|█▍        | 143/1000 [00:00<00:00, 8500.72 it/sec]
INFO - 16:24:58:     14%|█▍        | 144/1000 [00:00<00:00, 8499.69 it/sec]
INFO - 16:24:58:     14%|█▍        | 145/1000 [00:00<00:00, 8505.34 it/sec]
INFO - 16:24:58:     15%|█▍        | 146/1000 [00:00<00:00, 8510.44 it/sec]
INFO - 16:24:58:     15%|█▍        | 147/1000 [00:00<00:00, 8516.77 it/sec]
INFO - 16:24:58:     15%|█▍        | 148/1000 [00:00<00:00, 8519.39 it/sec]
INFO - 16:24:58:     15%|█▍        | 149/1000 [00:00<00:00, 8524.66 it/sec]
INFO - 16:24:58:     15%|█▌        | 150/1000 [00:00<00:00, 8529.28 it/sec]
INFO - 16:24:58:     15%|█▌        | 151/1000 [00:00<00:00, 8533.28 it/sec]
INFO - 16:24:58:     15%|█▌        | 152/1000 [00:00<00:00, 8528.43 it/sec]
INFO - 16:24:58:     15%|█▌        | 153/1000 [00:00<00:00, 8526.82 it/sec]
INFO - 16:24:58:     15%|█▌        | 154/1000 [00:00<00:00, 8530.19 it/sec]
INFO - 16:24:58:     16%|█▌        | 155/1000 [00:00<00:00, 8534.97 it/sec]
INFO - 16:24:58:     16%|█▌        | 156/1000 [00:00<00:00, 8537.69 it/sec]
INFO - 16:24:58:     16%|█▌        | 157/1000 [00:00<00:00, 8538.38 it/sec]
INFO - 16:24:58:     16%|█▌        | 158/1000 [00:00<00:00, 8540.50 it/sec]
INFO - 16:24:58:     16%|█▌        | 159/1000 [00:00<00:00, 8544.56 it/sec]
INFO - 16:24:58:     16%|█▌        | 160/1000 [00:00<00:00, 8549.01 it/sec]
INFO - 16:24:58:     16%|█▌        | 161/1000 [00:00<00:00, 8546.15 it/sec]
INFO - 16:24:58:     16%|█▌        | 162/1000 [00:00<00:00, 8546.02 it/sec]
INFO - 16:24:58:     16%|█▋        | 163/1000 [00:00<00:00, 8549.21 it/sec]
INFO - 16:24:58:     16%|█▋        | 164/1000 [00:00<00:00, 8550.33 it/sec]
INFO - 16:24:58:     16%|█▋        | 165/1000 [00:00<00:00, 8552.82 it/sec]
INFO - 16:24:58:     17%|█▋        | 166/1000 [00:00<00:00, 8556.33 it/sec]
INFO - 16:24:58:     17%|█▋        | 167/1000 [00:00<00:00, 8556.25 it/sec]
INFO - 16:24:58:     17%|█▋        | 168/1000 [00:00<00:00, 8558.97 it/sec]
INFO - 16:24:58:     17%|█▋        | 169/1000 [00:00<00:00, 8563.01 it/sec]
INFO - 16:24:58:     17%|█▋        | 170/1000 [00:00<00:00, 8559.80 it/sec]
INFO - 16:24:58:     17%|█▋        | 171/1000 [00:00<00:00, 8560.42 it/sec]
INFO - 16:24:58:     17%|█▋        | 172/1000 [00:00<00:00, 8563.67 it/sec]
INFO - 16:24:58:     17%|█▋        | 173/1000 [00:00<00:00, 8565.46 it/sec]
INFO - 16:24:58:     17%|█▋        | 174/1000 [00:00<00:00, 8569.15 it/sec]
INFO - 16:24:58:     18%|█▊        | 175/1000 [00:00<00:00, 8573.30 it/sec]
INFO - 16:24:58:     18%|█▊        | 176/1000 [00:00<00:00, 8575.61 it/sec]
INFO - 16:24:58:     18%|█▊        | 177/1000 [00:00<00:00, 8577.80 it/sec]
INFO - 16:24:58:     18%|█▊        | 178/1000 [00:00<00:00, 8580.07 it/sec]
INFO - 16:24:58:     18%|█▊        | 179/1000 [00:00<00:00, 8574.17 it/sec]
INFO - 16:24:58:     18%|█▊        | 180/1000 [00:00<00:00, 8575.17 it/sec]
INFO - 16:24:58:     18%|█▊        | 181/1000 [00:00<00:00, 8578.18 it/sec]
INFO - 16:24:58:     18%|█▊        | 182/1000 [00:00<00:00, 8580.39 it/sec]
INFO - 16:24:58:     18%|█▊        | 183/1000 [00:00<00:00, 8581.34 it/sec]
INFO - 16:24:58:     18%|█▊        | 184/1000 [00:00<00:00, 8584.37 it/sec]
INFO - 16:24:58:     18%|█▊        | 185/1000 [00:00<00:00, 8587.09 it/sec]
INFO - 16:24:58:     19%|█▊        | 186/1000 [00:00<00:00, 8587.98 it/sec]
INFO - 16:24:58:     19%|█▊        | 187/1000 [00:00<00:00, 8588.96 it/sec]
INFO - 16:24:58:     19%|█▉        | 188/1000 [00:00<00:00, 8582.35 it/sec]
INFO - 16:24:58:     19%|█▉        | 189/1000 [00:00<00:00, 8582.79 it/sec]
INFO - 16:24:58:     19%|█▉        | 190/1000 [00:00<00:00, 8584.15 it/sec]
INFO - 16:24:58:     19%|█▉        | 191/1000 [00:00<00:00, 8586.78 it/sec]
INFO - 16:24:58:     19%|█▉        | 192/1000 [00:00<00:00, 8587.55 it/sec]
INFO - 16:24:58:     19%|█▉        | 193/1000 [00:00<00:00, 8588.68 it/sec]
INFO - 16:24:58:     19%|█▉        | 194/1000 [00:00<00:00, 8591.71 it/sec]
INFO - 16:24:58:     20%|█▉        | 195/1000 [00:00<00:00, 8594.89 it/sec]
INFO - 16:24:58:     20%|█▉        | 196/1000 [00:00<00:00, 8597.49 it/sec]
INFO - 16:24:58:     20%|█▉        | 197/1000 [00:00<00:00, 8590.69 it/sec]
INFO - 16:24:58:     20%|█▉        | 198/1000 [00:00<00:00, 8593.20 it/sec]
INFO - 16:24:58:     20%|█▉        | 199/1000 [00:00<00:00, 8594.35 it/sec]
INFO - 16:24:58:     20%|██        | 200/1000 [00:00<00:00, 8597.00 it/sec]
INFO - 16:24:58:     20%|██        | 201/1000 [00:00<00:00, 8600.41 it/sec]
INFO - 16:24:58:     20%|██        | 202/1000 [00:00<00:00, 8603.61 it/sec]
INFO - 16:24:58:     20%|██        | 203/1000 [00:00<00:00, 8605.92 it/sec]
INFO - 16:24:58:     20%|██        | 204/1000 [00:00<00:00, 8608.89 it/sec]
INFO - 16:24:58:     20%|██        | 205/1000 [00:00<00:00, 8607.19 it/sec]
INFO - 16:24:58:     21%|██        | 206/1000 [00:00<00:00, 8605.84 it/sec]
INFO - 16:24:58:     21%|██        | 207/1000 [00:00<00:00, 8608.26 it/sec]
INFO - 16:24:58:     21%|██        | 208/1000 [00:00<00:00, 8609.39 it/sec]
INFO - 16:24:58:     21%|██        | 209/1000 [00:00<00:00, 8611.77 it/sec]
INFO - 16:24:58:     21%|██        | 210/1000 [00:00<00:00, 8612.53 it/sec]
INFO - 16:24:58:     21%|██        | 211/1000 [00:00<00:00, 8614.63 it/sec]
INFO - 16:24:58:     21%|██        | 212/1000 [00:00<00:00, 8617.71 it/sec]
INFO - 16:24:58:     21%|██▏       | 213/1000 [00:00<00:00, 8621.09 it/sec]
INFO - 16:24:58:     21%|██▏       | 214/1000 [00:00<00:00, 8618.74 it/sec]
INFO - 16:24:58:     22%|██▏       | 215/1000 [00:00<00:00, 8618.30 it/sec]
INFO - 16:24:58:     22%|██▏       | 216/1000 [00:00<00:00, 8619.91 it/sec]
INFO - 16:24:58:     22%|██▏       | 217/1000 [00:00<00:00, 8622.65 it/sec]
INFO - 16:24:58:     22%|██▏       | 218/1000 [00:00<00:00, 8624.72 it/sec]
INFO - 16:24:58:     22%|██▏       | 219/1000 [00:00<00:00, 8628.15 it/sec]
INFO - 16:24:58:     22%|██▏       | 220/1000 [00:00<00:00, 8631.30 it/sec]
INFO - 16:24:58:     22%|██▏       | 221/1000 [00:00<00:00, 8633.55 it/sec]
INFO - 16:24:58:     22%|██▏       | 222/1000 [00:00<00:00, 8635.54 it/sec]
INFO - 16:24:58:     22%|██▏       | 223/1000 [00:00<00:00, 8632.88 it/sec]
INFO - 16:24:58:     22%|██▏       | 224/1000 [00:00<00:00, 8631.37 it/sec]
INFO - 16:24:58:     22%|██▎       | 225/1000 [00:00<00:00, 8632.94 it/sec]
INFO - 16:24:58:     23%|██▎       | 226/1000 [00:00<00:00, 8633.16 it/sec]
INFO - 16:24:58:     23%|██▎       | 227/1000 [00:00<00:00, 8635.42 it/sec]
INFO - 16:24:58:     23%|██▎       | 228/1000 [00:00<00:00, 8633.84 it/sec]
INFO - 16:24:58:     23%|██▎       | 229/1000 [00:00<00:00, 8634.44 it/sec]
INFO - 16:24:58:     23%|██▎       | 230/1000 [00:00<00:00, 8632.80 it/sec]
INFO - 16:24:58:     23%|██▎       | 231/1000 [00:00<00:00, 8632.64 it/sec]
INFO - 16:24:58:     23%|██▎       | 232/1000 [00:00<00:00, 8625.97 it/sec]
INFO - 16:24:58:     23%|██▎       | 233/1000 [00:00<00:00, 8625.84 it/sec]
INFO - 16:24:58:     23%|██▎       | 234/1000 [00:00<00:00, 8627.22 it/sec]
INFO - 16:24:58:     24%|██▎       | 235/1000 [00:00<00:00, 8628.44 it/sec]
INFO - 16:24:58:     24%|██▎       | 236/1000 [00:00<00:00, 8629.35 it/sec]
INFO - 16:24:58:     24%|██▎       | 237/1000 [00:00<00:00, 8630.85 it/sec]
INFO - 16:24:58:     24%|██▍       | 238/1000 [00:00<00:00, 8631.82 it/sec]
INFO - 16:24:58:     24%|██▍       | 239/1000 [00:00<00:00, 8633.53 it/sec]
INFO - 16:24:58:     24%|██▍       | 240/1000 [00:00<00:00, 8636.10 it/sec]
INFO - 16:24:58:     24%|██▍       | 241/1000 [00:00<00:00, 8630.33 it/sec]
INFO - 16:24:58:     24%|██▍       | 242/1000 [00:00<00:00, 8631.58 it/sec]
INFO - 16:24:58:     24%|██▍       | 243/1000 [00:00<00:00, 8632.45 it/sec]
INFO - 16:24:58:     24%|██▍       | 244/1000 [00:00<00:00, 8634.84 it/sec]
INFO - 16:24:58:     24%|██▍       | 245/1000 [00:00<00:00, 8636.42 it/sec]
INFO - 16:24:58:     25%|██▍       | 246/1000 [00:00<00:00, 8638.28 it/sec]
INFO - 16:24:58:     25%|██▍       | 247/1000 [00:00<00:00, 8640.04 it/sec]
INFO - 16:24:58:     25%|██▍       | 248/1000 [00:00<00:00, 8641.73 it/sec]
INFO - 16:24:58:     25%|██▍       | 249/1000 [00:00<00:00, 8639.32 it/sec]
INFO - 16:24:58:     25%|██▌       | 250/1000 [00:00<00:00, 8638.08 it/sec]
INFO - 16:24:58:     25%|██▌       | 251/1000 [00:00<00:00, 8639.04 it/sec]
INFO - 16:24:58:     25%|██▌       | 252/1000 [00:00<00:00, 8640.48 it/sec]
INFO - 16:24:58:     25%|██▌       | 253/1000 [00:00<00:00, 8642.06 it/sec]
INFO - 16:24:58:     25%|██▌       | 254/1000 [00:00<00:00, 8643.84 it/sec]
INFO - 16:24:58:     26%|██▌       | 255/1000 [00:00<00:00, 8645.46 it/sec]
INFO - 16:24:58:     26%|██▌       | 256/1000 [00:00<00:00, 8647.21 it/sec]
INFO - 16:24:58:     26%|██▌       | 257/1000 [00:00<00:00, 8649.09 it/sec]
INFO - 16:24:58:     26%|██▌       | 258/1000 [00:00<00:00, 8645.29 it/sec]
INFO - 16:24:58:     26%|██▌       | 259/1000 [00:00<00:00, 8644.81 it/sec]
INFO - 16:24:58:     26%|██▌       | 260/1000 [00:00<00:00, 8646.40 it/sec]
INFO - 16:24:58:     26%|██▌       | 261/1000 [00:00<00:00, 8647.02 it/sec]
INFO - 16:24:58:     26%|██▌       | 262/1000 [00:00<00:00, 8648.87 it/sec]
INFO - 16:24:58:     26%|██▋       | 263/1000 [00:00<00:00, 8640.26 it/sec]
INFO - 16:24:58:     26%|██▋       | 264/1000 [00:00<00:00, 8641.50 it/sec]
INFO - 16:24:58:     26%|██▋       | 265/1000 [00:00<00:00, 8643.14 it/sec]
INFO - 16:24:58:     27%|██▋       | 266/1000 [00:00<00:00, 8644.63 it/sec]
INFO - 16:24:58:     27%|██▋       | 267/1000 [00:00<00:00, 8639.58 it/sec]
INFO - 16:24:58:     27%|██▋       | 268/1000 [00:00<00:00, 8640.40 it/sec]
INFO - 16:24:58:     27%|██▋       | 269/1000 [00:00<00:00, 8641.89 it/sec]
INFO - 16:24:58:     27%|██▋       | 270/1000 [00:00<00:00, 8605.92 it/sec]
INFO - 16:24:58:     27%|██▋       | 271/1000 [00:00<00:00, 8605.69 it/sec]
INFO - 16:24:58:     27%|██▋       | 272/1000 [00:00<00:00, 8603.96 it/sec]
INFO - 16:24:58:     27%|██▋       | 273/1000 [00:00<00:00, 8605.03 it/sec]
INFO - 16:24:58:     27%|██▋       | 274/1000 [00:00<00:00, 8601.90 it/sec]
INFO - 16:24:58:     28%|██▊       | 275/1000 [00:00<00:00, 8601.23 it/sec]
INFO - 16:24:58:     28%|██▊       | 276/1000 [00:00<00:00, 8601.34 it/sec]
INFO - 16:24:58:     28%|██▊       | 277/1000 [00:00<00:00, 8602.33 it/sec]
INFO - 16:24:58:     28%|██▊       | 278/1000 [00:00<00:00, 8603.51 it/sec]
INFO - 16:24:58:     28%|██▊       | 279/1000 [00:00<00:00, 8604.87 it/sec]
INFO - 16:24:58:     28%|██▊       | 280/1000 [00:00<00:00, 8606.35 it/sec]
INFO - 16:24:58:     28%|██▊       | 281/1000 [00:00<00:00, 8606.56 it/sec]
INFO - 16:24:58:     28%|██▊       | 282/1000 [00:00<00:00, 8608.71 it/sec]
INFO - 16:24:58:     28%|██▊       | 283/1000 [00:00<00:00, 8604.85 it/sec]
INFO - 16:24:58:     28%|██▊       | 284/1000 [00:00<00:00, 8606.00 it/sec]
INFO - 16:24:58:     28%|██▊       | 285/1000 [00:00<00:00, 8607.39 it/sec]
INFO - 16:24:58:     29%|██▊       | 286/1000 [00:00<00:00, 8609.26 it/sec]
INFO - 16:24:58:     29%|██▊       | 287/1000 [00:00<00:00, 8610.69 it/sec]
INFO - 16:24:58:     29%|██▉       | 288/1000 [00:00<00:00, 8612.60 it/sec]
INFO - 16:24:58:     29%|██▉       | 289/1000 [00:00<00:00, 8614.74 it/sec]
INFO - 16:24:58:     29%|██▉       | 290/1000 [00:00<00:00, 8616.32 it/sec]
INFO - 16:24:58:     29%|██▉       | 291/1000 [00:00<00:00, 8618.19 it/sec]
INFO - 16:24:58:     29%|██▉       | 292/1000 [00:00<00:00, 8614.59 it/sec]
INFO - 16:24:58:     29%|██▉       | 293/1000 [00:00<00:00, 8615.55 it/sec]
INFO - 16:24:58:     29%|██▉       | 294/1000 [00:00<00:00, 8617.23 it/sec]
INFO - 16:24:58:     30%|██▉       | 295/1000 [00:00<00:00, 8619.13 it/sec]
INFO - 16:24:58:     30%|██▉       | 296/1000 [00:00<00:00, 8620.73 it/sec]
INFO - 16:24:58:     30%|██▉       | 297/1000 [00:00<00:00, 8618.73 it/sec]
INFO - 16:24:58:     30%|██▉       | 298/1000 [00:00<00:00, 8620.32 it/sec]
INFO - 16:24:58:     30%|██▉       | 299/1000 [00:00<00:00, 8622.19 it/sec]
INFO - 16:24:58:     30%|███       | 300/1000 [00:00<00:00, 8624.04 it/sec]
INFO - 16:24:58:     30%|███       | 301/1000 [00:00<00:00, 8619.12 it/sec]
INFO - 16:24:58:     30%|███       | 302/1000 [00:00<00:00, 8619.68 it/sec]
INFO - 16:24:58:     30%|███       | 303/1000 [00:00<00:00, 8619.66 it/sec]
INFO - 16:24:58:     30%|███       | 304/1000 [00:00<00:00, 8619.93 it/sec]
INFO - 16:24:58:     30%|███       | 305/1000 [00:00<00:00, 8621.24 it/sec]
INFO - 16:24:58:     31%|███       | 306/1000 [00:00<00:00, 8622.95 it/sec]
INFO - 16:24:58:     31%|███       | 307/1000 [00:00<00:00, 8624.42 it/sec]
INFO - 16:24:58:     31%|███       | 308/1000 [00:00<00:00, 8626.45 it/sec]
INFO - 16:24:58:     31%|███       | 309/1000 [00:00<00:00, 8624.23 it/sec]
INFO - 16:24:58:     31%|███       | 310/1000 [00:00<00:00, 8623.22 it/sec]
INFO - 16:24:58:     31%|███       | 311/1000 [00:00<00:00, 8623.98 it/sec]
INFO - 16:24:58:     31%|███       | 312/1000 [00:00<00:00, 8624.17 it/sec]
INFO - 16:24:58:     31%|███▏      | 313/1000 [00:00<00:00, 8625.44 it/sec]
INFO - 16:24:58:     31%|███▏      | 314/1000 [00:00<00:00, 8627.37 it/sec]
INFO - 16:24:58:     32%|███▏      | 315/1000 [00:00<00:00, 8629.18 it/sec]
INFO - 16:24:58:     32%|███▏      | 316/1000 [00:00<00:00, 8630.93 it/sec]
INFO - 16:24:58:     32%|███▏      | 317/1000 [00:00<00:00, 8633.00 it/sec]
INFO - 16:24:58:     32%|███▏      | 318/1000 [00:00<00:00, 8630.65 it/sec]
INFO - 16:24:58:     32%|███▏      | 319/1000 [00:00<00:00, 8630.48 it/sec]
INFO - 16:24:58:     32%|███▏      | 320/1000 [00:00<00:00, 8631.42 it/sec]
INFO - 16:24:58:     32%|███▏      | 321/1000 [00:00<00:00, 8632.52 it/sec]
INFO - 16:24:58:     32%|███▏      | 322/1000 [00:00<00:00, 8634.12 it/sec]
INFO - 16:24:58:     32%|███▏      | 323/1000 [00:00<00:00, 8634.55 it/sec]
INFO - 16:24:58:     32%|███▏      | 324/1000 [00:00<00:00, 8635.41 it/sec]
INFO - 16:24:58:     32%|███▎      | 325/1000 [00:00<00:00, 8636.60 it/sec]
INFO - 16:24:58:     33%|███▎      | 326/1000 [00:00<00:00, 8637.45 it/sec]
INFO - 16:24:58:     33%|███▎      | 327/1000 [00:00<00:00, 8633.68 it/sec]
INFO - 16:24:58:     33%|███▎      | 328/1000 [00:00<00:00, 8632.96 it/sec]
INFO - 16:24:58:     33%|███▎      | 329/1000 [00:00<00:00, 8634.31 it/sec]
INFO - 16:24:58:     33%|███▎      | 330/1000 [00:00<00:00, 8634.24 it/sec]
INFO - 16:24:58:     33%|███▎      | 331/1000 [00:00<00:00, 8635.14 it/sec]
INFO - 16:24:58:     33%|███▎      | 332/1000 [00:00<00:00, 8632.72 it/sec]
INFO - 16:24:58:     33%|███▎      | 333/1000 [00:00<00:00, 8633.24 it/sec]
INFO - 16:24:58:     33%|███▎      | 334/1000 [00:00<00:00, 8634.35 it/sec]
INFO - 16:24:58:     34%|███▎      | 335/1000 [00:00<00:00, 8635.03 it/sec]
INFO - 16:24:58:     34%|███▎      | 336/1000 [00:00<00:00, 8631.31 it/sec]
INFO - 16:24:58:     34%|███▎      | 337/1000 [00:00<00:00, 8631.26 it/sec]
INFO - 16:24:58:     34%|███▍      | 338/1000 [00:00<00:00, 8630.89 it/sec]
INFO - 16:24:58:     34%|███▍      | 339/1000 [00:00<00:00, 8631.62 it/sec]
INFO - 16:24:58:     34%|███▍      | 340/1000 [00:00<00:00, 8633.39 it/sec]
INFO - 16:24:58:     34%|███▍      | 341/1000 [00:00<00:00, 8634.89 it/sec]
INFO - 16:24:58:     34%|███▍      | 342/1000 [00:00<00:00, 8635.03 it/sec]
INFO - 16:24:58:     34%|███▍      | 343/1000 [00:00<00:00, 8636.52 it/sec]
INFO - 16:24:58:     34%|███▍      | 344/1000 [00:00<00:00, 8634.23 it/sec]
INFO - 16:24:58:     34%|███▍      | 345/1000 [00:00<00:00, 8633.24 it/sec]
INFO - 16:24:58:     35%|███▍      | 346/1000 [00:00<00:00, 8633.64 it/sec]
INFO - 16:24:58:     35%|███▍      | 347/1000 [00:00<00:00, 8634.09 it/sec]
INFO - 16:24:58:     35%|███▍      | 348/1000 [00:00<00:00, 8635.00 it/sec]
INFO - 16:24:58:     35%|███▍      | 349/1000 [00:00<00:00, 8635.30 it/sec]
INFO - 16:24:58:     35%|███▌      | 350/1000 [00:00<00:00, 8636.09 it/sec]
INFO - 16:24:58:     35%|███▌      | 351/1000 [00:00<00:00, 8636.58 it/sec]
INFO - 16:24:58:     35%|███▌      | 352/1000 [00:00<00:00, 8637.42 it/sec]
INFO - 16:24:58:     35%|███▌      | 353/1000 [00:00<00:00, 8633.78 it/sec]
INFO - 16:24:58:     35%|███▌      | 354/1000 [00:00<00:00, 8634.42 it/sec]
INFO - 16:24:58:     36%|███▌      | 355/1000 [00:00<00:00, 8635.51 it/sec]
INFO - 16:24:58:     36%|███▌      | 356/1000 [00:00<00:00, 8636.25 it/sec]
INFO - 16:24:58:     36%|███▌      | 357/1000 [00:00<00:00, 8637.77 it/sec]
INFO - 16:24:58:     36%|███▌      | 358/1000 [00:00<00:00, 8639.49 it/sec]
INFO - 16:24:58:     36%|███▌      | 359/1000 [00:00<00:00, 8640.41 it/sec]
INFO - 16:24:58:     36%|███▌      | 360/1000 [00:00<00:00, 8641.37 it/sec]
INFO - 16:24:58:     36%|███▌      | 361/1000 [00:00<00:00, 8642.52 it/sec]
INFO - 16:24:58:     36%|███▌      | 362/1000 [00:00<00:00, 8638.95 it/sec]
INFO - 16:24:58:     36%|███▋      | 363/1000 [00:00<00:00, 8639.95 it/sec]
INFO - 16:24:58:     36%|███▋      | 364/1000 [00:00<00:00, 8641.39 it/sec]
INFO - 16:24:58:     36%|███▋      | 365/1000 [00:00<00:00, 8643.17 it/sec]
INFO - 16:24:58:     37%|███▋      | 366/1000 [00:00<00:00, 8642.94 it/sec]
INFO - 16:24:58:     37%|███▋      | 367/1000 [00:00<00:00, 8643.48 it/sec]
INFO - 16:24:58:     37%|███▋      | 368/1000 [00:00<00:00, 8644.56 it/sec]
INFO - 16:24:58:     37%|███▋      | 369/1000 [00:00<00:00, 8645.97 it/sec]
INFO - 16:24:58:     37%|███▋      | 370/1000 [00:00<00:00, 8647.62 it/sec]
INFO - 16:24:58:     37%|███▋      | 371/1000 [00:00<00:00, 8644.30 it/sec]
INFO - 16:24:58:     37%|███▋      | 372/1000 [00:00<00:00, 8645.32 it/sec]
INFO - 16:24:58:     37%|███▋      | 373/1000 [00:00<00:00, 8644.85 it/sec]
INFO - 16:24:58:     37%|███▋      | 374/1000 [00:00<00:00, 8644.09 it/sec]
INFO - 16:24:58:     38%|███▊      | 375/1000 [00:00<00:00, 8644.48 it/sec]
INFO - 16:24:58:     38%|███▊      | 376/1000 [00:00<00:00, 8643.78 it/sec]
INFO - 16:24:58:     38%|███▊      | 377/1000 [00:00<00:00, 8645.07 it/sec]
INFO - 16:24:58:     38%|███▊      | 378/1000 [00:00<00:00, 8646.73 it/sec]
INFO - 16:24:58:     38%|███▊      | 379/1000 [00:00<00:00, 8645.56 it/sec]
INFO - 16:24:58:     38%|███▊      | 380/1000 [00:00<00:00, 8645.52 it/sec]
INFO - 16:24:58:     38%|███▊      | 381/1000 [00:00<00:00, 8646.22 it/sec]
INFO - 16:24:58:     38%|███▊      | 382/1000 [00:00<00:00, 8646.84 it/sec]
INFO - 16:24:58:     38%|███▊      | 383/1000 [00:00<00:00, 8647.40 it/sec]
INFO - 16:24:58:     38%|███▊      | 384/1000 [00:00<00:00, 8647.59 it/sec]
INFO - 16:24:58:     38%|███▊      | 385/1000 [00:00<00:00, 8648.61 it/sec]
INFO - 16:24:58:     39%|███▊      | 386/1000 [00:00<00:00, 8648.93 it/sec]
INFO - 16:24:58:     39%|███▊      | 387/1000 [00:00<00:00, 8649.94 it/sec]
INFO - 16:24:58:     39%|███▉      | 388/1000 [00:00<00:00, 8647.96 it/sec]
INFO - 16:24:58:     39%|███▉      | 389/1000 [00:00<00:00, 8648.42 it/sec]
INFO - 16:24:58:     39%|███▉      | 390/1000 [00:00<00:00, 8649.83 it/sec]
INFO - 16:24:58:     39%|███▉      | 391/1000 [00:00<00:00, 8651.11 it/sec]
INFO - 16:24:58:     39%|███▉      | 392/1000 [00:00<00:00, 8652.01 it/sec]
INFO - 16:24:58:     39%|███▉      | 393/1000 [00:00<00:00, 8653.27 it/sec]
INFO - 16:24:58:     39%|███▉      | 394/1000 [00:00<00:00, 8654.25 it/sec]
INFO - 16:24:58:     40%|███▉      | 395/1000 [00:00<00:00, 8655.78 it/sec]
INFO - 16:24:58:     40%|███▉      | 396/1000 [00:00<00:00, 8657.02 it/sec]
INFO - 16:24:58:     40%|███▉      | 397/1000 [00:00<00:00, 8654.70 it/sec]
INFO - 16:24:58:     40%|███▉      | 398/1000 [00:00<00:00, 8654.86 it/sec]
INFO - 16:24:58:     40%|███▉      | 399/1000 [00:00<00:00, 8655.52 it/sec]
INFO - 16:24:58:     40%|████      | 400/1000 [00:00<00:00, 8656.62 it/sec]
INFO - 16:24:58:     40%|████      | 401/1000 [00:00<00:00, 8658.07 it/sec]
INFO - 16:24:58:     40%|████      | 402/1000 [00:00<00:00, 8658.04 it/sec]
INFO - 16:24:58:     40%|████      | 403/1000 [00:00<00:00, 8659.17 it/sec]
INFO - 16:24:58:     40%|████      | 404/1000 [00:00<00:00, 8660.78 it/sec]
INFO - 16:24:58:     40%|████      | 405/1000 [00:00<00:00, 8662.38 it/sec]
INFO - 16:24:58:     41%|████      | 406/1000 [00:00<00:00, 8659.84 it/sec]
INFO - 16:24:58:     41%|████      | 407/1000 [00:00<00:00, 8660.55 it/sec]
INFO - 16:24:58:     41%|████      | 408/1000 [00:00<00:00, 8661.40 it/sec]
INFO - 16:24:58:     41%|████      | 409/1000 [00:00<00:00, 8662.77 it/sec]
INFO - 16:24:58:     41%|████      | 410/1000 [00:00<00:00, 8663.78 it/sec]
INFO - 16:24:58:     41%|████      | 411/1000 [00:00<00:00, 8665.26 it/sec]
INFO - 16:24:58:     41%|████      | 412/1000 [00:00<00:00, 8666.40 it/sec]
INFO - 16:24:58:     41%|████▏     | 413/1000 [00:00<00:00, 8662.10 it/sec]
INFO - 16:24:58:     41%|████▏     | 414/1000 [00:00<00:00, 8662.46 it/sec]
INFO - 16:24:58:     42%|████▏     | 415/1000 [00:00<00:00, 8658.85 it/sec]
INFO - 16:24:58:     42%|████▏     | 416/1000 [00:00<00:00, 8658.78 it/sec]
INFO - 16:24:58:     42%|████▏     | 417/1000 [00:00<00:00, 8659.91 it/sec]
INFO - 16:24:58:     42%|████▏     | 418/1000 [00:00<00:00, 8638.55 it/sec]
INFO - 16:24:58:     42%|████▏     | 419/1000 [00:00<00:00, 8638.57 it/sec]
INFO - 16:24:58:     42%|████▏     | 420/1000 [00:00<00:00, 8639.65 it/sec]
INFO - 16:24:58:     42%|████▏     | 421/1000 [00:00<00:00, 8640.64 it/sec]
INFO - 16:24:58:     42%|████▏     | 422/1000 [00:00<00:00, 8638.64 it/sec]
INFO - 16:24:58:     42%|████▏     | 423/1000 [00:00<00:00, 8638.15 it/sec]
INFO - 16:24:58:     42%|████▏     | 424/1000 [00:00<00:00, 8638.39 it/sec]
INFO - 16:24:58:     42%|████▎     | 425/1000 [00:00<00:00, 8639.00 it/sec]
INFO - 16:24:58:     43%|████▎     | 426/1000 [00:00<00:00, 8639.06 it/sec]
INFO - 16:24:58:     43%|████▎     | 427/1000 [00:00<00:00, 8639.91 it/sec]
INFO - 16:24:58:     43%|████▎     | 428/1000 [00:00<00:00, 8640.89 it/sec]
INFO - 16:24:58:     43%|████▎     | 429/1000 [00:00<00:00, 8640.99 it/sec]
INFO - 16:24:58:     43%|████▎     | 430/1000 [00:00<00:00, 8641.71 it/sec]
INFO - 16:24:58:     43%|████▎     | 431/1000 [00:00<00:00, 8638.87 it/sec]
INFO - 16:24:58:     43%|████▎     | 432/1000 [00:00<00:00, 8639.43 it/sec]
INFO - 16:24:58:     43%|████▎     | 433/1000 [00:00<00:00, 8640.52 it/sec]
INFO - 16:24:58:     43%|████▎     | 434/1000 [00:00<00:00, 8641.93 it/sec]
INFO - 16:24:58:     44%|████▎     | 435/1000 [00:00<00:00, 8643.22 it/sec]
INFO - 16:24:58:     44%|████▎     | 436/1000 [00:00<00:00, 8641.47 it/sec]
INFO - 16:24:58:     44%|████▎     | 437/1000 [00:00<00:00, 8641.85 it/sec]
INFO - 16:24:58:     44%|████▍     | 438/1000 [00:00<00:00, 8642.80 it/sec]
INFO - 16:24:58:     44%|████▍     | 439/1000 [00:00<00:00, 8643.75 it/sec]
INFO - 16:24:58:     44%|████▍     | 440/1000 [00:00<00:00, 8641.00 it/sec]
INFO - 16:24:58:     44%|████▍     | 441/1000 [00:00<00:00, 8641.63 it/sec]
INFO - 16:24:58:     44%|████▍     | 442/1000 [00:00<00:00, 8641.68 it/sec]
INFO - 16:24:58:     44%|████▍     | 443/1000 [00:00<00:00, 8642.26 it/sec]
INFO - 16:24:58:     44%|████▍     | 444/1000 [00:00<00:00, 8643.03 it/sec]
INFO - 16:24:58:     44%|████▍     | 445/1000 [00:00<00:00, 8643.80 it/sec]
INFO - 16:24:58:     45%|████▍     | 446/1000 [00:00<00:00, 8644.17 it/sec]
INFO - 16:24:58:     45%|████▍     | 447/1000 [00:00<00:00, 8644.94 it/sec]
INFO - 16:24:58:     45%|████▍     | 448/1000 [00:00<00:00, 8643.51 it/sec]
INFO - 16:24:58:     45%|████▍     | 449/1000 [00:00<00:00, 8642.97 it/sec]
INFO - 16:24:58:     45%|████▌     | 450/1000 [00:00<00:00, 8643.93 it/sec]
INFO - 16:24:58:     45%|████▌     | 451/1000 [00:00<00:00, 8644.97 it/sec]
INFO - 16:24:58:     45%|████▌     | 452/1000 [00:00<00:00, 8646.08 it/sec]
INFO - 16:24:58:     45%|████▌     | 453/1000 [00:00<00:00, 8646.99 it/sec]
INFO - 16:24:58:     45%|████▌     | 454/1000 [00:00<00:00, 8647.62 it/sec]
INFO - 16:24:58:     46%|████▌     | 455/1000 [00:00<00:00, 8648.64 it/sec]
INFO - 16:24:58:     46%|████▌     | 456/1000 [00:00<00:00, 8649.57 it/sec]
INFO - 16:24:58:     46%|████▌     | 457/1000 [00:00<00:00, 8647.66 it/sec]
INFO - 16:24:58:     46%|████▌     | 458/1000 [00:00<00:00, 8647.50 it/sec]
INFO - 16:24:58:     46%|████▌     | 459/1000 [00:00<00:00, 8648.52 it/sec]
INFO - 16:24:58:     46%|████▌     | 460/1000 [00:00<00:00, 8649.48 it/sec]
INFO - 16:24:58:     46%|████▌     | 461/1000 [00:00<00:00, 8650.29 it/sec]
INFO - 16:24:58:     46%|████▌     | 462/1000 [00:00<00:00, 8651.22 it/sec]
INFO - 16:24:58:     46%|████▋     | 463/1000 [00:00<00:00, 8651.98 it/sec]
INFO - 16:24:58:     46%|████▋     | 464/1000 [00:00<00:00, 8652.43 it/sec]
INFO - 16:24:58:     46%|████▋     | 465/1000 [00:00<00:00, 8652.81 it/sec]
INFO - 16:24:58:     47%|████▋     | 466/1000 [00:00<00:00, 8650.54 it/sec]
INFO - 16:24:58:     47%|████▋     | 467/1000 [00:00<00:00, 8650.23 it/sec]
INFO - 16:24:58:     47%|████▋     | 468/1000 [00:00<00:00, 8650.64 it/sec]
INFO - 16:24:58:     47%|████▋     | 469/1000 [00:00<00:00, 8650.79 it/sec]
INFO - 16:24:58:     47%|████▋     | 470/1000 [00:00<00:00, 8650.74 it/sec]
INFO - 16:24:58:     47%|████▋     | 471/1000 [00:00<00:00, 8649.11 it/sec]
INFO - 16:24:58:     47%|████▋     | 472/1000 [00:00<00:00, 8649.49 it/sec]
INFO - 16:24:58:     47%|████▋     | 473/1000 [00:00<00:00, 8650.12 it/sec]
INFO - 16:24:58:     47%|████▋     | 474/1000 [00:00<00:00, 8650.95 it/sec]
INFO - 16:24:58:     48%|████▊     | 475/1000 [00:00<00:00, 8647.82 it/sec]
INFO - 16:24:58:     48%|████▊     | 476/1000 [00:00<00:00, 8648.39 it/sec]
INFO - 16:24:58:     48%|████▊     | 477/1000 [00:00<00:00, 8647.86 it/sec]
INFO - 16:24:58:     48%|████▊     | 478/1000 [00:00<00:00, 8648.53 it/sec]
INFO - 16:24:58:     48%|████▊     | 479/1000 [00:00<00:00, 8649.54 it/sec]
INFO - 16:24:58:     48%|████▊     | 480/1000 [00:00<00:00, 8650.65 it/sec]
INFO - 16:24:58:     48%|████▊     | 481/1000 [00:00<00:00, 8651.35 it/sec]
INFO - 16:24:58:     48%|████▊     | 482/1000 [00:00<00:00, 8651.64 it/sec]
INFO - 16:24:58:     48%|████▊     | 483/1000 [00:00<00:00, 8648.75 it/sec]
INFO - 16:24:58:     48%|████▊     | 484/1000 [00:00<00:00, 8647.42 it/sec]
INFO - 16:24:58:     48%|████▊     | 485/1000 [00:00<00:00, 8647.76 it/sec]
INFO - 16:24:58:     49%|████▊     | 486/1000 [00:00<00:00, 8648.42 it/sec]
INFO - 16:24:58:     49%|████▊     | 487/1000 [00:00<00:00, 8648.93 it/sec]
INFO - 16:24:58:     49%|████▉     | 488/1000 [00:00<00:00, 8648.85 it/sec]
INFO - 16:24:58:     49%|████▉     | 489/1000 [00:00<00:00, 8649.40 it/sec]
INFO - 16:24:58:     49%|████▉     | 490/1000 [00:00<00:00, 8650.12 it/sec]
INFO - 16:24:58:     49%|████▉     | 491/1000 [00:00<00:00, 8650.52 it/sec]
INFO - 16:24:58:     49%|████▉     | 492/1000 [00:00<00:00, 8647.98 it/sec]
INFO - 16:24:58:     49%|████▉     | 493/1000 [00:00<00:00, 8648.16 it/sec]
INFO - 16:24:58:     49%|████▉     | 494/1000 [00:00<00:00, 8648.34 it/sec]
INFO - 16:24:58:     50%|████▉     | 495/1000 [00:00<00:00, 8647.62 it/sec]
INFO - 16:24:58:     50%|████▉     | 496/1000 [00:00<00:00, 8647.94 it/sec]
INFO - 16:24:58:     50%|████▉     | 497/1000 [00:00<00:00, 8648.55 it/sec]
INFO - 16:24:58:     50%|████▉     | 498/1000 [00:00<00:00, 8648.94 it/sec]
INFO - 16:24:58:     50%|████▉     | 499/1000 [00:00<00:00, 8649.51 it/sec]
INFO - 16:24:58:     50%|█████     | 500/1000 [00:00<00:00, 8647.87 it/sec]
INFO - 16:24:58:     50%|█████     | 501/1000 [00:00<00:00, 8646.59 it/sec]
INFO - 16:24:58:     50%|█████     | 502/1000 [00:00<00:00, 8646.88 it/sec]
INFO - 16:24:58:     50%|█████     | 503/1000 [00:00<00:00, 8647.13 it/sec]
INFO - 16:24:58:     50%|█████     | 504/1000 [00:00<00:00, 8647.59 it/sec]
INFO - 16:24:58:     50%|█████     | 505/1000 [00:00<00:00, 8646.35 it/sec]
INFO - 16:24:58:     51%|█████     | 506/1000 [00:00<00:00, 8646.96 it/sec]
INFO - 16:24:58:     51%|█████     | 507/1000 [00:00<00:00, 8647.17 it/sec]
INFO - 16:24:58:     51%|█████     | 508/1000 [00:00<00:00, 8647.66 it/sec]
INFO - 16:24:58:     51%|█████     | 509/1000 [00:00<00:00, 8645.67 it/sec]
INFO - 16:24:58:     51%|█████     | 510/1000 [00:00<00:00, 8645.74 it/sec]
INFO - 16:24:58:     51%|█████     | 511/1000 [00:00<00:00, 8646.51 it/sec]
INFO - 16:24:58:     51%|█████     | 512/1000 [00:00<00:00, 8647.42 it/sec]
INFO - 16:24:58:     51%|█████▏    | 513/1000 [00:00<00:00, 8648.05 it/sec]
INFO - 16:24:58:     51%|█████▏    | 514/1000 [00:00<00:00, 8648.81 it/sec]
INFO - 16:24:58:     52%|█████▏    | 515/1000 [00:00<00:00, 8648.95 it/sec]
INFO - 16:24:58:     52%|█████▏    | 516/1000 [00:00<00:00, 8649.22 it/sec]
INFO - 16:24:58:     52%|█████▏    | 517/1000 [00:00<00:00, 8642.78 it/sec]
INFO - 16:24:58:     52%|█████▏    | 518/1000 [00:00<00:00, 8641.89 it/sec]
INFO - 16:24:58:     52%|█████▏    | 519/1000 [00:00<00:00, 8642.42 it/sec]
INFO - 16:24:58:     52%|█████▏    | 520/1000 [00:00<00:00, 8642.84 it/sec]
INFO - 16:24:58:     52%|█████▏    | 521/1000 [00:00<00:00, 8643.60 it/sec]
INFO - 16:24:58:     52%|█████▏    | 522/1000 [00:00<00:00, 8644.60 it/sec]
INFO - 16:24:58:     52%|█████▏    | 523/1000 [00:00<00:00, 8644.64 it/sec]
INFO - 16:24:58:     52%|█████▏    | 524/1000 [00:00<00:00, 8644.65 it/sec]
INFO - 16:24:58:     52%|█████▎    | 525/1000 [00:00<00:00, 8644.82 it/sec]
INFO - 16:24:58:     53%|█████▎    | 526/1000 [00:00<00:00, 8642.73 it/sec]
INFO - 16:24:58:     53%|█████▎    | 527/1000 [00:00<00:00, 8642.64 it/sec]
INFO - 16:24:58:     53%|█████▎    | 528/1000 [00:00<00:00, 8643.49 it/sec]
INFO - 16:24:58:     53%|█████▎    | 529/1000 [00:00<00:00, 8643.57 it/sec]
INFO - 16:24:58:     53%|█████▎    | 530/1000 [00:00<00:00, 8643.78 it/sec]
INFO - 16:24:58:     53%|█████▎    | 531/1000 [00:00<00:00, 8643.59 it/sec]
INFO - 16:24:58:     53%|█████▎    | 532/1000 [00:00<00:00, 8644.40 it/sec]
INFO - 16:24:58:     53%|█████▎    | 533/1000 [00:00<00:00, 8644.47 it/sec]
INFO - 16:24:58:     53%|█████▎    | 534/1000 [00:00<00:00, 8645.25 it/sec]
INFO - 16:24:58:     54%|█████▎    | 535/1000 [00:00<00:00, 8642.85 it/sec]
INFO - 16:24:58:     54%|█████▎    | 536/1000 [00:00<00:00, 8642.50 it/sec]
INFO - 16:24:58:     54%|█████▎    | 537/1000 [00:00<00:00, 8643.10 it/sec]
INFO - 16:24:58:     54%|█████▍    | 538/1000 [00:00<00:00, 8643.78 it/sec]
INFO - 16:24:58:     54%|█████▍    | 539/1000 [00:00<00:00, 8642.53 it/sec]
INFO - 16:24:58:     54%|█████▍    | 540/1000 [00:00<00:00, 8642.90 it/sec]
INFO - 16:24:58:     54%|█████▍    | 541/1000 [00:00<00:00, 8643.40 it/sec]
INFO - 16:24:58:     54%|█████▍    | 542/1000 [00:00<00:00, 8643.94 it/sec]
INFO - 16:24:58:     54%|█████▍    | 543/1000 [00:00<00:00, 8642.86 it/sec]
INFO - 16:24:58:     54%|█████▍    | 544/1000 [00:00<00:00, 8641.43 it/sec]
INFO - 16:24:58:     55%|█████▍    | 545/1000 [00:00<00:00, 8641.80 it/sec]
INFO - 16:24:58:     55%|█████▍    | 546/1000 [00:00<00:00, 8642.27 it/sec]
INFO - 16:24:58:     55%|█████▍    | 547/1000 [00:00<00:00, 8641.70 it/sec]
INFO - 16:24:58:     55%|█████▍    | 548/1000 [00:00<00:00, 8642.46 it/sec]
INFO - 16:24:58:     55%|█████▍    | 549/1000 [00:00<00:00, 8642.66 it/sec]
INFO - 16:24:58:     55%|█████▌    | 550/1000 [00:00<00:00, 8643.32 it/sec]
INFO - 16:24:58:     55%|█████▌    | 551/1000 [00:00<00:00, 8643.81 it/sec]
INFO - 16:24:58:     55%|█████▌    | 552/1000 [00:00<00:00, 8641.27 it/sec]
INFO - 16:24:58:     55%|█████▌    | 553/1000 [00:00<00:00, 8640.99 it/sec]
INFO - 16:24:58:     55%|█████▌    | 554/1000 [00:00<00:00, 8641.68 it/sec]
INFO - 16:24:58:     56%|█████▌    | 555/1000 [00:00<00:00, 8642.30 it/sec]
INFO - 16:24:58:     56%|█████▌    | 556/1000 [00:00<00:00, 8642.63 it/sec]
INFO - 16:24:58:     56%|█████▌    | 557/1000 [00:00<00:00, 8643.19 it/sec]
INFO - 16:24:58:     56%|█████▌    | 558/1000 [00:00<00:00, 8643.90 it/sec]
INFO - 16:24:58:     56%|█████▌    | 559/1000 [00:00<00:00, 8643.36 it/sec]
INFO - 16:24:58:     56%|█████▌    | 560/1000 [00:00<00:00, 8643.94 it/sec]
INFO - 16:24:58:     56%|█████▌    | 561/1000 [00:00<00:00, 8641.73 it/sec]
INFO - 16:24:58:     56%|█████▌    | 562/1000 [00:00<00:00, 8642.28 it/sec]
INFO - 16:24:58:     56%|█████▋    | 563/1000 [00:00<00:00, 8643.21 it/sec]
INFO - 16:24:58:     56%|█████▋    | 564/1000 [00:00<00:00, 8644.04 it/sec]
INFO - 16:24:58:     56%|█████▋    | 565/1000 [00:00<00:00, 8644.14 it/sec]
INFO - 16:24:58:     57%|█████▋    | 566/1000 [00:00<00:00, 8644.65 it/sec]
INFO - 16:24:58:     57%|█████▋    | 567/1000 [00:00<00:00, 8626.84 it/sec]
INFO - 16:24:58:     57%|█████▋    | 568/1000 [00:00<00:00, 8623.79 it/sec]
INFO - 16:24:58:     57%|█████▋    | 569/1000 [00:00<00:00, 8622.74 it/sec]
INFO - 16:24:58:     57%|█████▋    | 570/1000 [00:00<00:00, 8622.22 it/sec]
INFO - 16:24:58:     57%|█████▋    | 571/1000 [00:00<00:00, 8622.46 it/sec]
INFO - 16:24:58:     57%|█████▋    | 572/1000 [00:00<00:00, 8621.42 it/sec]
INFO - 16:24:58:     57%|█████▋    | 573/1000 [00:00<00:00, 8620.81 it/sec]
INFO - 16:24:58:     57%|█████▋    | 574/1000 [00:00<00:00, 8621.11 it/sec]
INFO - 16:24:58:     57%|█████▊    | 575/1000 [00:00<00:00, 8621.62 it/sec]
INFO - 16:24:58:     58%|█████▊    | 576/1000 [00:00<00:00, 8620.12 it/sec]
INFO - 16:24:58:     58%|█████▊    | 577/1000 [00:00<00:00, 8619.28 it/sec]
INFO - 16:24:58:     58%|█████▊    | 578/1000 [00:00<00:00, 8619.82 it/sec]
INFO - 16:24:58:     58%|█████▊    | 579/1000 [00:00<00:00, 8620.48 it/sec]
INFO - 16:24:58:     58%|█████▊    | 580/1000 [00:00<00:00, 8621.29 it/sec]
INFO - 16:24:58:     58%|█████▊    | 581/1000 [00:00<00:00, 8622.07 it/sec]
INFO - 16:24:58:     58%|█████▊    | 582/1000 [00:00<00:00, 8622.63 it/sec]
INFO - 16:24:58:     58%|█████▊    | 583/1000 [00:00<00:00, 8622.98 it/sec]
INFO - 16:24:58:     58%|█████▊    | 584/1000 [00:00<00:00, 8622.81 it/sec]
INFO - 16:24:58:     58%|█████▊    | 585/1000 [00:00<00:00, 8620.79 it/sec]
INFO - 16:24:58:     59%|█████▊    | 586/1000 [00:00<00:00, 8620.36 it/sec]
INFO - 16:24:58:     59%|█████▊    | 587/1000 [00:00<00:00, 8620.92 it/sec]
INFO - 16:24:58:     59%|█████▉    | 588/1000 [00:00<00:00, 8621.39 it/sec]
INFO - 16:24:58:     59%|█████▉    | 589/1000 [00:00<00:00, 8621.94 it/sec]
INFO - 16:24:58:     59%|█████▉    | 590/1000 [00:00<00:00, 8622.53 it/sec]
INFO - 16:24:58:     59%|█████▉    | 591/1000 [00:00<00:00, 8623.32 it/sec]
INFO - 16:24:58:     59%|█████▉    | 592/1000 [00:00<00:00, 8623.99 it/sec]
INFO - 16:24:58:     59%|█████▉    | 593/1000 [00:00<00:00, 8624.78 it/sec]
INFO - 16:24:58:     59%|█████▉    | 594/1000 [00:00<00:00, 8622.40 it/sec]
INFO - 16:24:58:     60%|█████▉    | 595/1000 [00:00<00:00, 8621.97 it/sec]
INFO - 16:24:58:     60%|█████▉    | 596/1000 [00:00<00:00, 8622.25 it/sec]
INFO - 16:24:58:     60%|█████▉    | 597/1000 [00:00<00:00, 8622.83 it/sec]
INFO - 16:24:58:     60%|█████▉    | 598/1000 [00:00<00:00, 8623.28 it/sec]
INFO - 16:24:58:     60%|█████▉    | 599/1000 [00:00<00:00, 8623.83 it/sec]
INFO - 16:24:58:     60%|██████    | 600/1000 [00:00<00:00, 8624.22 it/sec]
INFO - 16:24:58:     60%|██████    | 601/1000 [00:00<00:00, 8624.44 it/sec]
INFO - 16:24:58:     60%|██████    | 602/1000 [00:00<00:00, 8624.77 it/sec]
INFO - 16:24:58:     60%|██████    | 603/1000 [00:00<00:00, 8622.05 it/sec]
INFO - 16:24:58:     60%|██████    | 604/1000 [00:00<00:00, 8622.21 it/sec]
INFO - 16:24:58:     60%|██████    | 605/1000 [00:00<00:00, 8622.69 it/sec]
INFO - 16:24:58:     61%|██████    | 606/1000 [00:00<00:00, 8623.14 it/sec]
INFO - 16:24:58:     61%|██████    | 607/1000 [00:00<00:00, 8622.45 it/sec]
INFO - 16:24:58:     61%|██████    | 608/1000 [00:00<00:00, 8622.67 it/sec]
INFO - 16:24:58:     61%|██████    | 609/1000 [00:00<00:00, 8623.12 it/sec]
INFO - 16:24:58:     61%|██████    | 610/1000 [00:00<00:00, 8622.90 it/sec]
INFO - 16:24:58:     61%|██████    | 611/1000 [00:00<00:00, 8620.94 it/sec]
INFO - 16:24:58:     61%|██████    | 612/1000 [00:00<00:00, 8620.84 it/sec]
INFO - 16:24:58:     61%|██████▏   | 613/1000 [00:00<00:00, 8621.11 it/sec]
INFO - 16:24:58:     61%|██████▏   | 614/1000 [00:00<00:00, 8621.56 it/sec]
INFO - 16:24:58:     62%|██████▏   | 615/1000 [00:00<00:00, 8622.18 it/sec]
INFO - 16:24:58:     62%|██████▏   | 616/1000 [00:00<00:00, 8622.74 it/sec]
INFO - 16:24:58:     62%|██████▏   | 617/1000 [00:00<00:00, 8623.15 it/sec]
INFO - 16:24:58:     62%|██████▏   | 618/1000 [00:00<00:00, 8623.65 it/sec]
INFO - 16:24:58:     62%|██████▏   | 619/1000 [00:00<00:00, 8624.29 it/sec]
INFO - 16:24:58:     62%|██████▏   | 620/1000 [00:00<00:00, 8622.04 it/sec]
INFO - 16:24:58:     62%|██████▏   | 621/1000 [00:00<00:00, 8622.40 it/sec]
INFO - 16:24:58:     62%|██████▏   | 622/1000 [00:00<00:00, 8623.12 it/sec]
INFO - 16:24:58:     62%|██████▏   | 623/1000 [00:00<00:00, 8622.88 it/sec]
INFO - 16:24:58:     62%|██████▏   | 624/1000 [00:00<00:00, 8622.92 it/sec]
INFO - 16:24:58:     62%|██████▎   | 625/1000 [00:00<00:00, 8622.93 it/sec]
INFO - 16:24:58:     63%|██████▎   | 626/1000 [00:00<00:00, 8623.23 it/sec]
INFO - 16:24:58:     63%|██████▎   | 627/1000 [00:00<00:00, 8623.58 it/sec]
INFO - 16:24:58:     63%|██████▎   | 628/1000 [00:00<00:00, 8622.32 it/sec]
INFO - 16:24:58:     63%|██████▎   | 629/1000 [00:00<00:00, 8621.68 it/sec]
INFO - 16:24:58:     63%|██████▎   | 630/1000 [00:00<00:00, 8622.29 it/sec]
INFO - 16:24:58:     63%|██████▎   | 631/1000 [00:00<00:00, 8622.92 it/sec]
INFO - 16:24:58:     63%|██████▎   | 632/1000 [00:00<00:00, 8623.35 it/sec]
INFO - 16:24:58:     63%|██████▎   | 633/1000 [00:00<00:00, 8623.58 it/sec]
INFO - 16:24:58:     63%|██████▎   | 634/1000 [00:00<00:00, 8624.01 it/sec]
INFO - 16:24:58:     64%|██████▎   | 635/1000 [00:00<00:00, 8624.44 it/sec]
INFO - 16:24:58:     64%|██████▎   | 636/1000 [00:00<00:00, 8625.04 it/sec]
INFO - 16:24:58:     64%|██████▎   | 637/1000 [00:00<00:00, 8623.74 it/sec]
INFO - 16:24:58:     64%|██████▍   | 638/1000 [00:00<00:00, 8623.72 it/sec]
INFO - 16:24:58:     64%|██████▍   | 639/1000 [00:00<00:00, 8624.31 it/sec]
INFO - 16:24:58:     64%|██████▍   | 640/1000 [00:00<00:00, 8625.24 it/sec]
INFO - 16:24:58:     64%|██████▍   | 641/1000 [00:00<00:00, 8625.66 it/sec]
INFO - 16:24:58:     64%|██████▍   | 642/1000 [00:00<00:00, 8624.81 it/sec]
INFO - 16:24:58:     64%|██████▍   | 643/1000 [00:00<00:00, 8625.31 it/sec]
INFO - 16:24:58:     64%|██████▍   | 644/1000 [00:00<00:00, 8625.93 it/sec]
INFO - 16:24:58:     64%|██████▍   | 645/1000 [00:00<00:00, 8626.40 it/sec]
INFO - 16:24:58:     65%|██████▍   | 646/1000 [00:00<00:00, 8624.40 it/sec]
INFO - 16:24:58:     65%|██████▍   | 647/1000 [00:00<00:00, 8623.13 it/sec]
INFO - 16:24:58:     65%|██████▍   | 648/1000 [00:00<00:00, 8623.30 it/sec]
INFO - 16:24:58:     65%|██████▍   | 649/1000 [00:00<00:00, 8623.78 it/sec]
INFO - 16:24:58:     65%|██████▌   | 650/1000 [00:00<00:00, 8624.47 it/sec]
INFO - 16:24:58:     65%|██████▌   | 651/1000 [00:00<00:00, 8625.38 it/sec]
INFO - 16:24:58:     65%|██████▌   | 652/1000 [00:00<00:00, 8625.55 it/sec]
INFO - 16:24:58:     65%|██████▌   | 653/1000 [00:00<00:00, 8626.01 it/sec]
INFO - 16:24:58:     65%|██████▌   | 654/1000 [00:00<00:00, 8624.86 it/sec]
INFO - 16:24:58:     66%|██████▌   | 655/1000 [00:00<00:00, 8624.16 it/sec]
INFO - 16:24:58:     66%|██████▌   | 656/1000 [00:00<00:00, 8623.76 it/sec]
INFO - 16:24:58:     66%|██████▌   | 657/1000 [00:00<00:00, 8623.96 it/sec]
INFO - 16:24:58:     66%|██████▌   | 658/1000 [00:00<00:00, 8623.78 it/sec]
INFO - 16:24:58:     66%|██████▌   | 659/1000 [00:00<00:00, 8623.85 it/sec]
INFO - 16:24:58:     66%|██████▌   | 660/1000 [00:00<00:00, 8624.18 it/sec]
INFO - 16:24:58:     66%|██████▌   | 661/1000 [00:00<00:00, 8624.51 it/sec]
INFO - 16:24:58:     66%|██████▌   | 662/1000 [00:00<00:00, 8624.60 it/sec]
INFO - 16:24:58:     66%|██████▋   | 663/1000 [00:00<00:00, 8622.79 it/sec]
INFO - 16:24:58:     66%|██████▋   | 664/1000 [00:00<00:00, 8622.69 it/sec]
INFO - 16:24:58:     66%|██████▋   | 665/1000 [00:00<00:00, 8623.18 it/sec]
INFO - 16:24:58:     67%|██████▋   | 666/1000 [00:00<00:00, 8623.75 it/sec]
INFO - 16:24:58:     67%|██████▋   | 667/1000 [00:00<00:00, 8623.95 it/sec]
INFO - 16:24:58:     67%|██████▋   | 668/1000 [00:00<00:00, 8624.62 it/sec]
INFO - 16:24:58:     67%|██████▋   | 669/1000 [00:00<00:00, 8624.90 it/sec]
INFO - 16:24:58:     67%|██████▋   | 670/1000 [00:00<00:00, 8625.43 it/sec]
INFO - 16:24:58:     67%|██████▋   | 671/1000 [00:00<00:00, 8626.05 it/sec]
INFO - 16:24:58:     67%|██████▋   | 672/1000 [00:00<00:00, 8624.00 it/sec]
INFO - 16:24:58:     67%|██████▋   | 673/1000 [00:00<00:00, 8624.40 it/sec]
INFO - 16:24:58:     67%|██████▋   | 674/1000 [00:00<00:00, 8625.07 it/sec]
INFO - 16:24:58:     68%|██████▊   | 675/1000 [00:00<00:00, 8625.57 it/sec]
INFO - 16:24:58:     68%|██████▊   | 676/1000 [00:00<00:00, 8624.95 it/sec]
INFO - 16:24:58:     68%|██████▊   | 677/1000 [00:00<00:00, 8625.33 it/sec]
INFO - 16:24:58:     68%|██████▊   | 678/1000 [00:00<00:00, 8626.09 it/sec]
INFO - 16:24:58:     68%|██████▊   | 679/1000 [00:00<00:00, 8626.99 it/sec]
INFO - 16:24:58:     68%|██████▊   | 680/1000 [00:00<00:00, 8626.05 it/sec]
INFO - 16:24:58:     68%|██████▊   | 681/1000 [00:00<00:00, 8625.75 it/sec]
INFO - 16:24:58:     68%|██████▊   | 682/1000 [00:00<00:00, 8625.49 it/sec]
INFO - 16:24:58:     68%|██████▊   | 683/1000 [00:00<00:00, 8624.88 it/sec]
INFO - 16:24:58:     68%|██████▊   | 684/1000 [00:00<00:00, 8624.99 it/sec]
INFO - 16:24:58:     68%|██████▊   | 685/1000 [00:00<00:00, 8625.51 it/sec]
INFO - 16:24:58:     69%|██████▊   | 686/1000 [00:00<00:00, 8625.96 it/sec]
INFO - 16:24:58:     69%|██████▊   | 687/1000 [00:00<00:00, 8626.33 it/sec]
INFO - 16:24:58:     69%|██████▉   | 688/1000 [00:00<00:00, 8625.15 it/sec]
INFO - 16:24:58:     69%|██████▉   | 689/1000 [00:00<00:00, 8622.45 it/sec]
INFO - 16:24:58:     69%|██████▉   | 690/1000 [00:00<00:00, 8622.21 it/sec]
INFO - 16:24:58:     69%|██████▉   | 691/1000 [00:00<00:00, 8621.91 it/sec]
INFO - 16:24:58:     69%|██████▉   | 692/1000 [00:00<00:00, 8621.41 it/sec]
INFO - 16:24:58:     69%|██████▉   | 693/1000 [00:00<00:00, 8621.55 it/sec]
INFO - 16:24:58:     69%|██████▉   | 694/1000 [00:00<00:00, 8622.00 it/sec]
INFO - 16:24:58:     70%|██████▉   | 695/1000 [00:00<00:00, 8622.27 it/sec]
INFO - 16:24:58:     70%|██████▉   | 696/1000 [00:00<00:00, 8622.56 it/sec]
INFO - 16:24:58:     70%|██████▉   | 697/1000 [00:00<00:00, 8621.19 it/sec]
INFO - 16:24:58:     70%|██████▉   | 698/1000 [00:00<00:00, 8620.62 it/sec]
INFO - 16:24:58:     70%|██████▉   | 699/1000 [00:00<00:00, 8620.43 it/sec]
INFO - 16:24:58:     70%|███████   | 700/1000 [00:00<00:00, 8620.80 it/sec]
INFO - 16:24:58:     70%|███████   | 701/1000 [00:00<00:00, 8621.02 it/sec]
INFO - 16:24:58:     70%|███████   | 702/1000 [00:00<00:00, 8621.39 it/sec]
INFO - 16:24:58:     70%|███████   | 703/1000 [00:00<00:00, 8622.03 it/sec]
INFO - 16:24:58:     70%|███████   | 704/1000 [00:00<00:00, 8622.04 it/sec]
INFO - 16:24:58:     70%|███████   | 705/1000 [00:00<00:00, 8621.88 it/sec]
INFO - 16:24:58:     71%|███████   | 706/1000 [00:00<00:00, 8619.88 it/sec]
INFO - 16:24:58:     71%|███████   | 707/1000 [00:00<00:00, 8620.19 it/sec]
INFO - 16:24:58:     71%|███████   | 708/1000 [00:00<00:00, 8620.78 it/sec]
INFO - 16:24:58:     71%|███████   | 709/1000 [00:00<00:00, 8621.40 it/sec]
INFO - 16:24:58:     71%|███████   | 710/1000 [00:00<00:00, 8621.14 it/sec]
INFO - 16:24:58:     71%|███████   | 711/1000 [00:00<00:00, 8621.07 it/sec]
INFO - 16:24:58:     71%|███████   | 712/1000 [00:00<00:00, 8621.39 it/sec]
INFO - 16:24:58:     71%|███████▏  | 713/1000 [00:00<00:00, 8622.02 it/sec]
INFO - 16:24:58:     71%|███████▏  | 714/1000 [00:00<00:00, 8620.86 it/sec]
INFO - 16:24:58:     72%|███████▏  | 715/1000 [00:00<00:00, 8620.53 it/sec]
INFO - 16:24:58:     72%|███████▏  | 716/1000 [00:00<00:00, 8605.92 it/sec]
INFO - 16:24:58:     72%|███████▏  | 717/1000 [00:00<00:00, 8605.66 it/sec]
INFO - 16:24:58:     72%|███████▏  | 718/1000 [00:00<00:00, 8606.04 it/sec]
INFO - 16:24:58:     72%|███████▏  | 719/1000 [00:00<00:00, 8606.27 it/sec]
INFO - 16:24:58:     72%|███████▏  | 720/1000 [00:00<00:00, 8606.42 it/sec]
INFO - 16:24:58:     72%|███████▏  | 721/1000 [00:00<00:00, 8606.92 it/sec]
INFO - 16:24:58:     72%|███████▏  | 722/1000 [00:00<00:00, 8605.29 it/sec]
INFO - 16:24:58:     72%|███████▏  | 723/1000 [00:00<00:00, 8605.54 it/sec]
INFO - 16:24:58:     72%|███████▏  | 724/1000 [00:00<00:00, 8605.70 it/sec]
INFO - 16:24:58:     72%|███████▎  | 725/1000 [00:00<00:00, 8606.15 it/sec]
INFO - 16:24:58:     73%|███████▎  | 726/1000 [00:00<00:00, 8606.28 it/sec]
INFO - 16:24:58:     73%|███████▎  | 727/1000 [00:00<00:00, 8606.36 it/sec]
INFO - 16:24:58:     73%|███████▎  | 728/1000 [00:00<00:00, 8606.76 it/sec]
INFO - 16:24:58:     73%|███████▎  | 729/1000 [00:00<00:00, 8607.32 it/sec]
INFO - 16:24:58:     73%|███████▎  | 730/1000 [00:00<00:00, 8606.34 it/sec]
INFO - 16:24:58:     73%|███████▎  | 731/1000 [00:00<00:00, 8605.60 it/sec]
INFO - 16:24:58:     73%|███████▎  | 732/1000 [00:00<00:00, 8605.90 it/sec]
INFO - 16:24:58:     73%|███████▎  | 733/1000 [00:00<00:00, 8606.24 it/sec]
INFO - 16:24:58:     73%|███████▎  | 734/1000 [00:00<00:00, 8606.56 it/sec]
INFO - 16:24:58:     74%|███████▎  | 735/1000 [00:00<00:00, 8607.08 it/sec]
INFO - 16:24:58:     74%|███████▎  | 736/1000 [00:00<00:00, 8607.56 it/sec]
INFO - 16:24:58:     74%|███████▎  | 737/1000 [00:00<00:00, 8607.81 it/sec]
INFO - 16:24:58:     74%|███████▍  | 738/1000 [00:00<00:00, 8608.34 it/sec]
INFO - 16:24:58:     74%|███████▍  | 739/1000 [00:00<00:00, 8607.06 it/sec]
INFO - 16:24:58:     74%|███████▍  | 740/1000 [00:00<00:00, 8606.87 it/sec]
INFO - 16:24:58:     74%|███████▍  | 741/1000 [00:00<00:00, 8607.29 it/sec]
INFO - 16:24:58:     74%|███████▍  | 742/1000 [00:00<00:00, 8607.65 it/sec]
INFO - 16:24:58:     74%|███████▍  | 743/1000 [00:00<00:00, 8607.87 it/sec]
INFO - 16:24:58:     74%|███████▍  | 744/1000 [00:00<00:00, 8607.24 it/sec]
INFO - 16:24:58:     74%|███████▍  | 745/1000 [00:00<00:00, 8607.36 it/sec]
INFO - 16:24:58:     75%|███████▍  | 746/1000 [00:00<00:00, 8607.51 it/sec]
INFO - 16:24:58:     75%|███████▍  | 747/1000 [00:00<00:00, 8607.75 it/sec]
INFO - 16:24:58:     75%|███████▍  | 748/1000 [00:00<00:00, 8605.73 it/sec]
INFO - 16:24:58:     75%|███████▍  | 749/1000 [00:00<00:00, 8605.76 it/sec]
INFO - 16:24:58:     75%|███████▌  | 750/1000 [00:00<00:00, 8605.87 it/sec]
INFO - 16:24:58:     75%|███████▌  | 751/1000 [00:00<00:00, 8606.02 it/sec]
INFO - 16:24:58:     75%|███████▌  | 752/1000 [00:00<00:00, 8606.12 it/sec]
INFO - 16:24:58:     75%|███████▌  | 753/1000 [00:00<00:00, 8606.38 it/sec]
INFO - 16:24:58:     75%|███████▌  | 754/1000 [00:00<00:00, 8606.86 it/sec]
INFO - 16:24:58:     76%|███████▌  | 755/1000 [00:00<00:00, 8606.33 it/sec]
INFO - 16:24:58:     76%|███████▌  | 756/1000 [00:00<00:00, 8604.52 it/sec]
INFO - 16:24:58:     76%|███████▌  | 757/1000 [00:00<00:00, 8603.43 it/sec]
INFO - 16:24:58:     76%|███████▌  | 758/1000 [00:00<00:00, 8603.35 it/sec]
INFO - 16:24:58:     76%|███████▌  | 759/1000 [00:00<00:00, 8603.62 it/sec]
INFO - 16:24:58:     76%|███████▌  | 760/1000 [00:00<00:00, 8603.98 it/sec]
INFO - 16:24:58:     76%|███████▌  | 761/1000 [00:00<00:00, 8604.08 it/sec]
INFO - 16:24:58:     76%|███████▌  | 762/1000 [00:00<00:00, 8604.33 it/sec]
INFO - 16:24:58:     76%|███████▋  | 763/1000 [00:00<00:00, 8604.75 it/sec]
INFO - 16:24:58:     76%|███████▋  | 764/1000 [00:00<00:00, 8605.06 it/sec]
INFO - 16:24:58:     76%|███████▋  | 765/1000 [00:00<00:00, 8603.23 it/sec]
INFO - 16:24:58:     77%|███████▋  | 766/1000 [00:00<00:00, 8603.08 it/sec]
INFO - 16:24:58:     77%|███████▋  | 767/1000 [00:00<00:00, 8603.44 it/sec]
INFO - 16:24:58:     77%|███████▋  | 768/1000 [00:00<00:00, 8604.00 it/sec]
INFO - 16:24:58:     77%|███████▋  | 769/1000 [00:00<00:00, 8604.61 it/sec]
INFO - 16:24:58:     77%|███████▋  | 770/1000 [00:00<00:00, 8605.19 it/sec]
INFO - 16:24:58:     77%|███████▋  | 771/1000 [00:00<00:00, 8605.20 it/sec]
INFO - 16:24:58:     77%|███████▋  | 772/1000 [00:00<00:00, 8605.39 it/sec]
INFO - 16:24:58:     77%|███████▋  | 773/1000 [00:00<00:00, 8604.26 it/sec]
INFO - 16:24:58:     77%|███████▋  | 774/1000 [00:00<00:00, 8603.91 it/sec]
INFO - 16:24:58:     78%|███████▊  | 775/1000 [00:00<00:00, 8604.03 it/sec]
INFO - 16:24:58:     78%|███████▊  | 776/1000 [00:00<00:00, 8603.36 it/sec]
INFO - 16:24:58:     78%|███████▊  | 777/1000 [00:00<00:00, 8603.44 it/sec]
INFO - 16:24:58:     78%|███████▊  | 778/1000 [00:00<00:00, 8602.36 it/sec]
INFO - 16:24:58:     78%|███████▊  | 779/1000 [00:00<00:00, 8602.24 it/sec]
INFO - 16:24:58:     78%|███████▊  | 780/1000 [00:00<00:00, 8602.37 it/sec]
INFO - 16:24:58:     78%|███████▊  | 781/1000 [00:00<00:00, 8602.38 it/sec]
INFO - 16:24:58:     78%|███████▊  | 782/1000 [00:00<00:00, 8600.56 it/sec]
INFO - 16:24:58:     78%|███████▊  | 783/1000 [00:00<00:00, 8600.65 it/sec]
INFO - 16:24:58:     78%|███████▊  | 784/1000 [00:00<00:00, 8600.87 it/sec]
INFO - 16:24:58:     78%|███████▊  | 785/1000 [00:00<00:00, 8601.35 it/sec]
INFO - 16:24:58:     79%|███████▊  | 786/1000 [00:00<00:00, 8601.81 it/sec]
INFO - 16:24:58:     79%|███████▊  | 787/1000 [00:00<00:00, 8602.14 it/sec]
INFO - 16:24:58:     79%|███████▉  | 788/1000 [00:00<00:00, 8602.51 it/sec]
INFO - 16:24:58:     79%|███████▉  | 789/1000 [00:00<00:00, 8602.59 it/sec]
INFO - 16:24:58:     79%|███████▉  | 790/1000 [00:00<00:00, 8601.27 it/sec]
INFO - 16:24:58:     79%|███████▉  | 791/1000 [00:00<00:00, 8601.15 it/sec]
INFO - 16:24:58:     79%|███████▉  | 792/1000 [00:00<00:00, 8601.38 it/sec]
INFO - 16:24:58:     79%|███████▉  | 793/1000 [00:00<00:00, 8601.64 it/sec]
INFO - 16:24:58:     79%|███████▉  | 794/1000 [00:00<00:00, 8601.94 it/sec]
INFO - 16:24:58:     80%|███████▉  | 795/1000 [00:00<00:00, 8602.14 it/sec]
INFO - 16:24:58:     80%|███████▉  | 796/1000 [00:00<00:00, 8601.97 it/sec]
INFO - 16:24:58:     80%|███████▉  | 797/1000 [00:00<00:00, 8602.16 it/sec]
INFO - 16:24:58:     80%|███████▉  | 798/1000 [00:00<00:00, 8601.91 it/sec]
INFO - 16:24:58:     80%|███████▉  | 799/1000 [00:00<00:00, 8600.11 it/sec]
INFO - 16:24:58:     80%|████████  | 800/1000 [00:00<00:00, 8599.95 it/sec]
INFO - 16:24:58:     80%|████████  | 801/1000 [00:00<00:00, 8600.45 it/sec]
INFO - 16:24:58:     80%|████████  | 802/1000 [00:00<00:00, 8600.66 it/sec]
INFO - 16:24:58:     80%|████████  | 803/1000 [00:00<00:00, 8600.94 it/sec]
INFO - 16:24:58:     80%|████████  | 804/1000 [00:00<00:00, 8601.31 it/sec]
INFO - 16:24:58:     80%|████████  | 805/1000 [00:00<00:00, 8601.56 it/sec]
INFO - 16:24:58:     81%|████████  | 806/1000 [00:00<00:00, 8601.71 it/sec]
INFO - 16:24:58:     81%|████████  | 807/1000 [00:00<00:00, 8600.74 it/sec]
INFO - 16:24:58:     81%|████████  | 808/1000 [00:00<00:00, 8600.19 it/sec]
INFO - 16:24:58:     81%|████████  | 809/1000 [00:00<00:00, 8600.46 it/sec]
INFO - 16:24:58:     81%|████████  | 810/1000 [00:00<00:00, 8596.86 it/sec]
INFO - 16:24:58:     81%|████████  | 811/1000 [00:00<00:00, 8596.95 it/sec]
INFO - 16:24:58:     81%|████████  | 812/1000 [00:00<00:00, 8596.21 it/sec]
INFO - 16:24:58:     81%|████████▏ | 813/1000 [00:00<00:00, 8596.68 it/sec]
INFO - 16:24:58:     81%|████████▏ | 814/1000 [00:00<00:00, 8597.03 it/sec]
INFO - 16:24:58:     82%|████████▏ | 815/1000 [00:00<00:00, 8597.28 it/sec]
INFO - 16:24:58:     82%|████████▏ | 816/1000 [00:00<00:00, 8595.32 it/sec]
INFO - 16:24:58:     82%|████████▏ | 817/1000 [00:00<00:00, 8595.60 it/sec]
INFO - 16:24:58:     82%|████████▏ | 818/1000 [00:00<00:00, 8596.05 it/sec]
INFO - 16:24:58:     82%|████████▏ | 819/1000 [00:00<00:00, 8596.39 it/sec]
INFO - 16:24:58:     82%|████████▏ | 820/1000 [00:00<00:00, 8596.80 it/sec]
INFO - 16:24:58:     82%|████████▏ | 821/1000 [00:00<00:00, 8597.18 it/sec]
INFO - 16:24:58:     82%|████████▏ | 822/1000 [00:00<00:00, 8597.56 it/sec]
INFO - 16:24:58:     82%|████████▏ | 823/1000 [00:00<00:00, 8597.78 it/sec]
INFO - 16:24:58:     82%|████████▏ | 824/1000 [00:00<00:00, 8596.38 it/sec]
INFO - 16:24:58:     82%|████████▎ | 825/1000 [00:00<00:00, 8596.21 it/sec]
INFO - 16:24:58:     83%|████████▎ | 826/1000 [00:00<00:00, 8595.78 it/sec]
INFO - 16:24:58:     83%|████████▎ | 827/1000 [00:00<00:00, 8596.14 it/sec]
INFO - 16:24:58:     83%|████████▎ | 828/1000 [00:00<00:00, 8596.16 it/sec]
INFO - 16:24:58:     83%|████████▎ | 829/1000 [00:00<00:00, 8596.52 it/sec]
INFO - 16:24:58:     83%|████████▎ | 830/1000 [00:00<00:00, 8597.05 it/sec]
INFO - 16:24:58:     83%|████████▎ | 831/1000 [00:00<00:00, 8597.30 it/sec]
INFO - 16:24:58:     83%|████████▎ | 832/1000 [00:00<00:00, 8597.66 it/sec]
INFO - 16:24:58:     83%|████████▎ | 833/1000 [00:00<00:00, 8595.96 it/sec]
INFO - 16:24:58:     83%|████████▎ | 834/1000 [00:00<00:00, 8595.79 it/sec]
INFO - 16:24:58:     84%|████████▎ | 835/1000 [00:00<00:00, 8596.05 it/sec]
INFO - 16:24:58:     84%|████████▎ | 836/1000 [00:00<00:00, 8596.40 it/sec]
INFO - 16:24:58:     84%|████████▎ | 837/1000 [00:00<00:00, 8596.82 it/sec]
INFO - 16:24:58:     84%|████████▍ | 838/1000 [00:00<00:00, 8597.24 it/sec]
INFO - 16:24:58:     84%|████████▍ | 839/1000 [00:00<00:00, 8597.53 it/sec]
INFO - 16:24:58:     84%|████████▍ | 840/1000 [00:00<00:00, 8598.07 it/sec]
INFO - 16:24:58:     84%|████████▍ | 841/1000 [00:00<00:00, 8597.34 it/sec]
INFO - 16:24:58:     84%|████████▍ | 842/1000 [00:00<00:00, 8596.91 it/sec]
INFO - 16:24:58:     84%|████████▍ | 843/1000 [00:00<00:00, 8597.23 it/sec]
INFO - 16:24:58:     84%|████████▍ | 844/1000 [00:00<00:00, 8597.68 it/sec]
INFO - 16:24:58:     84%|████████▍ | 845/1000 [00:00<00:00, 8597.95 it/sec]
INFO - 16:24:58:     85%|████████▍ | 846/1000 [00:00<00:00, 8597.09 it/sec]
INFO - 16:24:58:     85%|████████▍ | 847/1000 [00:00<00:00, 8597.36 it/sec]
INFO - 16:24:58:     85%|████████▍ | 848/1000 [00:00<00:00, 8597.69 it/sec]
INFO - 16:24:58:     85%|████████▍ | 849/1000 [00:00<00:00, 8598.16 it/sec]
INFO - 16:24:58:     85%|████████▌ | 850/1000 [00:00<00:00, 8596.79 it/sec]
INFO - 16:24:58:     85%|████████▌ | 851/1000 [00:00<00:00, 8596.87 it/sec]
INFO - 16:24:58:     85%|████████▌ | 852/1000 [00:00<00:00, 8597.33 it/sec]
INFO - 16:24:58:     85%|████████▌ | 853/1000 [00:00<00:00, 8597.84 it/sec]
INFO - 16:24:58:     85%|████████▌ | 854/1000 [00:00<00:00, 8598.41 it/sec]
INFO - 16:24:58:     86%|████████▌ | 855/1000 [00:00<00:00, 8598.90 it/sec]
INFO - 16:24:58:     86%|████████▌ | 856/1000 [00:00<00:00, 8599.13 it/sec]
INFO - 16:24:58:     86%|████████▌ | 857/1000 [00:00<00:00, 8598.30 it/sec]
INFO - 16:24:58:     86%|████████▌ | 858/1000 [00:00<00:00, 8597.99 it/sec]
INFO - 16:24:58:     86%|████████▌ | 859/1000 [00:00<00:00, 8595.89 it/sec]
INFO - 16:24:58:     86%|████████▌ | 860/1000 [00:00<00:00, 8595.95 it/sec]
INFO - 16:24:58:     86%|████████▌ | 861/1000 [00:00<00:00, 8596.38 it/sec]
INFO - 16:24:58:     86%|████████▌ | 862/1000 [00:00<00:00, 8596.83 it/sec]
INFO - 16:24:58:     86%|████████▋ | 863/1000 [00:00<00:00, 8597.25 it/sec]
INFO - 16:24:58:     86%|████████▋ | 864/1000 [00:00<00:00, 8597.33 it/sec]
INFO - 16:24:58:     86%|████████▋ | 865/1000 [00:00<00:00, 8586.26 it/sec]
INFO - 16:24:58:     87%|████████▋ | 866/1000 [00:00<00:00, 8584.06 it/sec]
INFO - 16:24:58:     87%|████████▋ | 867/1000 [00:00<00:00, 8583.69 it/sec]
INFO - 16:24:58:     87%|████████▋ | 868/1000 [00:00<00:00, 8583.82 it/sec]
INFO - 16:24:58:     87%|████████▋ | 869/1000 [00:00<00:00, 8583.97 it/sec]
INFO - 16:24:58:     87%|████████▋ | 870/1000 [00:00<00:00, 8584.23 it/sec]
INFO - 16:24:58:     87%|████████▋ | 871/1000 [00:00<00:00, 8584.40 it/sec]
INFO - 16:24:58:     87%|████████▋ | 872/1000 [00:00<00:00, 8584.72 it/sec]
INFO - 16:24:58:     87%|████████▋ | 873/1000 [00:00<00:00, 8584.79 it/sec]
INFO - 16:24:58:     87%|████████▋ | 874/1000 [00:00<00:00, 8584.00 it/sec]
INFO - 16:24:58:     88%|████████▊ | 875/1000 [00:00<00:00, 8583.19 it/sec]
INFO - 16:24:58:     88%|████████▊ | 876/1000 [00:00<00:00, 8583.04 it/sec]
INFO - 16:24:58:     88%|████████▊ | 877/1000 [00:00<00:00, 8583.19 it/sec]
INFO - 16:24:58:     88%|████████▊ | 878/1000 [00:00<00:00, 8583.29 it/sec]
INFO - 16:24:58:     88%|████████▊ | 879/1000 [00:00<00:00, 8582.60 it/sec]
INFO - 16:24:58:     88%|████████▊ | 880/1000 [00:00<00:00, 8582.67 it/sec]
INFO - 16:24:58:     88%|████████▊ | 881/1000 [00:00<00:00, 8582.91 it/sec]
INFO - 16:24:58:     88%|████████▊ | 882/1000 [00:00<00:00, 8583.38 it/sec]
INFO - 16:24:58:     88%|████████▊ | 883/1000 [00:00<00:00, 8581.92 it/sec]
INFO - 16:24:58:     88%|████████▊ | 884/1000 [00:00<00:00, 8581.50 it/sec]
INFO - 16:24:58:     88%|████████▊ | 885/1000 [00:00<00:00, 8581.12 it/sec]
INFO - 16:24:58:     89%|████████▊ | 886/1000 [00:00<00:00, 8580.83 it/sec]
INFO - 16:24:58:     89%|████████▊ | 887/1000 [00:00<00:00, 8580.87 it/sec]
INFO - 16:24:58:     89%|████████▉ | 888/1000 [00:00<00:00, 8580.15 it/sec]
INFO - 16:24:58:     89%|████████▉ | 889/1000 [00:00<00:00, 8579.62 it/sec]
INFO - 16:24:58:     89%|████████▉ | 890/1000 [00:00<00:00, 8579.58 it/sec]
INFO - 16:24:58:     89%|████████▉ | 891/1000 [00:00<00:00, 8578.21 it/sec]
INFO - 16:24:58:     89%|████████▉ | 892/1000 [00:00<00:00, 8577.19 it/sec]
INFO - 16:24:58:     89%|████████▉ | 893/1000 [00:00<00:00, 8577.21 it/sec]
INFO - 16:24:58:     89%|████████▉ | 894/1000 [00:00<00:00, 8577.13 it/sec]
INFO - 16:24:58:     90%|████████▉ | 895/1000 [00:00<00:00, 8576.96 it/sec]
INFO - 16:24:58:     90%|████████▉ | 896/1000 [00:00<00:00, 8576.92 it/sec]
INFO - 16:24:58:     90%|████████▉ | 897/1000 [00:00<00:00, 8577.17 it/sec]
INFO - 16:24:58:     90%|████████▉ | 898/1000 [00:00<00:00, 8577.33 it/sec]
INFO - 16:24:58:     90%|████████▉ | 899/1000 [00:00<00:00, 8576.18 it/sec]
INFO - 16:24:58:     90%|█████████ | 900/1000 [00:00<00:00, 8575.54 it/sec]
INFO - 16:24:58:     90%|█████████ | 901/1000 [00:00<00:00, 8575.62 it/sec]
INFO - 16:24:58:     90%|█████████ | 902/1000 [00:00<00:00, 8575.66 it/sec]
INFO - 16:24:58:     90%|█████████ | 903/1000 [00:00<00:00, 8575.79 it/sec]
INFO - 16:24:58:     90%|█████████ | 904/1000 [00:00<00:00, 8575.87 it/sec]
INFO - 16:24:58:     90%|█████████ | 905/1000 [00:00<00:00, 8575.97 it/sec]
INFO - 16:24:58:     91%|█████████ | 906/1000 [00:00<00:00, 8576.21 it/sec]
INFO - 16:24:58:     91%|█████████ | 907/1000 [00:00<00:00, 8576.40 it/sec]
INFO - 16:24:58:     91%|█████████ | 908/1000 [00:00<00:00, 8574.78 it/sec]
INFO - 16:24:58:     91%|█████████ | 909/1000 [00:00<00:00, 8574.51 it/sec]
INFO - 16:24:58:     91%|█████████ | 910/1000 [00:00<00:00, 8574.25 it/sec]
INFO - 16:24:58:     91%|█████████ | 911/1000 [00:00<00:00, 8574.17 it/sec]
INFO - 16:24:58:     91%|█████████ | 912/1000 [00:00<00:00, 8573.68 it/sec]
INFO - 16:24:58:     91%|█████████▏| 913/1000 [00:00<00:00, 8573.54 it/sec]
INFO - 16:24:58:     91%|█████████▏| 914/1000 [00:00<00:00, 8573.63 it/sec]
INFO - 16:24:58:     92%|█████████▏| 915/1000 [00:00<00:00, 8573.82 it/sec]
INFO - 16:24:58:     92%|█████████▏| 916/1000 [00:00<00:00, 8572.49 it/sec]
INFO - 16:24:58:     92%|█████████▏| 917/1000 [00:00<00:00, 8572.03 it/sec]
INFO - 16:24:58:     92%|█████████▏| 918/1000 [00:00<00:00, 8572.34 it/sec]
INFO - 16:24:58:     92%|█████████▏| 919/1000 [00:00<00:00, 8572.62 it/sec]
INFO - 16:24:58:     92%|█████████▏| 920/1000 [00:00<00:00, 8572.98 it/sec]
INFO - 16:24:58:     92%|█████████▏| 921/1000 [00:00<00:00, 8573.33 it/sec]
INFO - 16:24:58:     92%|█████████▏| 922/1000 [00:00<00:00, 8573.81 it/sec]
INFO - 16:24:58:     92%|█████████▏| 923/1000 [00:00<00:00, 8574.17 it/sec]
INFO - 16:24:58:     92%|█████████▏| 924/1000 [00:00<00:00, 8574.56 it/sec]
INFO - 16:24:58:     92%|█████████▎| 925/1000 [00:00<00:00, 8573.01 it/sec]
INFO - 16:24:58:     93%|█████████▎| 926/1000 [00:00<00:00, 8572.84 it/sec]
INFO - 16:24:58:     93%|█████████▎| 927/1000 [00:00<00:00, 8573.00 it/sec]
INFO - 16:24:58:     93%|█████████▎| 928/1000 [00:00<00:00, 8573.25 it/sec]
INFO - 16:24:58:     93%|█████████▎| 929/1000 [00:00<00:00, 8573.44 it/sec]
INFO - 16:24:58:     93%|█████████▎| 930/1000 [00:00<00:00, 8573.50 it/sec]
INFO - 16:24:58:     93%|█████████▎| 931/1000 [00:00<00:00, 8573.60 it/sec]
INFO - 16:24:58:     93%|█████████▎| 932/1000 [00:00<00:00, 8573.64 it/sec]
INFO - 16:24:58:     93%|█████████▎| 933/1000 [00:00<00:00, 8572.61 it/sec]
INFO - 16:24:58:     93%|█████████▎| 934/1000 [00:00<00:00, 8572.15 it/sec]
INFO - 16:24:58:     94%|█████████▎| 935/1000 [00:00<00:00, 8572.27 it/sec]
INFO - 16:24:58:     94%|█████████▎| 936/1000 [00:00<00:00, 8572.12 it/sec]
INFO - 16:24:58:     94%|█████████▎| 937/1000 [00:00<00:00, 8572.46 it/sec]
INFO - 16:24:58:     94%|█████████▍| 938/1000 [00:00<00:00, 8572.69 it/sec]
INFO - 16:24:58:     94%|█████████▍| 939/1000 [00:00<00:00, 8572.96 it/sec]
INFO - 16:24:58:     94%|█████████▍| 940/1000 [00:00<00:00, 8573.26 it/sec]
INFO - 16:24:58:     94%|█████████▍| 941/1000 [00:00<00:00, 8573.51 it/sec]
INFO - 16:24:58:     94%|█████████▍| 942/1000 [00:00<00:00, 8572.02 it/sec]
INFO - 16:24:58:     94%|█████████▍| 943/1000 [00:00<00:00, 8572.12 it/sec]
INFO - 16:24:58:     94%|█████████▍| 944/1000 [00:00<00:00, 8572.44 it/sec]
INFO - 16:24:58:     94%|█████████▍| 945/1000 [00:00<00:00, 8572.75 it/sec]
INFO - 16:24:58:     95%|█████████▍| 946/1000 [00:00<00:00, 8572.32 it/sec]
INFO - 16:24:58:     95%|█████████▍| 947/1000 [00:00<00:00, 8572.24 it/sec]
INFO - 16:24:58:     95%|█████████▍| 948/1000 [00:00<00:00, 8572.52 it/sec]
INFO - 16:24:58:     95%|█████████▍| 949/1000 [00:00<00:00, 8572.95 it/sec]
INFO - 16:24:58:     95%|█████████▌| 950/1000 [00:00<00:00, 8572.20 it/sec]
INFO - 16:24:58:     95%|█████████▌| 951/1000 [00:00<00:00, 8571.65 it/sec]
INFO - 16:24:58:     95%|█████████▌| 952/1000 [00:00<00:00, 8571.82 it/sec]
INFO - 16:24:58:     95%|█████████▌| 953/1000 [00:00<00:00, 8571.88 it/sec]
INFO - 16:24:58:     95%|█████████▌| 954/1000 [00:00<00:00, 8571.91 it/sec]
INFO - 16:24:58:     96%|█████████▌| 955/1000 [00:00<00:00, 8572.19 it/sec]
INFO - 16:24:58:     96%|█████████▌| 956/1000 [00:00<00:00, 8572.39 it/sec]
INFO - 16:24:58:     96%|█████████▌| 957/1000 [00:00<00:00, 8572.80 it/sec]
INFO - 16:24:58:     96%|█████████▌| 958/1000 [00:00<00:00, 8573.17 it/sec]
INFO - 16:24:58:     96%|█████████▌| 959/1000 [00:00<00:00, 8572.08 it/sec]
INFO - 16:24:58:     96%|█████████▌| 960/1000 [00:00<00:00, 8571.89 it/sec]
INFO - 16:24:58:     96%|█████████▌| 961/1000 [00:00<00:00, 8572.04 it/sec]
INFO - 16:24:58:     96%|█████████▌| 962/1000 [00:00<00:00, 8572.08 it/sec]
INFO - 16:24:58:     96%|█████████▋| 963/1000 [00:00<00:00, 8572.21 it/sec]
INFO - 16:24:58:     96%|█████████▋| 964/1000 [00:00<00:00, 8572.44 it/sec]
INFO - 16:24:58:     96%|█████████▋| 965/1000 [00:00<00:00, 8572.55 it/sec]
INFO - 16:24:58:     97%|█████████▋| 966/1000 [00:00<00:00, 8572.83 it/sec]
INFO - 16:24:58:     97%|█████████▋| 967/1000 [00:00<00:00, 8573.18 it/sec]
INFO - 16:24:58:     97%|█████████▋| 968/1000 [00:00<00:00, 8571.26 it/sec]
INFO - 16:24:58:     97%|█████████▋| 969/1000 [00:00<00:00, 8570.98 it/sec]
INFO - 16:24:58:     97%|█████████▋| 970/1000 [00:00<00:00, 8571.04 it/sec]
INFO - 16:24:58:     97%|█████████▋| 971/1000 [00:00<00:00, 8571.32 it/sec]
INFO - 16:24:58:     97%|█████████▋| 972/1000 [00:00<00:00, 8571.65 it/sec]
INFO - 16:24:58:     97%|█████████▋| 973/1000 [00:00<00:00, 8571.96 it/sec]
INFO - 16:24:58:     97%|█████████▋| 974/1000 [00:00<00:00, 8572.18 it/sec]
INFO - 16:24:58:     98%|█████████▊| 975/1000 [00:00<00:00, 8572.42 it/sec]
INFO - 16:24:58:     98%|█████████▊| 976/1000 [00:00<00:00, 8571.20 it/sec]
INFO - 16:24:58:     98%|█████████▊| 977/1000 [00:00<00:00, 8571.07 it/sec]
INFO - 16:24:58:     98%|█████████▊| 978/1000 [00:00<00:00, 8571.16 it/sec]
INFO - 16:24:58:     98%|█████████▊| 979/1000 [00:00<00:00, 8571.38 it/sec]
INFO - 16:24:58:     98%|█████████▊| 980/1000 [00:00<00:00, 8571.59 it/sec]
INFO - 16:24:58:     98%|█████████▊| 981/1000 [00:00<00:00, 8570.97 it/sec]
INFO - 16:24:58:     98%|█████████▊| 982/1000 [00:00<00:00, 8571.19 it/sec]
INFO - 16:24:58:     98%|█████████▊| 983/1000 [00:00<00:00, 8571.30 it/sec]
INFO - 16:24:58:     98%|█████████▊| 984/1000 [00:00<00:00, 8571.57 it/sec]
INFO - 16:24:58:     98%|█████████▊| 985/1000 [00:00<00:00, 8570.00 it/sec]
INFO - 16:24:58:     99%|█████████▊| 986/1000 [00:00<00:00, 8570.00 it/sec]
INFO - 16:24:58:     99%|█████████▊| 987/1000 [00:00<00:00, 8569.90 it/sec]
INFO - 16:24:58:     99%|█████████▉| 988/1000 [00:00<00:00, 8570.05 it/sec]
INFO - 16:24:58:     99%|█████████▉| 989/1000 [00:00<00:00, 8570.24 it/sec]
INFO - 16:24:58:     99%|█████████▉| 990/1000 [00:00<00:00, 8570.46 it/sec]
INFO - 16:24:58:     99%|█████████▉| 991/1000 [00:00<00:00, 8570.59 it/sec]
INFO - 16:24:58:     99%|█████████▉| 992/1000 [00:00<00:00, 8570.72 it/sec]
INFO - 16:24:58:     99%|█████████▉| 993/1000 [00:00<00:00, 8569.49 it/sec]
INFO - 16:24:58:     99%|█████████▉| 994/1000 [00:00<00:00, 8569.09 it/sec]
INFO - 16:24:58:    100%|█████████▉| 995/1000 [00:00<00:00, 8569.35 it/sec]
INFO - 16:24:58:    100%|█████████▉| 996/1000 [00:00<00:00, 8569.57 it/sec]
INFO - 16:24:58:    100%|█████████▉| 997/1000 [00:00<00:00, 8569.86 it/sec]
INFO - 16:24:58:    100%|█████████▉| 998/1000 [00:00<00:00, 8570.16 it/sec]
INFO - 16:24:58:    100%|█████████▉| 999/1000 [00:00<00:00, 8570.41 it/sec]
INFO - 16:24:58:    100%|██████████| 1000/1000 [00:00<00:00, 8570.04 it/sec]

and reset the EvaluationProblem to clear the database before refilling it:

problem.reset()

Finally, we can generate the same samples in a batch mode

SciPyDOE("MC").execute(
    problem, settings_model=MC_Settings(n_samples=1000, vectorize=True)
)
samples = problem.to_dataset()
INFO - 16:24:58: Evaluation problem:
INFO - 16:24:58:    Evaluate the functions: area
INFO - 16:24:58:    over the design space:
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | length |      0      |  None |      10     | float |
INFO - 16:24:58:       | width  |      0      |  None |      10     | float |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58: Running the algorithm MC:

check that these samples are equal to the reference ones:

assert_frame_equal(samples, samples_ref)

and that the function did receive a 2D array of shape (1000, 2):

assert function.last_input_data.shape == (1000, 2)

For a scenario#

In this second part of the example, we will apply batch sampling to the case of a scenario.

Vectorizing the user disciplines is more complicated than vectorizing functions because the user disciplines will be handled by multidisciplinary processes, including process disciplines, which only accept 1D input and output arrays and 2D Jacobian arrays. A user discipline must therefore always receive dictionaries of 1D arrays and return dictionaries of 1D arrays.

class AreaDiscipline(Discipline):
    """Compute the area of a rectangle."""

    def __init__(self) -> None:
        super().__init__()
        self.io.input_grammar.update_from_names(("length", "width"))
        self.io.output_grammar.update_from_names(("area",))

    def _run(self, input_data: StrKeyMapping) -> StrKeyMapping | None:
        length = input_data["length"]
        width = input_data["width"]
        return {"area": length * width}


area_discipline = AreaDiscipline()

In the case of this discipline, the expected forms of the input and output data are {"length": array([length_1, ..., length_n]), "width": array([width_1, ..., width_n])} and {"area": array([area_1, ..., area_n])} respectively.

Note that in the case of a d-length vectorial variable "x", the expected form would be {"x": array([x_1_1, ..., x_d_1, ..., x_1_n, ..., x_d_n])}.

DisciplinaryOpt formulation#

We use this discipline to illustrate the batch sampling feature with the DisciplinaryOpt formulation. Remember that this MDO formulation executes the disciplines in the order provided by the user. For a better illustration, we add a discipline to post-process the output data of AreaDiscipline:

class AreaIncreaser(Discipline):
    """Increase the area by a factor of 2."""

    def __init__(self) -> None:
        super().__init__()
        self.io.input_grammar.update_from_names(("area",))
        self.io.output_grammar.update_from_names(("final_area",))

    def _run(self, input_data: StrKeyMapping) -> StrKeyMapping | None:
        return {"final_area": 2.0 * input_data["area"]}


disciplines = [area_discipline, AreaIncreaser()]

Now, we can create and execute the scenario using batch sampling:

scenario = MDOScenario(
    disciplines,
    "final_area",
    design_space,
    formulation_settings_model=DisciplinaryOpt_Settings(),
)
scenario.execute(MC_Settings(n_samples=1000, vectorize=True))
samples = scenario.to_dataset(opt_naming=False)
INFO - 16:24:58: *** Start MDOScenario execution ***
INFO - 16:24:58: MDOScenario
INFO - 16:24:58:    Disciplines: AreaDiscipline AreaIncreaser
INFO - 16:24:58:    MDO formulation: DisciplinaryOpt
INFO - 16:24:58: Optimization problem:
INFO - 16:24:58:    minimize final_area(length, width)
INFO - 16:24:58:    with respect to length, width
INFO - 16:24:58:    over the design space:
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58:       | length |      0      |  None |      10     | float |
INFO - 16:24:58:       | width  |      0      |  None |      10     | float |
INFO - 16:24:58:       +--------+-------------+-------+-------------+-------+
INFO - 16:24:58: Solving optimization problem with algorithm MC:
INFO - 16:24:58: Optimization result:
INFO - 16:24:58:    Optimizer info:
INFO - 16:24:58:       Status: None
INFO - 16:24:58:       Message: None
INFO - 16:24:58:    Solution:
INFO - 16:24:58:       Objective: 0.006453354446785439
INFO - 16:24:58:       Design space:
INFO - 16:24:58:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:24:58:          | Name   | Lower bound |        Value         | Upper bound | Type  |
INFO - 16:24:58:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:24:58:          | length |      0      |  3.359702633489273   |      10     | float |
INFO - 16:24:58:          | width  |      0      | 0.000960405599956804 |      10     | float |
INFO - 16:24:58:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:24:58: *** End MDOScenario execution (time: 0:00:00.012502) ***

We can see that the samples are equal to the reference ones to within a factor of 2:

samples_ref.rename_variable("area", "final_area")
samples_ref.transform_data(lambda area: 2.0 * area, variable_names="final_area")
assert_frame_equal(samples, samples_ref)

and that the AreaDiscipline received and returned 1D arrays of size 1000:

assert area_discipline.io.data["length"].shape == (1000,)
assert area_discipline.io.data["width"].shape == (1000,)
assert area_discipline.io.data["area"].shape == (1000,)

MDF formulation#

To conclude this example, we will illustrate the applicability of batch sampling to the MDF formulation, including the computation of Jacobian data.

Let us consider the Sellar MDO problem whose disciplines have been vectorized (look at the source code of Sellar1, Sellar2 and SellarSystem, including the part related to the Jacobian computation with sparse arrays.).

We create a function defining and solving this MDO problem using either sequential or batch sampling:

def solve_sellar(
    use_batch_sampling: bool, eval_jac: bool
) -> tuple[OptimizationDataset, float]:
    """Solve the Sellar sampling problem.

    Args:
        use_batch_sampling: Whether to use batch sampling.
        eval_jac: Whether to sample the Jacobian functions.

    Returns:
        The samples, the execution time.
    """
    disciplines = [Sellar1(), Sellar2(), SellarSystem()]
    design_space = SellarDesignSpace(dtype="float")
    scenario = MDOScenario(
        disciplines, "obj", design_space, formulation_settings_model=MDF_Settings()
    )
    scenario.add_constraint("c_1")
    scenario.add_constraint("c_2")
    with Timer() as timer:
        scenario.execute(
            MC_Settings(n_samples=100, vectorize=use_batch_sampling, eval_jac=eval_jac)
        )

    return scenario.to_dataset(), timer.elapsed_time

solve it with both sampling modes:

samples_ref, time_ref = solve_sellar(False, False)
samples, time = solve_sellar(True, False)
   INFO - 16:24:58: *** Start MDOScenario execution ***
   INFO - 16:24:58: MDOScenario
   INFO - 16:24:58:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:24:58:    MDO formulation: MDF
   INFO - 16:24:58: Optimization problem:
   INFO - 16:24:58:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:24:58:    with respect to x_1, x_2, x_shared
   INFO - 16:24:58:    under the equality constraints
   INFO - 16:24:58:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:    over the design space:
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:24:58:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58: Solving optimization problem with algorithm MC:
   INFO - 16:24:58:      1%|          | 1/100 [00:00<00:00, 100.56 it/sec, feas=False, obj=191]
   INFO - 16:24:58:      2%|▏         | 2/100 [00:00<00:00, 147.78 it/sec, feas=False, obj=79.2]
   INFO - 16:24:58:      3%|▎         | 3/100 [00:00<00:00, 176.62 it/sec, feas=False, obj=69.1]
   INFO - 16:24:58:      4%|▍         | 4/100 [00:00<00:00, 197.59 it/sec, feas=False, obj=112]
   INFO - 16:24:58:      5%|▌         | 5/100 [00:00<00:00, 217.18 it/sec, feas=False, obj=62.9]
   INFO - 16:24:58:      6%|▌         | 6/100 [00:00<00:00, 227.97 it/sec, feas=False, obj=89.3]
   INFO - 16:24:58:      7%|▋         | 7/100 [00:00<00:00, 241.85 it/sec, feas=False, obj=162]
   INFO - 16:24:58:      8%|▊         | 8/100 [00:00<00:00, 247.30 it/sec, feas=False, obj=591]
   INFO - 16:24:58:      9%|▉         | 9/100 [00:00<00:00, 251.85 it/sec, feas=False, obj=127]
   INFO - 16:24:58:     10%|█         | 10/100 [00:00<00:00, 255.47 it/sec, feas=False, obj=80.9]
   INFO - 16:24:58:     11%|█         | 11/100 [00:00<00:00, 261.97 it/sec, feas=False, obj=131]
   INFO - 16:24:58:     12%|█▏        | 12/100 [00:00<00:00, 264.33 it/sec, feas=False, obj=119]
   INFO - 16:24:58:     13%|█▎        | 13/100 [00:00<00:00, 265.92 it/sec, feas=False, obj=98.4]
   INFO - 16:24:58:     14%|█▍        | 14/100 [00:00<00:00, 267.67 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:24:58:     15%|█▌        | 15/100 [00:00<00:00, 269.84 it/sec, feas=False, obj=220]
   INFO - 16:24:58:     16%|█▌        | 16/100 [00:00<00:00, 271.51 it/sec, feas=False, obj=30.3]
   INFO - 16:24:58:     17%|█▋        | 17/100 [00:00<00:00, 275.39 it/sec, feas=False, obj=130]
   INFO - 16:24:58:     18%|█▊        | 18/100 [00:00<00:00, 279.01 it/sec, feas=False, obj=274]
   INFO - 16:24:58:     19%|█▉        | 19/100 [00:00<00:00, 282.38 it/sec, feas=False, obj=111]
   INFO - 16:24:58:     20%|██        | 20/100 [00:00<00:00, 283.38 it/sec, feas=False, obj=194]
   INFO - 16:24:58:     21%|██        | 21/100 [00:00<00:00, 284.35 it/sec, feas=False, obj=87.1]
   INFO - 16:24:58:     22%|██▏       | 22/100 [00:00<00:00, 284.58 it/sec, feas=False, obj=121]
   INFO - 16:24:58:     23%|██▎       | 23/100 [00:00<00:00, 285.44 it/sec, feas=False, obj=44.7]
   INFO - 16:24:58:     24%|██▍       | 24/100 [00:00<00:00, 287.42 it/sec, feas=False, obj=49.7]
   INFO - 16:24:58:     25%|██▌       | 25/100 [00:00<00:00, 289.85 it/sec, feas=False, obj=62.2]
   INFO - 16:24:58:     26%|██▌       | 26/100 [00:00<00:00, 290.57 it/sec, feas=False, obj=131]
   INFO - 16:24:58:     27%|██▋       | 27/100 [00:00<00:00, 291.14 it/sec, feas=False, obj=89.7]
   INFO - 16:24:58:     28%|██▊       | 28/100 [00:00<00:00, 293.21 it/sec, feas=False, obj=142]
   INFO - 16:24:58:     29%|██▉       | 29/100 [00:00<00:00, 295.17 it/sec, feas=False, obj=85.4]
   INFO - 16:24:58:     30%|███       | 30/100 [00:00<00:00, 295.03 it/sec, feas=False, obj=54.1]
   INFO - 16:24:58:     31%|███       | 31/100 [00:00<00:00, 294.98 it/sec, feas=False, obj=138]
   INFO - 16:24:58:     32%|███▏      | 32/100 [00:00<00:00, 296.56 it/sec, feas=False, obj=107]
   INFO - 16:24:58:     33%|███▎      | 33/100 [00:00<00:00, 298.10 it/sec, feas=False, obj=45.6]
   INFO - 16:24:58:     34%|███▍      | 34/100 [00:00<00:00, 298.15 it/sec, feas=False, obj=211]
   INFO - 16:24:58:     35%|███▌      | 35/100 [00:00<00:00, 298.15 it/sec, feas=False, obj=149]
   INFO - 16:24:58:     36%|███▌      | 36/100 [00:00<00:00, 299.81 it/sec, feas=False, obj=89.2]
   INFO - 16:24:58:     37%|███▋      | 37/100 [00:00<00:00, 301.03 it/sec, feas=False, obj=125]
   INFO - 16:24:58:     38%|███▊      | 38/100 [00:00<00:00, 300.59 it/sec, feas=False, obj=125]
   INFO - 16:24:58:     39%|███▉      | 39/100 [00:00<00:00, 301.64 it/sec, feas=False, obj=156]
   INFO - 16:24:58:     40%|████      | 40/100 [00:00<00:00, 302.70 it/sec, feas=False, obj=65.3]
   INFO - 16:24:58:     41%|████      | 41/100 [00:00<00:00, 302.54 it/sec, feas=False, obj=134]
   INFO - 16:24:58:     42%|████▏     | 42/100 [00:00<00:00, 302.51 it/sec, feas=False, obj=63.5]
   INFO - 16:24:58:     43%|████▎     | 43/100 [00:00<00:00, 303.90 it/sec, feas=False, obj=137]
   INFO - 16:24:58:     44%|████▍     | 44/100 [00:00<00:00, 305.22 it/sec, feas=False, obj=77.2]
   INFO - 16:24:58:     45%|████▌     | 45/100 [00:00<00:00, 305.03 it/sec, feas=False, obj=116]
   INFO - 16:24:58:     46%|████▌     | 46/100 [00:00<00:00, 306.11 it/sec, feas=False, obj=134]
   INFO - 16:24:58:     47%|████▋     | 47/100 [00:00<00:00, 306.09 it/sec, feas=False, obj=110]
   INFO - 16:24:58:     48%|████▊     | 48/100 [00:00<00:00, 306.14 it/sec, feas=False, obj=165]
   INFO - 16:24:58:     49%|████▉     | 49/100 [00:00<00:00, 307.25 it/sec, feas=False, obj=189]
   INFO - 16:24:58:     50%|█████     | 50/100 [00:00<00:00, 308.19 it/sec, feas=False, obj=109]
   INFO - 16:24:58:     51%|█████     | 51/100 [00:00<00:00, 308.32 it/sec, feas=False, obj=95.5]
   INFO - 16:24:58:     52%|█████▏    | 52/100 [00:00<00:00, 309.05 it/sec, feas=False, obj=146]
   INFO - 16:24:58:     53%|█████▎    | 53/100 [00:00<00:00, 309.87 it/sec, feas=False, obj=165]
   INFO - 16:24:58:     54%|█████▍    | 54/100 [00:00<00:00, 310.59 it/sec, feas=False, obj=107]
   INFO - 16:24:58:     55%|█████▌    | 55/100 [00:00<00:00, 310.44 it/sec, feas=False, obj=25.3]
   INFO - 16:24:58:     56%|█████▌    | 56/100 [00:00<00:00, 311.18 it/sec, feas=False, obj=203]
   INFO - 16:24:58:     57%|█████▋    | 57/100 [00:00<00:00, 311.12 it/sec, feas=False, obj=305]
   INFO - 16:24:58:     58%|█████▊    | 58/100 [00:00<00:00, 311.87 it/sec, feas=False, obj=51.7]
   INFO - 16:24:58:     59%|█████▉    | 59/100 [00:00<00:00, 311.57 it/sec, feas=False, obj=212]
   INFO - 16:24:58:     60%|██████    | 60/100 [00:00<00:00, 312.11 it/sec, feas=False, obj=199]
   INFO - 16:24:58:     61%|██████    | 61/100 [00:00<00:00, 312.62 it/sec, feas=False, obj=93.1]
   INFO - 16:24:58:     62%|██████▏   | 62/100 [00:00<00:00, 313.19 it/sec, feas=False, obj=39.9]
   INFO - 16:24:58:     63%|██████▎   | 63/100 [00:00<00:00, 313.82 it/sec, feas=False, obj=112]
   INFO - 16:24:58:     64%|██████▍   | 64/100 [00:00<00:00, 314.22 it/sec, feas=False, obj=136]
   INFO - 16:24:58:     65%|██████▌   | 65/100 [00:00<00:00, 314.64 it/sec, feas=False, obj=40.7]
   INFO - 16:24:58:     66%|██████▌   | 66/100 [00:00<00:00, 314.36 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:24:58:     67%|██████▋   | 67/100 [00:00<00:00, 315.00 it/sec, feas=False, obj=160]
   INFO - 16:24:58:     68%|██████▊   | 68/100 [00:00<00:00, 315.56 it/sec, feas=False, obj=138]
   INFO - 16:24:58:     69%|██████▉   | 69/100 [00:00<00:00, 315.33 it/sec, feas=False, obj=899]
   INFO - 16:24:58:     70%|███████   | 70/100 [00:00<00:00, 316.05 it/sec, feas=False, obj=276]
   INFO - 16:24:58:     71%|███████   | 71/100 [00:00<00:00, 315.91 it/sec, feas=False, obj=44.1]
   INFO - 16:24:58:     72%|███████▏  | 72/100 [00:00<00:00, 315.47 it/sec, feas=False, obj=114]
   INFO - 16:24:58:     73%|███████▎  | 73/100 [00:00<00:00, 315.88 it/sec, feas=False, obj=596]
   INFO - 16:24:58:     74%|███████▍  | 74/100 [00:00<00:00, 315.55 it/sec, feas=False, obj=120]
   INFO - 16:24:58:     75%|███████▌  | 75/100 [00:00<00:00, 315.96 it/sec, feas=False, obj=407]
   INFO - 16:24:58:     76%|███████▌  | 76/100 [00:00<00:00, 315.72 it/sec, feas=False, obj=51.4]
   INFO - 16:24:58:     77%|███████▋  | 77/100 [00:00<00:00, 315.41 it/sec, feas=False, obj=148]
   INFO - 16:24:58:     78%|███████▊  | 78/100 [00:00<00:00, 315.04 it/sec, feas=False, obj=93.9]
   INFO - 16:24:58:     79%|███████▉  | 79/100 [00:00<00:00, 314.82 it/sec, feas=False, obj=72.1]
   INFO - 16:24:58:     80%|████████  | 80/100 [00:00<00:00, 315.43 it/sec, feas=False, obj=292]
   INFO - 16:24:58:     81%|████████  | 81/100 [00:00<00:00, 315.24 it/sec, feas=False, obj=98.6]
   INFO - 16:24:58:     82%|████████▏ | 82/100 [00:00<00:00, 315.07 it/sec, feas=False, obj=25]
   INFO - 16:24:58:     83%|████████▎ | 83/100 [00:00<00:00, 314.98 it/sec, feas=False, obj=33.1]
   INFO - 16:24:58:     84%|████████▍ | 84/100 [00:00<00:00, 314.78 it/sec, feas=False, obj=114]
   INFO - 16:24:58:     85%|████████▌ | 85/100 [00:00<00:00, 314.43 it/sec, feas=False, obj=115]
   INFO - 16:24:58:     86%|████████▌ | 86/100 [00:00<00:00, 314.88 it/sec, feas=False, obj=118]
   INFO - 16:24:58:     87%|████████▋ | 87/100 [00:00<00:00, 314.70 it/sec, feas=False, obj=67.1]
   INFO - 16:24:58:     88%|████████▊ | 88/100 [00:00<00:00, 315.07 it/sec, feas=False, obj=105]
   INFO - 16:24:58:     89%|████████▉ | 89/100 [00:00<00:00, 315.72 it/sec, feas=False, obj=92.6]
   INFO - 16:24:58:     90%|█████████ | 90/100 [00:00<00:00, 315.38 it/sec, feas=False, obj=98.1]
   INFO - 16:24:58:     91%|█████████ | 91/100 [00:00<00:00, 315.01 it/sec, feas=False, obj=133]
   INFO - 16:24:58:     92%|█████████▏| 92/100 [00:00<00:00, 315.32 it/sec, feas=False, obj=197]
   INFO - 16:24:58:     93%|█████████▎| 93/100 [00:00<00:00, 315.58 it/sec, feas=False, obj=82.6]
   INFO - 16:24:58:     94%|█████████▍| 94/100 [00:00<00:00, 315.33 it/sec, feas=False, obj=27.2]
   INFO - 16:24:58:     95%|█████████▌| 95/100 [00:00<00:00, 314.94 it/sec, feas=False, obj=126]
   INFO - 16:24:58:     96%|█████████▌| 96/100 [00:00<00:00, 314.74 it/sec, feas=False, obj=162]
   INFO - 16:24:58:     97%|█████████▋| 97/100 [00:00<00:00, 315.06 it/sec, feas=False, obj=45.7]
   INFO - 16:24:58:     98%|█████████▊| 98/100 [00:00<00:00, 314.89 it/sec, feas=False, obj=21.2]
   INFO - 16:24:58:     99%|█████████▉| 99/100 [00:00<00:00, 314.78 it/sec, feas=False, obj=342]
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:24:58:    100%|██████████| 100/100 [00:00<00:00, 312.61 it/sec, feas=False, obj=125]
   INFO - 16:24:58: Optimization result:
   INFO - 16:24:58:    Optimizer info:
   INFO - 16:24:58:       Status: None
   INFO - 16:24:58:       Message: None
   INFO - 16:24:58:    Solution:
WARNING - 16:24:58:       The solution is not feasible.
   INFO - 16:24:58:       Objective: 30.3484674529711
   INFO - 16:24:58:       Standardized constraints:
   INFO - 16:24:58:          c_1 = -12.474091450044018
   INFO - 16:24:58:          c_2 = -10.003409829769815
   INFO - 16:24:58:       Design space:
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:24:58:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:24:58:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:24:58:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58: *** End MDOScenario execution (time: 0:00:00.322789) ***
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:24:58: *** Start MDOScenario execution ***
   INFO - 16:24:58: MDOScenario
   INFO - 16:24:58:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:24:58:    MDO formulation: MDF
   INFO - 16:24:58: Optimization problem:
   INFO - 16:24:58:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:24:58:    with respect to x_1, x_2, x_shared
   INFO - 16:24:58:    under the equality constraints
   INFO - 16:24:58:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:    over the design space:
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:24:58:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58: Solving optimization problem with algorithm MC:
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:24:58: Optimization result:
   INFO - 16:24:58:    Optimizer info:
   INFO - 16:24:58:       Status: None
   INFO - 16:24:58:       Message: None
   INFO - 16:24:58:    Solution:
WARNING - 16:24:58:       The solution is not feasible.
   INFO - 16:24:58:       Objective: 30.348468138942017
   INFO - 16:24:58:       Standardized constraints:
   INFO - 16:24:58:          c_1 = [-12.47409214]
   INFO - 16:24:58:          c_2 = [-10.00340912]
   INFO - 16:24:58:       Design space:
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:24:58:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:24:58:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:24:58:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:24:58:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:58: *** End MDOScenario execution (time: 0:00:00.023397) ***
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:24:58: Optimization found no feasible point; the least infeasible point is selected.

check that the samples are equal:

assert_frame_equal(samples, samples_ref, rtol=1e-3)

and see a significant execution time reduction:

f"{round((time_ref - time) / time_ref * 100)} %"
'93 %'

The same type of results are obtained by evaluating the gradients.

samples_ref, time_ref = solve_sellar(False, True)
samples, time = solve_sellar(True, True)
assert_frame_equal(samples, samples_ref, rtol=1e-3)
   INFO - 16:24:58: *** Start MDOScenario execution ***
   INFO - 16:24:58: MDOScenario
   INFO - 16:24:58:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:24:58:    MDO formulation: MDF
   INFO - 16:24:58: Optimization problem:
   INFO - 16:24:58:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:24:58:    with respect to x_1, x_2, x_shared
   INFO - 16:24:58:    under the equality constraints
   INFO - 16:24:58:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:24:58:    over the design space:
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:24:58:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:24:58:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:24:58:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:58: Solving optimization problem with algorithm MC:
   INFO - 16:24:59:      1%|          | 1/100 [00:00<00:01, 57.78 it/sec, feas=False, obj=191]
   INFO - 16:24:59:      2%|▏         | 2/100 [00:00<00:01, 73.21 it/sec, feas=False, obj=79.2]
   INFO - 16:24:59:      3%|▎         | 3/100 [00:00<00:01, 81.82 it/sec, feas=False, obj=69.1]
   INFO - 16:24:59:      4%|▍         | 4/100 [00:00<00:01, 86.92 it/sec, feas=False, obj=112]
   INFO - 16:24:59:      5%|▌         | 5/100 [00:00<00:01, 90.74 it/sec, feas=False, obj=62.9]
   INFO - 16:24:59:      6%|▌         | 6/100 [00:00<00:01, 93.13 it/sec, feas=False, obj=89.3]
   INFO - 16:24:59:      7%|▋         | 7/100 [00:00<00:00, 95.61 it/sec, feas=False, obj=162]
   INFO - 16:24:59:      8%|▊         | 8/100 [00:00<00:00, 96.82 it/sec, feas=False, obj=591]
   INFO - 16:24:59:      9%|▉         | 9/100 [00:00<00:00, 97.92 it/sec, feas=False, obj=127]
   INFO - 16:24:59:     10%|█         | 10/100 [00:00<00:00, 98.83 it/sec, feas=False, obj=80.9]
   INFO - 16:24:59:     11%|█         | 11/100 [00:00<00:00, 100.02 it/sec, feas=False, obj=131]
   INFO - 16:24:59:     12%|█▏        | 12/100 [00:00<00:00, 100.51 it/sec, feas=False, obj=119]
   INFO - 16:24:59:     13%|█▎        | 13/100 [00:00<00:00, 100.93 it/sec, feas=False, obj=98.4]
   INFO - 16:24:59:     14%|█▍        | 14/100 [00:00<00:00, 101.32 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:24:59:     15%|█▌        | 15/100 [00:00<00:00, 101.63 it/sec, feas=False, obj=220]
   INFO - 16:24:59:     16%|█▌        | 16/100 [00:00<00:00, 101.83 it/sec, feas=False, obj=30.3]
   INFO - 16:24:59:     17%|█▋        | 17/100 [00:00<00:00, 102.46 it/sec, feas=False, obj=130]
   INFO - 16:24:59:     18%|█▊        | 18/100 [00:00<00:00, 103.05 it/sec, feas=False, obj=274]
   INFO - 16:24:59:     19%|█▉        | 19/100 [00:00<00:00, 103.51 it/sec, feas=False, obj=111]
   INFO - 16:24:59:     20%|██        | 20/100 [00:00<00:00, 103.70 it/sec, feas=False, obj=194]
   INFO - 16:24:59:     21%|██        | 21/100 [00:00<00:00, 103.89 it/sec, feas=False, obj=87.1]
   INFO - 16:24:59:     22%|██▏       | 22/100 [00:00<00:00, 104.07 it/sec, feas=False, obj=121]
   INFO - 16:24:59:     23%|██▎       | 23/100 [00:00<00:00, 104.27 it/sec, feas=False, obj=44.7]
   INFO - 16:24:59:     24%|██▍       | 24/100 [00:00<00:00, 104.68 it/sec, feas=False, obj=49.7]
   INFO - 16:24:59:     25%|██▌       | 25/100 [00:00<00:00, 104.90 it/sec, feas=False, obj=62.2]
   INFO - 16:24:59:     26%|██▌       | 26/100 [00:00<00:00, 105.00 it/sec, feas=False, obj=131]
   INFO - 16:24:59:     27%|██▋       | 27/100 [00:00<00:00, 105.10 it/sec, feas=False, obj=89.7]
   INFO - 16:24:59:     28%|██▊       | 28/100 [00:00<00:00, 105.38 it/sec, feas=False, obj=142]
   INFO - 16:24:59:     29%|██▉       | 29/100 [00:00<00:00, 105.56 it/sec, feas=False, obj=85.4]
   INFO - 16:24:59:     30%|███       | 30/100 [00:00<00:00, 105.59 it/sec, feas=False, obj=54.1]
   INFO - 16:24:59:     31%|███       | 31/100 [00:00<00:00, 105.55 it/sec, feas=False, obj=138]
   INFO - 16:24:59:     32%|███▏      | 32/100 [00:00<00:00, 105.75 it/sec, feas=False, obj=107]
   INFO - 16:24:59:     33%|███▎      | 33/100 [00:00<00:00, 106.01 it/sec, feas=False, obj=45.6]
   INFO - 16:24:59:     34%|███▍      | 34/100 [00:00<00:00, 106.05 it/sec, feas=False, obj=211]
   INFO - 16:24:59:     35%|███▌      | 35/100 [00:00<00:00, 106.10 it/sec, feas=False, obj=149]
   INFO - 16:24:59:     36%|███▌      | 36/100 [00:00<00:00, 106.31 it/sec, feas=False, obj=89.2]
   INFO - 16:24:59:     37%|███▋      | 37/100 [00:00<00:00, 106.55 it/sec, feas=False, obj=125]
   INFO - 16:24:59:     38%|███▊      | 38/100 [00:00<00:00, 106.55 it/sec, feas=False, obj=125]
   INFO - 16:24:59:     39%|███▉      | 39/100 [00:00<00:00, 106.69 it/sec, feas=False, obj=156]
   INFO - 16:24:59:     40%|████      | 40/100 [00:00<00:00, 106.84 it/sec, feas=False, obj=65.3]
   INFO - 16:24:59:     41%|████      | 41/100 [00:00<00:00, 106.85 it/sec, feas=False, obj=134]
   INFO - 16:24:59:     42%|████▏     | 42/100 [00:00<00:00, 106.87 it/sec, feas=False, obj=63.5]
   INFO - 16:24:59:     43%|████▎     | 43/100 [00:00<00:00, 107.02 it/sec, feas=False, obj=137]
   INFO - 16:24:59:     44%|████▍     | 44/100 [00:00<00:00, 107.10 it/sec, feas=False, obj=77.2]
   INFO - 16:24:59:     45%|████▌     | 45/100 [00:00<00:00, 107.09 it/sec, feas=False, obj=116]
   INFO - 16:24:59:     46%|████▌     | 46/100 [00:00<00:00, 107.23 it/sec, feas=False, obj=134]
   INFO - 16:24:59:     47%|████▋     | 47/100 [00:00<00:00, 107.11 it/sec, feas=False, obj=110]
   INFO - 16:24:59:     48%|████▊     | 48/100 [00:00<00:00, 107.09 it/sec, feas=False, obj=165]
   INFO - 16:24:59:     49%|████▉     | 49/100 [00:00<00:00, 107.21 it/sec, feas=False, obj=189]
   INFO - 16:24:59:     50%|█████     | 50/100 [00:00<00:00, 107.25 it/sec, feas=False, obj=109]
   INFO - 16:24:59:     51%|█████     | 51/100 [00:00<00:00, 107.27 it/sec, feas=False, obj=95.5]
   INFO - 16:24:59:     52%|█████▏    | 52/100 [00:00<00:00, 107.39 it/sec, feas=False, obj=146]
   INFO - 16:24:59:     53%|█████▎    | 53/100 [00:00<00:00, 107.53 it/sec, feas=False, obj=165]
   INFO - 16:24:59:     54%|█████▍    | 54/100 [00:00<00:00, 107.66 it/sec, feas=False, obj=107]
   INFO - 16:24:59:     55%|█████▌    | 55/100 [00:00<00:00, 107.66 it/sec, feas=False, obj=25.3]
   INFO - 16:24:59:     56%|█████▌    | 56/100 [00:00<00:00, 107.76 it/sec, feas=False, obj=203]
   INFO - 16:24:59:     57%|█████▋    | 57/100 [00:00<00:00, 107.73 it/sec, feas=False, obj=305]
   INFO - 16:24:59:     58%|█████▊    | 58/100 [00:00<00:00, 107.84 it/sec, feas=False, obj=51.7]
   INFO - 16:24:59:     59%|█████▉    | 59/100 [00:00<00:00, 107.83 it/sec, feas=False, obj=212]
   INFO - 16:24:59:     60%|██████    | 60/100 [00:00<00:00, 107.95 it/sec, feas=False, obj=199]
   INFO - 16:24:59:     61%|██████    | 61/100 [00:00<00:00, 108.05 it/sec, feas=False, obj=93.1]
   INFO - 16:24:59:     62%|██████▏   | 62/100 [00:00<00:00, 108.11 it/sec, feas=False, obj=39.9]
   INFO - 16:24:59:     63%|██████▎   | 63/100 [00:00<00:00, 108.19 it/sec, feas=False, obj=112]
   INFO - 16:24:59:     64%|██████▍   | 64/100 [00:00<00:00, 108.27 it/sec, feas=False, obj=136]
   INFO - 16:24:59:     65%|██████▌   | 65/100 [00:00<00:00, 108.35 it/sec, feas=False, obj=40.7]
   INFO - 16:24:59:     66%|██████▌   | 66/100 [00:00<00:00, 108.27 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:24:59:     67%|██████▋   | 67/100 [00:00<00:00, 108.34 it/sec, feas=False, obj=160]
   INFO - 16:24:59:     68%|██████▊   | 68/100 [00:00<00:00, 108.41 it/sec, feas=False, obj=138]
   INFO - 16:24:59:     69%|██████▉   | 69/100 [00:00<00:00, 108.40 it/sec, feas=False, obj=899]
   INFO - 16:24:59:     70%|███████   | 70/100 [00:00<00:00, 108.48 it/sec, feas=False, obj=276]
   INFO - 16:24:59:     71%|███████   | 71/100 [00:00<00:00, 108.49 it/sec, feas=False, obj=44.1]
   INFO - 16:24:59:     72%|███████▏  | 72/100 [00:00<00:00, 108.50 it/sec, feas=False, obj=114]
   INFO - 16:24:59:     73%|███████▎  | 73/100 [00:00<00:00, 108.56 it/sec, feas=False, obj=596]
   INFO - 16:24:59:     74%|███████▍  | 74/100 [00:00<00:00, 108.53 it/sec, feas=False, obj=120]
   INFO - 16:24:59:     75%|███████▌  | 75/100 [00:00<00:00, 108.59 it/sec, feas=False, obj=407]
   INFO - 16:24:59:     76%|███████▌  | 76/100 [00:00<00:00, 108.59 it/sec, feas=False, obj=51.4]
   INFO - 16:24:59:     77%|███████▋  | 77/100 [00:00<00:00, 108.57 it/sec, feas=False, obj=148]
   INFO - 16:24:59:     78%|███████▊  | 78/100 [00:00<00:00, 108.58 it/sec, feas=False, obj=93.9]
   INFO - 16:24:59:     79%|███████▉  | 79/100 [00:00<00:00, 108.57 it/sec, feas=False, obj=72.1]
   INFO - 16:24:59:     80%|████████  | 80/100 [00:00<00:00, 108.60 it/sec, feas=False, obj=292]
   INFO - 16:24:59:     81%|████████  | 81/100 [00:00<00:00, 108.55 it/sec, feas=False, obj=98.6]
   INFO - 16:24:59:     82%|████████▏ | 82/100 [00:00<00:00, 108.52 it/sec, feas=False, obj=25]
   INFO - 16:24:59:     83%|████████▎ | 83/100 [00:00<00:00, 108.48 it/sec, feas=False, obj=33.1]
   INFO - 16:24:59:     84%|████████▍ | 84/100 [00:00<00:00, 108.38 it/sec, feas=False, obj=114]
   INFO - 16:24:59:     85%|████████▌ | 85/100 [00:00<00:00, 108.36 it/sec, feas=False, obj=115]
   INFO - 16:24:59:     86%|████████▌ | 86/100 [00:00<00:00, 108.40 it/sec, feas=False, obj=118]
   INFO - 16:24:59:     87%|████████▋ | 87/100 [00:00<00:00, 108.35 it/sec, feas=False, obj=67.1]
   INFO - 16:24:59:     88%|████████▊ | 88/100 [00:00<00:00, 108.39 it/sec, feas=False, obj=105]
   INFO - 16:24:59:     89%|████████▉ | 89/100 [00:00<00:00, 108.44 it/sec, feas=False, obj=92.6]
   INFO - 16:24:59:     90%|█████████ | 90/100 [00:00<00:00, 108.11 it/sec, feas=False, obj=98.1]
   INFO - 16:24:59:     91%|█████████ | 91/100 [00:00<00:00, 107.92 it/sec, feas=False, obj=133]
   INFO - 16:24:59:     92%|█████████▏| 92/100 [00:00<00:00, 107.97 it/sec, feas=False, obj=197]
   INFO - 16:24:59:     93%|█████████▎| 93/100 [00:00<00:00, 107.80 it/sec, feas=False, obj=82.6]
   INFO - 16:24:59:     94%|█████████▍| 94/100 [00:00<00:00, 107.79 it/sec, feas=False, obj=27.2]
   INFO - 16:24:59:     95%|█████████▌| 95/100 [00:00<00:00, 107.79 it/sec, feas=False, obj=126]
   INFO - 16:24:59:     96%|█████████▌| 96/100 [00:00<00:00, 107.79 it/sec, feas=False, obj=162]
   INFO - 16:24:59:     97%|█████████▋| 97/100 [00:00<00:00, 107.83 it/sec, feas=False, obj=45.7]
   INFO - 16:24:59:     98%|█████████▊| 98/100 [00:00<00:00, 107.81 it/sec, feas=False, obj=21.2]
   INFO - 16:24:59:     99%|█████████▉| 99/100 [00:00<00:00, 107.82 it/sec, feas=False, obj=342]
WARNING - 16:24:59: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:24:59:    100%|██████████| 100/100 [00:00<00:00, 107.58 it/sec, feas=False, obj=125]
   INFO - 16:24:59: Optimization result:
   INFO - 16:24:59:    Optimizer info:
   INFO - 16:24:59:       Status: None
   INFO - 16:24:59:       Message: None
   INFO - 16:24:59:    Solution:
WARNING - 16:24:59:       The solution is not feasible.
   INFO - 16:24:59:       Objective: 30.3484674529711
   INFO - 16:24:59:       Standardized constraints:
   INFO - 16:24:59:          c_1 = -12.474091450044018
   INFO - 16:24:59:          c_2 = -10.003409829769815
   INFO - 16:24:59:       Design space:
   INFO - 16:24:59:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:59:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:24:59:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:59:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:24:59:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:24:59:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:24:59:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:24:59:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:24:59: *** End MDOScenario execution (time: 0:00:00.932318) ***
WARNING - 16:24:59: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:24:59: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:24:59: *** Start MDOScenario execution ***
   INFO - 16:24:59: MDOScenario
   INFO - 16:24:59:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:24:59:    MDO formulation: MDF
   INFO - 16:24:59: Optimization problem:
   INFO - 16:24:59:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:24:59:    with respect to x_1, x_2, x_shared
   INFO - 16:24:59:    under the equality constraints
   INFO - 16:24:59:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:24:59:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:24:59:    over the design space:
   INFO - 16:24:59:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:59:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:24:59:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:59:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:24:59:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:24:59:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:24:59:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:24:59:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:24:59: Solving optimization problem with algorithm MC:
WARNING - 16:25:00: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:00: Optimization result:
   INFO - 16:25:00:    Optimizer info:
   INFO - 16:25:00:       Status: None
   INFO - 16:25:00:       Message: None
   INFO - 16:25:00:    Solution:
WARNING - 16:25:00:       The solution is not feasible.
   INFO - 16:25:00:       Objective: 30.348468138942017
   INFO - 16:25:00:       Standardized constraints:
   INFO - 16:25:00:          c_1 = [-12.47409214]
   INFO - 16:25:00:          c_2 = [-10.00340912]
   INFO - 16:25:00:       Design space:
   INFO - 16:25:00:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:00:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:25:00:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:00:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:25:00:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:25:00:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:25:00:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:25:00:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:00: *** End MDOScenario execution (time: 0:00:00.309145) ***
WARNING - 16:25:00: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:25:00: Optimization found no feasible point; the least infeasible point is selected.

However, the gain is slightly lower (but still represents a significant gain!), which may be counterintuitive and will be the subject of future investigations:

f"{round((time_ref - time) / time_ref * 100)} %"
'67 %'

Total running time of the script: (0 minutes 2.061 seconds)

Gallery generated by Sphinx-Gallery