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:17:32: Evaluation problem:
INFO - 16:17:32:    Evaluate the functions: area
INFO - 16:17:32:    over the design space:
INFO - 16:17:32:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:32:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:17:32:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:32:       | length |      0      |  None |      10     | float |
INFO - 16:17:32:       | width  |      0      |  None |      10     | float |
INFO - 16:17:32:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:32: Running the algorithm MC:
INFO - 16:17:32:      1%|          | 6/1000 [00:00<00:00, 7820.33 it/sec]
INFO - 16:17:32:      1%|          | 7/1000 [00:00<00:00, 6650.09 it/sec]
INFO - 16:17:32:      1%|          | 8/1000 [00:00<00:00, 5850.82 it/sec]
INFO - 16:17:32:      1%|          | 9/1000 [00:00<00:00, 5368.14 it/sec]
INFO - 16:17:32:      1%|          | 10/1000 [00:00<00:00, 5032.76 it/sec]
INFO - 16:17:32:      1%|          | 11/1000 [00:00<00:00, 4835.69 it/sec]
INFO - 16:17:32:      1%|          | 12/1000 [00:00<00:00, 4657.75 it/sec]
INFO - 16:17:32:      1%|▏         | 13/1000 [00:00<00:00, 4505.16 it/sec]
INFO - 16:17:32:      1%|▏         | 14/1000 [00:00<00:00, 4370.04 it/sec]
INFO - 16:17:32:      2%|▏         | 15/1000 [00:00<00:00, 4313.35 it/sec]
INFO - 16:17:32:      2%|▏         | 16/1000 [00:00<00:00, 4200.87 it/sec]
INFO - 16:17:32:      2%|▏         | 17/1000 [00:00<00:00, 4166.12 it/sec]
INFO - 16:17:32:      2%|▏         | 18/1000 [00:00<00:00, 4104.24 it/sec]
INFO - 16:17:32:      2%|▏         | 19/1000 [00:00<00:00, 4048.56 it/sec]
INFO - 16:17:32:      2%|▏         | 20/1000 [00:00<00:00, 4014.46 it/sec]
INFO - 16:17:32:      2%|▏         | 21/1000 [00:00<00:00, 3993.85 it/sec]
INFO - 16:17:32:      2%|▏         | 22/1000 [00:00<00:00, 3953.84 it/sec]
INFO - 16:17:32:      2%|▏         | 23/1000 [00:00<00:00, 3913.71 it/sec]
INFO - 16:17:32:      2%|▏         | 24/1000 [00:00<00:00, 3884.36 it/sec]
INFO - 16:17:32:      2%|▎         | 25/1000 [00:00<00:00, 3873.57 it/sec]
INFO - 16:17:32:      3%|▎         | 26/1000 [00:00<00:00, 3834.59 it/sec]
INFO - 16:17:32:      3%|▎         | 27/1000 [00:00<00:00, 3827.83 it/sec]
INFO - 16:17:32:      3%|▎         | 28/1000 [00:00<00:00, 3807.07 it/sec]
INFO - 16:17:32:      3%|▎         | 29/1000 [00:00<00:00, 3792.32 it/sec]
INFO - 16:17:32:      3%|▎         | 30/1000 [00:00<00:00, 3778.99 it/sec]
INFO - 16:17:32:      3%|▎         | 31/1000 [00:00<00:00, 3768.79 it/sec]
INFO - 16:17:32:      3%|▎         | 32/1000 [00:00<00:00, 3752.24 it/sec]
INFO - 16:17:32:      3%|▎         | 33/1000 [00:00<00:00, 3738.14 it/sec]
INFO - 16:17:32:      3%|▎         | 34/1000 [00:00<00:00, 3722.33 it/sec]
INFO - 16:17:32:      4%|▎         | 35/1000 [00:00<00:00, 3720.14 it/sec]
INFO - 16:17:32:      4%|▎         | 36/1000 [00:00<00:00, 3696.24 it/sec]
INFO - 16:17:32:      4%|▎         | 37/1000 [00:00<00:00, 3689.45 it/sec]
INFO - 16:17:32:      4%|▍         | 38/1000 [00:00<00:00, 3687.13 it/sec]
INFO - 16:17:32:      4%|▍         | 39/1000 [00:00<00:00, 3666.76 it/sec]
INFO - 16:17:32:      4%|▍         | 40/1000 [00:00<00:00, 3665.55 it/sec]
INFO - 16:17:32:      4%|▍         | 41/1000 [00:00<00:00, 3655.05 it/sec]
INFO - 16:17:32:      4%|▍         | 42/1000 [00:00<00:00, 3655.24 it/sec]
INFO - 16:17:32:      4%|▍         | 43/1000 [00:00<00:00, 3637.80 it/sec]
INFO - 16:17:32:      4%|▍         | 44/1000 [00:00<00:00, 3633.72 it/sec]
INFO - 16:17:32:      4%|▍         | 45/1000 [00:00<00:00, 3624.39 it/sec]
INFO - 16:17:32:      5%|▍         | 46/1000 [00:00<00:00, 3619.24 it/sec]
INFO - 16:17:32:      5%|▍         | 47/1000 [00:00<00:00, 3617.11 it/sec]
INFO - 16:17:32:      5%|▍         | 48/1000 [00:00<00:00, 3617.99 it/sec]
INFO - 16:17:32:      5%|▍         | 49/1000 [00:00<00:00, 3607.66 it/sec]
INFO - 16:17:32:      5%|▌         | 50/1000 [00:00<00:00, 3597.17 it/sec]
INFO - 16:17:32:      5%|▌         | 51/1000 [00:00<00:00, 3589.93 it/sec]
INFO - 16:17:32:      5%|▌         | 52/1000 [00:00<00:00, 3585.23 it/sec]
INFO - 16:17:32:      5%|▌         | 53/1000 [00:00<00:00, 3568.02 it/sec]
INFO - 16:17:32:      5%|▌         | 54/1000 [00:00<00:00, 3568.50 it/sec]
INFO - 16:17:32:      6%|▌         | 55/1000 [00:00<00:00, 3562.84 it/sec]
INFO - 16:17:32:      6%|▌         | 56/1000 [00:00<00:00, 3558.70 it/sec]
INFO - 16:17:32:      6%|▌         | 57/1000 [00:00<00:00, 3558.36 it/sec]
INFO - 16:17:32:      6%|▌         | 58/1000 [00:00<00:00, 3554.55 it/sec]
INFO - 16:17:32:      6%|▌         | 59/1000 [00:00<00:00, 3546.40 it/sec]
INFO - 16:17:32:      6%|▌         | 60/1000 [00:00<00:00, 3547.33 it/sec]
INFO - 16:17:32:      6%|▌         | 61/1000 [00:00<00:00, 3543.27 it/sec]
INFO - 16:17:32:      6%|▌         | 62/1000 [00:00<00:00, 3544.80 it/sec]
INFO - 16:17:32:      6%|▋         | 63/1000 [00:00<00:00, 3534.05 it/sec]
INFO - 16:17:32:      6%|▋         | 64/1000 [00:00<00:00, 3535.35 it/sec]
INFO - 16:17:32:      6%|▋         | 65/1000 [00:00<00:00, 3532.11 it/sec]
INFO - 16:17:32:      7%|▋         | 66/1000 [00:00<00:00, 3528.35 it/sec]
INFO - 16:17:32:      7%|▋         | 67/1000 [00:00<00:00, 3528.21 it/sec]
INFO - 16:17:32:      7%|▋         | 68/1000 [00:00<00:00, 3529.20 it/sec]
INFO - 16:17:32:      7%|▋         | 69/1000 [00:00<00:00, 3525.14 it/sec]
INFO - 16:17:32:      7%|▋         | 70/1000 [00:00<00:00, 3521.92 it/sec]
INFO - 16:17:32:      7%|▋         | 71/1000 [00:00<00:00, 3517.84 it/sec]
INFO - 16:17:32:      7%|▋         | 72/1000 [00:00<00:00, 3519.53 it/sec]
INFO - 16:17:32:      7%|▋         | 73/1000 [00:00<00:00, 3513.42 it/sec]
INFO - 16:17:32:      7%|▋         | 74/1000 [00:00<00:00, 3515.56 it/sec]
INFO - 16:17:32:      8%|▊         | 75/1000 [00:00<00:00, 3512.86 it/sec]
INFO - 16:17:32:      8%|▊         | 76/1000 [00:00<00:00, 3511.85 it/sec]
INFO - 16:17:32:      8%|▊         | 77/1000 [00:00<00:00, 3508.89 it/sec]
INFO - 16:17:32:      8%|▊         | 78/1000 [00:00<00:00, 3508.94 it/sec]
INFO - 16:17:32:      8%|▊         | 79/1000 [00:00<00:00, 3506.94 it/sec]
INFO - 16:17:32:      8%|▊         | 80/1000 [00:00<00:00, 3504.38 it/sec]
INFO - 16:17:32:      8%|▊         | 81/1000 [00:00<00:00, 3501.59 it/sec]
INFO - 16:17:32:      8%|▊         | 82/1000 [00:00<00:00, 3503.12 it/sec]
INFO - 16:17:32:      8%|▊         | 83/1000 [00:00<00:00, 3498.38 it/sec]
INFO - 16:17:32:      8%|▊         | 84/1000 [00:00<00:00, 3500.53 it/sec]
INFO - 16:17:32:      8%|▊         | 85/1000 [00:00<00:00, 3498.75 it/sec]
INFO - 16:17:32:      9%|▊         | 86/1000 [00:00<00:00, 3498.64 it/sec]
INFO - 16:17:32:      9%|▊         | 87/1000 [00:00<00:00, 3495.55 it/sec]
INFO - 16:17:32:      9%|▉         | 88/1000 [00:00<00:00, 3495.15 it/sec]
INFO - 16:17:32:      9%|▉         | 89/1000 [00:00<00:00, 3493.62 it/sec]
INFO - 16:17:32:      9%|▉         | 90/1000 [00:00<00:00, 3491.02 it/sec]
INFO - 16:17:32:      9%|▉         | 91/1000 [00:00<00:00, 3490.52 it/sec]
INFO - 16:17:32:      9%|▉         | 92/1000 [00:00<00:00, 3492.03 it/sec]
INFO - 16:17:32:      9%|▉         | 93/1000 [00:00<00:00, 3487.50 it/sec]
INFO - 16:17:32:      9%|▉         | 94/1000 [00:00<00:00, 3488.51 it/sec]
INFO - 16:17:32:     10%|▉         | 95/1000 [00:00<00:00, 3486.26 it/sec]
INFO - 16:17:32:     10%|▉         | 96/1000 [00:00<00:00, 3487.44 it/sec]
INFO - 16:17:32:     10%|▉         | 97/1000 [00:00<00:00, 3482.57 it/sec]
INFO - 16:17:32:     10%|▉         | 98/1000 [00:00<00:00, 3483.79 it/sec]
INFO - 16:17:32:     10%|▉         | 99/1000 [00:00<00:00, 3482.12 it/sec]
INFO - 16:17:32:     10%|█         | 100/1000 [00:00<00:00, 3481.27 it/sec]
INFO - 16:17:32:     10%|█         | 101/1000 [00:00<00:00, 3481.78 it/sec]
INFO - 16:17:32:     10%|█         | 102/1000 [00:00<00:00, 3481.12 it/sec]
INFO - 16:17:32:     10%|█         | 103/1000 [00:00<00:00, 3483.08 it/sec]
INFO - 16:17:32:     10%|█         | 104/1000 [00:00<00:00, 3479.11 it/sec]
INFO - 16:17:32:     10%|█         | 105/1000 [00:00<00:00, 3480.23 it/sec]
INFO - 16:17:32:     11%|█         | 106/1000 [00:00<00:00, 3477.92 it/sec]
INFO - 16:17:32:     11%|█         | 107/1000 [00:00<00:00, 3477.19 it/sec]
INFO - 16:17:32:     11%|█         | 108/1000 [00:00<00:00, 3476.10 it/sec]
INFO - 16:17:32:     11%|█         | 109/1000 [00:00<00:00, 3477.89 it/sec]
INFO - 16:17:32:     11%|█         | 110/1000 [00:00<00:00, 3474.62 it/sec]
INFO - 16:17:32:     11%|█         | 111/1000 [00:00<00:00, 3476.41 it/sec]
INFO - 16:17:32:     11%|█         | 112/1000 [00:00<00:00, 3474.96 it/sec]
INFO - 16:17:32:     11%|█▏        | 113/1000 [00:00<00:00, 3476.92 it/sec]
INFO - 16:17:32:     11%|█▏        | 114/1000 [00:00<00:00, 3472.64 it/sec]
INFO - 16:17:32:     12%|█▏        | 115/1000 [00:00<00:00, 3474.46 it/sec]
INFO - 16:17:32:     12%|█▏        | 116/1000 [00:00<00:00, 3464.98 it/sec]
INFO - 16:17:32:     12%|█▏        | 117/1000 [00:00<00:00, 3460.57 it/sec]
INFO - 16:17:32:     12%|█▏        | 118/1000 [00:00<00:00, 3457.84 it/sec]
INFO - 16:17:32:     12%|█▏        | 119/1000 [00:00<00:00, 3454.30 it/sec]
INFO - 16:17:32:     12%|█▏        | 120/1000 [00:00<00:00, 3451.51 it/sec]
INFO - 16:17:32:     12%|█▏        | 121/1000 [00:00<00:00, 3450.37 it/sec]
INFO - 16:17:32:     12%|█▏        | 122/1000 [00:00<00:00, 3451.52 it/sec]
INFO - 16:17:32:     12%|█▏        | 123/1000 [00:00<00:00, 3447.72 it/sec]
INFO - 16:17:32:     12%|█▏        | 124/1000 [00:00<00:00, 3447.98 it/sec]
INFO - 16:17:32:     12%|█▎        | 125/1000 [00:00<00:00, 3445.75 it/sec]
INFO - 16:17:32:     13%|█▎        | 126/1000 [00:00<00:00, 3447.42 it/sec]
INFO - 16:17:32:     13%|█▎        | 127/1000 [00:00<00:00, 3443.82 it/sec]
INFO - 16:17:32:     13%|█▎        | 128/1000 [00:00<00:00, 3445.19 it/sec]
INFO - 16:17:32:     13%|█▎        | 129/1000 [00:00<00:00, 3443.27 it/sec]
INFO - 16:17:32:     13%|█▎        | 130/1000 [00:00<00:00, 3438.95 it/sec]
INFO - 16:17:32:     13%|█▎        | 131/1000 [00:00<00:00, 3419.64 it/sec]
INFO - 16:17:32:     13%|█▎        | 132/1000 [00:00<00:00, 3420.79 it/sec]
INFO - 16:17:32:     13%|█▎        | 133/1000 [00:00<00:00, 3417.08 it/sec]
INFO - 16:17:32:     13%|█▎        | 134/1000 [00:00<00:00, 3416.95 it/sec]
INFO - 16:17:32:     14%|█▎        | 135/1000 [00:00<00:00, 3415.54 it/sec]
INFO - 16:17:32:     14%|█▎        | 136/1000 [00:00<00:00, 3415.09 it/sec]
INFO - 16:17:32:     14%|█▎        | 137/1000 [00:00<00:00, 3414.08 it/sec]
INFO - 16:17:32:     14%|█▍        | 138/1000 [00:00<00:00, 3415.40 it/sec]
INFO - 16:17:32:     14%|█▍        | 139/1000 [00:00<00:00, 3412.36 it/sec]
INFO - 16:17:32:     14%|█▍        | 140/1000 [00:00<00:00, 3413.99 it/sec]
INFO - 16:17:32:     14%|█▍        | 141/1000 [00:00<00:00, 3413.55 it/sec]
INFO - 16:17:32:     14%|█▍        | 142/1000 [00:00<00:00, 3415.28 it/sec]
INFO - 16:17:32:     14%|█▍        | 143/1000 [00:00<00:00, 3412.62 it/sec]
INFO - 16:17:32:     14%|█▍        | 144/1000 [00:00<00:00, 3412.22 it/sec]
INFO - 16:17:32:     14%|█▍        | 145/1000 [00:00<00:00, 3411.46 it/sec]
INFO - 16:17:32:     15%|█▍        | 146/1000 [00:00<00:00, 3410.93 it/sec]
INFO - 16:17:32:     15%|█▍        | 147/1000 [00:00<00:00, 3410.06 it/sec]
INFO - 16:17:32:     15%|█▍        | 148/1000 [00:00<00:00, 3411.07 it/sec]
INFO - 16:17:32:     15%|█▍        | 149/1000 [00:00<00:00, 3408.96 it/sec]
INFO - 16:17:32:     15%|█▌        | 150/1000 [00:00<00:00, 3409.45 it/sec]
INFO - 16:17:32:     15%|█▌        | 151/1000 [00:00<00:00, 3409.10 it/sec]
INFO - 16:17:32:     15%|█▌        | 152/1000 [00:00<00:00, 3410.30 it/sec]
INFO - 16:17:32:     15%|█▌        | 153/1000 [00:00<00:00, 3408.79 it/sec]
INFO - 16:17:32:     15%|█▌        | 154/1000 [00:00<00:00, 3410.44 it/sec]
INFO - 16:17:32:     16%|█▌        | 155/1000 [00:00<00:00, 3409.90 it/sec]
INFO - 16:17:32:     16%|█▌        | 156/1000 [00:00<00:00, 3409.15 it/sec]
INFO - 16:17:32:     16%|█▌        | 157/1000 [00:00<00:00, 3409.09 it/sec]
INFO - 16:17:32:     16%|█▌        | 158/1000 [00:00<00:00, 3409.27 it/sec]
INFO - 16:17:32:     16%|█▌        | 159/1000 [00:00<00:00, 3407.11 it/sec]
INFO - 16:17:32:     16%|█▌        | 160/1000 [00:00<00:00, 3408.18 it/sec]
INFO - 16:17:32:     16%|█▌        | 161/1000 [00:00<00:00, 3406.85 it/sec]
INFO - 16:17:32:     16%|█▌        | 162/1000 [00:00<00:00, 3406.43 it/sec]
INFO - 16:17:32:     16%|█▋        | 163/1000 [00:00<00:00, 3404.99 it/sec]
INFO - 16:17:32:     16%|█▋        | 164/1000 [00:00<00:00, 3406.12 it/sec]
INFO - 16:17:32:     16%|█▋        | 165/1000 [00:00<00:00, 3405.41 it/sec]
INFO - 16:17:32:     17%|█▋        | 166/1000 [00:00<00:00, 3405.08 it/sec]
INFO - 16:17:32:     17%|█▋        | 167/1000 [00:00<00:00, 3403.44 it/sec]
INFO - 16:17:32:     17%|█▋        | 168/1000 [00:00<00:00, 3404.91 it/sec]
INFO - 16:17:32:     17%|█▋        | 169/1000 [00:00<00:00, 3402.21 it/sec]
INFO - 16:17:32:     17%|█▋        | 170/1000 [00:00<00:00, 3402.52 it/sec]
INFO - 16:17:32:     17%|█▋        | 171/1000 [00:00<00:00, 3401.43 it/sec]
INFO - 16:17:32:     17%|█▋        | 172/1000 [00:00<00:00, 3402.86 it/sec]
INFO - 16:17:32:     17%|█▋        | 173/1000 [00:00<00:00, 3401.23 it/sec]
INFO - 16:17:32:     17%|█▋        | 174/1000 [00:00<00:00, 3402.63 it/sec]
INFO - 16:17:32:     18%|█▊        | 175/1000 [00:00<00:00, 3402.20 it/sec]
INFO - 16:17:32:     18%|█▊        | 176/1000 [00:00<00:00, 3402.05 it/sec]
INFO - 16:17:32:     18%|█▊        | 177/1000 [00:00<00:00, 3402.53 it/sec]
INFO - 16:17:32:     18%|█▊        | 178/1000 [00:00<00:00, 3402.50 it/sec]
INFO - 16:17:32:     18%|█▊        | 179/1000 [00:00<00:00, 3399.98 it/sec]
INFO - 16:17:32:     18%|█▊        | 180/1000 [00:00<00:00, 3400.11 it/sec]
INFO - 16:17:32:     18%|█▊        | 181/1000 [00:00<00:00, 3399.89 it/sec]
INFO - 16:17:32:     18%|█▊        | 182/1000 [00:00<00:00, 3401.10 it/sec]
INFO - 16:17:32:     18%|█▊        | 183/1000 [00:00<00:00, 3398.36 it/sec]
INFO - 16:17:32:     18%|█▊        | 184/1000 [00:00<00:00, 3399.79 it/sec]
INFO - 16:17:32:     18%|█▊        | 185/1000 [00:00<00:00, 3399.22 it/sec]
INFO - 16:17:32:     19%|█▊        | 186/1000 [00:00<00:00, 3399.14 it/sec]
INFO - 16:17:32:     19%|█▊        | 187/1000 [00:00<00:00, 3398.79 it/sec]
INFO - 16:17:32:     19%|█▉        | 188/1000 [00:00<00:00, 3400.08 it/sec]
INFO - 16:17:32:     19%|█▉        | 189/1000 [00:00<00:00, 3399.43 it/sec]
INFO - 16:17:32:     19%|█▉        | 190/1000 [00:00<00:00, 3398.88 it/sec]
INFO - 16:17:32:     19%|█▉        | 191/1000 [00:00<00:00, 3398.27 it/sec]
INFO - 16:17:32:     19%|█▉        | 192/1000 [00:00<00:00, 3399.45 it/sec]
INFO - 16:17:32:     19%|█▉        | 193/1000 [00:00<00:00, 3397.57 it/sec]
INFO - 16:17:32:     19%|█▉        | 194/1000 [00:00<00:00, 3398.94 it/sec]
INFO - 16:17:32:     20%|█▉        | 195/1000 [00:00<00:00, 3398.38 it/sec]
INFO - 16:17:32:     20%|█▉        | 196/1000 [00:00<00:00, 3398.08 it/sec]
INFO - 16:17:32:     20%|█▉        | 197/1000 [00:00<00:00, 3397.86 it/sec]
INFO - 16:17:32:     20%|█▉        | 198/1000 [00:00<00:00, 3399.14 it/sec]
INFO - 16:17:32:     20%|█▉        | 199/1000 [00:00<00:00, 3398.69 it/sec]
INFO - 16:17:32:     20%|██        | 200/1000 [00:00<00:00, 3398.26 it/sec]
INFO - 16:17:32:     20%|██        | 201/1000 [00:00<00:00, 3397.79 it/sec]
INFO - 16:17:32:     20%|██        | 202/1000 [00:00<00:00, 3399.02 it/sec]
INFO - 16:17:32:     20%|██        | 203/1000 [00:00<00:00, 3397.61 it/sec]
INFO - 16:17:32:     20%|██        | 204/1000 [00:00<00:00, 3398.42 it/sec]
INFO - 16:17:32:     20%|██        | 205/1000 [00:00<00:00, 3398.78 it/sec]
INFO - 16:17:32:     21%|██        | 206/1000 [00:00<00:00, 3397.19 it/sec]
INFO - 16:17:32:     21%|██        | 207/1000 [00:00<00:00, 3398.34 it/sec]
INFO - 16:17:32:     21%|██        | 208/1000 [00:00<00:00, 3398.10 it/sec]
INFO - 16:17:32:     21%|██        | 209/1000 [00:00<00:00, 3399.03 it/sec]
INFO - 16:17:32:     21%|██        | 210/1000 [00:00<00:00, 3395.69 it/sec]
INFO - 16:17:32:     21%|██        | 211/1000 [00:00<00:00, 3396.59 it/sec]
INFO - 16:17:32:     21%|██        | 212/1000 [00:00<00:00, 3395.76 it/sec]
INFO - 16:17:32:     21%|██▏       | 213/1000 [00:00<00:00, 3394.86 it/sec]
INFO - 16:17:32:     21%|██▏       | 214/1000 [00:00<00:00, 3395.22 it/sec]
INFO - 16:17:32:     22%|██▏       | 215/1000 [00:00<00:00, 3394.09 it/sec]
INFO - 16:17:32:     22%|██▏       | 216/1000 [00:00<00:00, 3392.17 it/sec]
INFO - 16:17:32:     22%|██▏       | 217/1000 [00:00<00:00, 3393.30 it/sec]
INFO - 16:17:32:     22%|██▏       | 218/1000 [00:00<00:00, 3392.85 it/sec]
INFO - 16:17:32:     22%|██▏       | 219/1000 [00:00<00:00, 3393.30 it/sec]
INFO - 16:17:32:     22%|██▏       | 220/1000 [00:00<00:00, 3391.92 it/sec]
INFO - 16:17:32:     22%|██▏       | 221/1000 [00:00<00:00, 3393.08 it/sec]
INFO - 16:17:32:     22%|██▏       | 222/1000 [00:00<00:00, 3392.71 it/sec]
INFO - 16:17:32:     22%|██▏       | 223/1000 [00:00<00:00, 3392.33 it/sec]
INFO - 16:17:32:     22%|██▏       | 224/1000 [00:00<00:00, 3392.25 it/sec]
INFO - 16:17:32:     22%|██▎       | 225/1000 [00:00<00:00, 3392.58 it/sec]
INFO - 16:17:32:     23%|██▎       | 226/1000 [00:00<00:00, 3393.57 it/sec]
INFO - 16:17:32:     23%|██▎       | 227/1000 [00:00<00:00, 3392.92 it/sec]
INFO - 16:17:32:     23%|██▎       | 228/1000 [00:00<00:00, 3393.09 it/sec]
INFO - 16:17:32:     23%|██▎       | 229/1000 [00:00<00:00, 3392.66 it/sec]
INFO - 16:17:32:     23%|██▎       | 230/1000 [00:00<00:00, 3392.78 it/sec]
INFO - 16:17:32:     23%|██▎       | 231/1000 [00:00<00:00, 3392.55 it/sec]
INFO - 16:17:32:     23%|██▎       | 232/1000 [00:00<00:00, 3393.72 it/sec]
INFO - 16:17:32:     23%|██▎       | 233/1000 [00:00<00:00, 3392.48 it/sec]
INFO - 16:17:32:     23%|██▎       | 234/1000 [00:00<00:00, 3392.34 it/sec]
INFO - 16:17:32:     24%|██▎       | 235/1000 [00:00<00:00, 3391.92 it/sec]
INFO - 16:17:32:     24%|██▎       | 236/1000 [00:00<00:00, 3392.73 it/sec]
INFO - 16:17:32:     24%|██▎       | 237/1000 [00:00<00:00, 3391.02 it/sec]
INFO - 16:17:32:     24%|██▍       | 238/1000 [00:00<00:00, 3390.55 it/sec]
INFO - 16:17:32:     24%|██▍       | 239/1000 [00:00<00:00, 3390.13 it/sec]
INFO - 16:17:32:     24%|██▍       | 240/1000 [00:00<00:00, 3389.54 it/sec]
INFO - 16:17:32:     24%|██▍       | 241/1000 [00:00<00:00, 3388.94 it/sec]
INFO - 16:17:32:     24%|██▍       | 242/1000 [00:00<00:00, 3390.16 it/sec]
INFO - 16:17:32:     24%|██▍       | 243/1000 [00:00<00:00, 3389.00 it/sec]
INFO - 16:17:32:     24%|██▍       | 244/1000 [00:00<00:00, 3389.47 it/sec]
INFO - 16:17:32:     24%|██▍       | 245/1000 [00:00<00:00, 3388.90 it/sec]
INFO - 16:17:32:     25%|██▍       | 246/1000 [00:00<00:00, 3389.35 it/sec]
INFO - 16:17:32:     25%|██▍       | 247/1000 [00:00<00:00, 3388.42 it/sec]
INFO - 16:17:32:     25%|██▍       | 248/1000 [00:00<00:00, 3388.70 it/sec]
INFO - 16:17:32:     25%|██▍       | 249/1000 [00:00<00:00, 3388.29 it/sec]
INFO - 16:17:32:     25%|██▌       | 250/1000 [00:00<00:00, 3387.80 it/sec]
INFO - 16:17:32:     25%|██▌       | 251/1000 [00:00<00:00, 3387.99 it/sec]
INFO - 16:17:32:     25%|██▌       | 252/1000 [00:00<00:00, 3387.78 it/sec]
INFO - 16:17:32:     25%|██▌       | 253/1000 [00:00<00:00, 3387.64 it/sec]
INFO - 16:17:32:     25%|██▌       | 254/1000 [00:00<00:00, 3387.77 it/sec]
INFO - 16:17:32:     26%|██▌       | 255/1000 [00:00<00:00, 3388.42 it/sec]
INFO - 16:17:32:     26%|██▌       | 256/1000 [00:00<00:00, 3388.05 it/sec]
INFO - 16:17:32:     26%|██▌       | 257/1000 [00:00<00:00, 3387.54 it/sec]
INFO - 16:17:32:     26%|██▌       | 258/1000 [00:00<00:00, 3387.31 it/sec]
INFO - 16:17:32:     26%|██▌       | 259/1000 [00:00<00:00, 3388.28 it/sec]
INFO - 16:17:32:     26%|██▌       | 260/1000 [00:00<00:00, 3387.09 it/sec]
INFO - 16:17:32:     26%|██▌       | 261/1000 [00:00<00:00, 3387.86 it/sec]
INFO - 16:17:32:     26%|██▌       | 262/1000 [00:00<00:00, 3387.61 it/sec]
INFO - 16:17:32:     26%|██▋       | 263/1000 [00:00<00:00, 3386.83 it/sec]
INFO - 16:17:32:     26%|██▋       | 264/1000 [00:00<00:00, 3386.64 it/sec]
INFO - 16:17:32:     26%|██▋       | 265/1000 [00:00<00:00, 3387.50 it/sec]
INFO - 16:17:32:     27%|██▋       | 266/1000 [00:00<00:00, 3387.19 it/sec]
INFO - 16:17:32:     27%|██▋       | 267/1000 [00:00<00:00, 3386.97 it/sec]
INFO - 16:17:32:     27%|██▋       | 268/1000 [00:00<00:00, 3386.65 it/sec]
INFO - 16:17:32:     27%|██▋       | 269/1000 [00:00<00:00, 3387.59 it/sec]
INFO - 16:17:32:     27%|██▋       | 270/1000 [00:00<00:00, 3386.55 it/sec]
INFO - 16:17:32:     27%|██▋       | 271/1000 [00:00<00:00, 3386.71 it/sec]
INFO - 16:17:32:     27%|██▋       | 272/1000 [00:00<00:00, 3386.44 it/sec]
INFO - 16:17:32:     27%|██▋       | 273/1000 [00:00<00:00, 3387.43 it/sec]
INFO - 16:17:32:     27%|██▋       | 274/1000 [00:00<00:00, 3386.64 it/sec]
INFO - 16:17:32:     28%|██▊       | 275/1000 [00:00<00:00, 3386.84 it/sec]
INFO - 16:17:32:     28%|██▊       | 276/1000 [00:00<00:00, 3376.81 it/sec]
INFO - 16:17:32:     28%|██▊       | 277/1000 [00:00<00:00, 3377.34 it/sec]
INFO - 16:17:32:     28%|██▊       | 278/1000 [00:00<00:00, 3377.11 it/sec]
INFO - 16:17:32:     28%|██▊       | 279/1000 [00:00<00:00, 3377.96 it/sec]
INFO - 16:17:32:     28%|██▊       | 280/1000 [00:00<00:00, 3377.35 it/sec]
INFO - 16:17:32:     28%|██▊       | 281/1000 [00:00<00:00, 3377.33 it/sec]
INFO - 16:17:32:     28%|██▊       | 282/1000 [00:00<00:00, 3377.13 it/sec]
INFO - 16:17:32:     28%|██▊       | 283/1000 [00:00<00:00, 3377.06 it/sec]
INFO - 16:17:32:     28%|██▊       | 284/1000 [00:00<00:00, 3377.04 it/sec]
INFO - 16:17:32:     28%|██▊       | 285/1000 [00:00<00:00, 3377.85 it/sec]
INFO - 16:17:32:     29%|██▊       | 286/1000 [00:00<00:00, 3376.96 it/sec]
INFO - 16:17:32:     29%|██▊       | 287/1000 [00:00<00:00, 3377.24 it/sec]
INFO - 16:17:32:     29%|██▉       | 288/1000 [00:00<00:00, 3377.25 it/sec]
INFO - 16:17:32:     29%|██▉       | 289/1000 [00:00<00:00, 3378.15 it/sec]
INFO - 16:17:32:     29%|██▉       | 290/1000 [00:00<00:00, 3376.55 it/sec]
INFO - 16:17:32:     29%|██▉       | 291/1000 [00:00<00:00, 3376.84 it/sec]
INFO - 16:17:32:     29%|██▉       | 292/1000 [00:00<00:00, 3376.44 it/sec]
INFO - 16:17:32:     29%|██▉       | 293/1000 [00:00<00:00, 3376.42 it/sec]
INFO - 16:17:32:     29%|██▉       | 294/1000 [00:00<00:00, 3376.42 it/sec]
INFO - 16:17:32:     30%|██▉       | 295/1000 [00:00<00:00, 3377.11 it/sec]
INFO - 16:17:32:     30%|██▉       | 296/1000 [00:00<00:00, 3376.14 it/sec]
INFO - 16:17:32:     30%|██▉       | 297/1000 [00:00<00:00, 3377.08 it/sec]
INFO - 16:17:32:     30%|██▉       | 298/1000 [00:00<00:00, 3377.09 it/sec]
INFO - 16:17:32:     30%|██▉       | 299/1000 [00:00<00:00, 3378.07 it/sec]
INFO - 16:17:32:     30%|███       | 300/1000 [00:00<00:00, 3376.89 it/sec]
INFO - 16:17:32:     30%|███       | 301/1000 [00:00<00:00, 3377.68 it/sec]
INFO - 16:17:32:     30%|███       | 302/1000 [00:00<00:00, 3377.46 it/sec]
INFO - 16:17:32:     30%|███       | 303/1000 [00:00<00:00, 3377.33 it/sec]
INFO - 16:17:32:     30%|███       | 304/1000 [00:00<00:00, 3377.50 it/sec]
INFO - 16:17:32:     30%|███       | 305/1000 [00:00<00:00, 3378.04 it/sec]
INFO - 16:17:32:     31%|███       | 306/1000 [00:00<00:00, 3378.14 it/sec]
INFO - 16:17:32:     31%|███       | 307/1000 [00:00<00:00, 3377.99 it/sec]
INFO - 16:17:32:     31%|███       | 308/1000 [00:00<00:00, 3377.67 it/sec]
INFO - 16:17:32:     31%|███       | 309/1000 [00:00<00:00, 3378.39 it/sec]
INFO - 16:17:32:     31%|███       | 310/1000 [00:00<00:00, 3377.55 it/sec]
INFO - 16:17:32:     31%|███       | 311/1000 [00:00<00:00, 3378.18 it/sec]
INFO - 16:17:32:     31%|███       | 312/1000 [00:00<00:00, 3377.74 it/sec]
INFO - 16:17:32:     31%|███▏      | 313/1000 [00:00<00:00, 3377.83 it/sec]
INFO - 16:17:32:     31%|███▏      | 314/1000 [00:00<00:00, 3378.26 it/sec]
INFO - 16:17:32:     32%|███▏      | 315/1000 [00:00<00:00, 3379.17 it/sec]
INFO - 16:17:32:     32%|███▏      | 316/1000 [00:00<00:00, 3379.05 it/sec]
INFO - 16:17:32:     32%|███▏      | 317/1000 [00:00<00:00, 3378.47 it/sec]
INFO - 16:17:32:     32%|███▏      | 318/1000 [00:00<00:00, 3378.32 it/sec]
INFO - 16:17:32:     32%|███▏      | 319/1000 [00:00<00:00, 3379.15 it/sec]
INFO - 16:17:32:     32%|███▏      | 320/1000 [00:00<00:00, 3378.11 it/sec]
INFO - 16:17:32:     32%|███▏      | 321/1000 [00:00<00:00, 3378.34 it/sec]
INFO - 16:17:32:     32%|███▏      | 322/1000 [00:00<00:00, 3378.11 it/sec]
INFO - 16:17:32:     32%|███▏      | 323/1000 [00:00<00:00, 3378.83 it/sec]
INFO - 16:17:32:     32%|███▏      | 324/1000 [00:00<00:00, 3378.21 it/sec]
INFO - 16:17:32:     32%|███▎      | 325/1000 [00:00<00:00, 3378.35 it/sec]
INFO - 16:17:32:     33%|███▎      | 326/1000 [00:00<00:00, 3378.02 it/sec]
INFO - 16:17:32:     33%|███▎      | 327/1000 [00:00<00:00, 3377.96 it/sec]
INFO - 16:17:32:     33%|███▎      | 328/1000 [00:00<00:00, 3378.00 it/sec]
INFO - 16:17:32:     33%|███▎      | 329/1000 [00:00<00:00, 3378.67 it/sec]
INFO - 16:17:32:     33%|███▎      | 330/1000 [00:00<00:00, 3377.30 it/sec]
INFO - 16:17:32:     33%|███▎      | 331/1000 [00:00<00:00, 3377.56 it/sec]
INFO - 16:17:32:     33%|███▎      | 332/1000 [00:00<00:00, 3378.10 it/sec]
INFO - 16:17:32:     33%|███▎      | 333/1000 [00:00<00:00, 3377.85 it/sec]
INFO - 16:17:32:     33%|███▎      | 334/1000 [00:00<00:00, 3377.65 it/sec]
INFO - 16:17:32:     34%|███▎      | 335/1000 [00:00<00:00, 3377.19 it/sec]
INFO - 16:17:32:     34%|███▎      | 336/1000 [00:00<00:00, 3377.83 it/sec]
INFO - 16:17:32:     34%|███▎      | 337/1000 [00:00<00:00, 3377.00 it/sec]
INFO - 16:17:32:     34%|███▍      | 338/1000 [00:00<00:00, 3377.86 it/sec]
INFO - 16:17:32:     34%|███▍      | 339/1000 [00:00<00:00, 3377.55 it/sec]
INFO - 16:17:32:     34%|███▍      | 340/1000 [00:00<00:00, 3377.90 it/sec]
INFO - 16:17:32:     34%|███▍      | 341/1000 [00:00<00:00, 3377.68 it/sec]
INFO - 16:17:32:     34%|███▍      | 342/1000 [00:00<00:00, 3378.02 it/sec]
INFO - 16:17:32:     34%|███▍      | 343/1000 [00:00<00:00, 3377.94 it/sec]
INFO - 16:17:32:     34%|███▍      | 344/1000 [00:00<00:00, 3377.36 it/sec]
INFO - 16:17:32:     34%|███▍      | 345/1000 [00:00<00:00, 3377.13 it/sec]
INFO - 16:17:32:     35%|███▍      | 346/1000 [00:00<00:00, 3377.87 it/sec]
INFO - 16:17:32:     35%|███▍      | 347/1000 [00:00<00:00, 3376.83 it/sec]
INFO - 16:17:32:     35%|███▍      | 348/1000 [00:00<00:00, 3377.56 it/sec]
INFO - 16:17:32:     35%|███▍      | 349/1000 [00:00<00:00, 3377.27 it/sec]
INFO - 16:17:32:     35%|███▌      | 350/1000 [00:00<00:00, 3377.48 it/sec]
INFO - 16:17:32:     35%|███▌      | 351/1000 [00:00<00:00, 3377.65 it/sec]
INFO - 16:17:32:     35%|███▌      | 352/1000 [00:00<00:00, 3378.19 it/sec]
INFO - 16:17:32:     35%|███▌      | 353/1000 [00:00<00:00, 3377.85 it/sec]
INFO - 16:17:32:     35%|███▌      | 354/1000 [00:00<00:00, 3377.87 it/sec]
INFO - 16:17:32:     36%|███▌      | 355/1000 [00:00<00:00, 3377.78 it/sec]
INFO - 16:17:32:     36%|███▌      | 356/1000 [00:00<00:00, 3378.52 it/sec]
INFO - 16:17:32:     36%|███▌      | 357/1000 [00:00<00:00, 3377.39 it/sec]
INFO - 16:17:32:     36%|███▌      | 358/1000 [00:00<00:00, 3377.91 it/sec]
INFO - 16:17:32:     36%|███▌      | 359/1000 [00:00<00:00, 3377.46 it/sec]
INFO - 16:17:32:     36%|███▌      | 360/1000 [00:00<00:00, 3378.27 it/sec]
INFO - 16:17:32:     36%|███▌      | 361/1000 [00:00<00:00, 3377.69 it/sec]
INFO - 16:17:32:     36%|███▌      | 362/1000 [00:00<00:00, 3378.30 it/sec]
INFO - 16:17:32:     36%|███▋      | 363/1000 [00:00<00:00, 3378.05 it/sec]
INFO - 16:17:32:     36%|███▋      | 364/1000 [00:00<00:00, 3378.07 it/sec]
INFO - 16:17:32:     36%|███▋      | 365/1000 [00:00<00:00, 3377.99 it/sec]
INFO - 16:17:32:     37%|███▋      | 366/1000 [00:00<00:00, 3378.62 it/sec]
INFO - 16:17:32:     37%|███▋      | 367/1000 [00:00<00:00, 3377.82 it/sec]
INFO - 16:17:32:     37%|███▋      | 368/1000 [00:00<00:00, 3378.57 it/sec]
INFO - 16:17:32:     37%|███▋      | 369/1000 [00:00<00:00, 3378.27 it/sec]
INFO - 16:17:32:     37%|███▋      | 370/1000 [00:00<00:00, 3379.00 it/sec]
INFO - 16:17:32:     37%|███▋      | 371/1000 [00:00<00:00, 3377.82 it/sec]
INFO - 16:17:32:     37%|███▋      | 372/1000 [00:00<00:00, 3378.64 it/sec]
INFO - 16:17:32:     37%|███▋      | 373/1000 [00:00<00:00, 3378.34 it/sec]
INFO - 16:17:32:     37%|███▋      | 374/1000 [00:00<00:00, 3378.45 it/sec]
INFO - 16:17:32:     38%|███▊      | 375/1000 [00:00<00:00, 3378.58 it/sec]
INFO - 16:17:32:     38%|███▊      | 376/1000 [00:00<00:00, 3376.82 it/sec]
INFO - 16:17:32:     38%|███▊      | 377/1000 [00:00<00:00, 3376.36 it/sec]
INFO - 16:17:32:     38%|███▊      | 378/1000 [00:00<00:00, 3376.50 it/sec]
INFO - 16:17:32:     38%|███▊      | 379/1000 [00:00<00:00, 3375.58 it/sec]
INFO - 16:17:32:     38%|███▊      | 380/1000 [00:00<00:00, 3375.18 it/sec]
INFO - 16:17:32:     38%|███▊      | 381/1000 [00:00<00:00, 3374.79 it/sec]
INFO - 16:17:32:     38%|███▊      | 382/1000 [00:00<00:00, 3374.85 it/sec]
INFO - 16:17:32:     38%|███▊      | 383/1000 [00:00<00:00, 3375.01 it/sec]
INFO - 16:17:32:     38%|███▊      | 384/1000 [00:00<00:00, 3374.40 it/sec]
INFO - 16:17:32:     38%|███▊      | 385/1000 [00:00<00:00, 3374.52 it/sec]
INFO - 16:17:32:     39%|███▊      | 386/1000 [00:00<00:00, 3374.27 it/sec]
INFO - 16:17:32:     39%|███▊      | 387/1000 [00:00<00:00, 3374.01 it/sec]
INFO - 16:17:32:     39%|███▉      | 388/1000 [00:00<00:00, 3374.15 it/sec]
INFO - 16:17:32:     39%|███▉      | 389/1000 [00:00<00:00, 3374.86 it/sec]
INFO - 16:17:32:     39%|███▉      | 390/1000 [00:00<00:00, 3374.64 it/sec]
INFO - 16:17:32:     39%|███▉      | 391/1000 [00:00<00:00, 3374.45 it/sec]
INFO - 16:17:32:     39%|███▉      | 392/1000 [00:00<00:00, 3374.12 it/sec]
INFO - 16:17:32:     39%|███▉      | 393/1000 [00:00<00:00, 3374.77 it/sec]
INFO - 16:17:32:     39%|███▉      | 394/1000 [00:00<00:00, 3373.94 it/sec]
INFO - 16:17:32:     40%|███▉      | 395/1000 [00:00<00:00, 3374.51 it/sec]
INFO - 16:17:32:     40%|███▉      | 396/1000 [00:00<00:00, 3374.17 it/sec]
INFO - 16:17:32:     40%|███▉      | 397/1000 [00:00<00:00, 3373.87 it/sec]
INFO - 16:17:32:     40%|███▉      | 398/1000 [00:00<00:00, 3373.55 it/sec]
INFO - 16:17:32:     40%|███▉      | 399/1000 [00:00<00:00, 3373.96 it/sec]
INFO - 16:17:32:     40%|████      | 400/1000 [00:00<00:00, 3373.69 it/sec]
INFO - 16:17:32:     40%|████      | 401/1000 [00:00<00:00, 3371.46 it/sec]
INFO - 16:17:32:     40%|████      | 402/1000 [00:00<00:00, 3370.47 it/sec]
INFO - 16:17:32:     40%|████      | 403/1000 [00:00<00:00, 3368.78 it/sec]
INFO - 16:17:32:     40%|████      | 404/1000 [00:00<00:00, 3368.93 it/sec]
INFO - 16:17:32:     40%|████      | 405/1000 [00:00<00:00, 3369.39 it/sec]
INFO - 16:17:32:     41%|████      | 406/1000 [00:00<00:00, 3368.97 it/sec]
INFO - 16:17:32:     41%|████      | 407/1000 [00:00<00:00, 3368.91 it/sec]
INFO - 16:17:32:     41%|████      | 408/1000 [00:00<00:00, 3368.93 it/sec]
INFO - 16:17:32:     41%|████      | 409/1000 [00:00<00:00, 3369.47 it/sec]
INFO - 16:17:32:     41%|████      | 410/1000 [00:00<00:00, 3368.46 it/sec]
INFO - 16:17:32:     41%|████      | 411/1000 [00:00<00:00, 3368.83 it/sec]
INFO - 16:17:32:     41%|████      | 412/1000 [00:00<00:00, 3369.50 it/sec]
INFO - 16:17:32:     41%|████▏     | 413/1000 [00:00<00:00, 3368.97 it/sec]
INFO - 16:17:32:     41%|████▏     | 414/1000 [00:00<00:00, 3368.96 it/sec]
INFO - 16:17:32:     42%|████▏     | 415/1000 [00:00<00:00, 3368.61 it/sec]
INFO - 16:17:32:     42%|████▏     | 416/1000 [00:00<00:00, 3369.16 it/sec]
INFO - 16:17:32:     42%|████▏     | 417/1000 [00:00<00:00, 3368.30 it/sec]
INFO - 16:17:32:     42%|████▏     | 418/1000 [00:00<00:00, 3368.82 it/sec]
INFO - 16:17:32:     42%|████▏     | 419/1000 [00:00<00:00, 3368.65 it/sec]
INFO - 16:17:32:     42%|████▏     | 420/1000 [00:00<00:00, 3368.74 it/sec]
INFO - 16:17:32:     42%|████▏     | 421/1000 [00:00<00:00, 3368.63 it/sec]
INFO - 16:17:32:     42%|████▏     | 422/1000 [00:00<00:00, 3369.37 it/sec]
INFO - 16:17:32:     42%|████▏     | 423/1000 [00:00<00:00, 3369.07 it/sec]
INFO - 16:17:32:     42%|████▏     | 424/1000 [00:00<00:00, 3363.61 it/sec]
INFO - 16:17:32:     42%|████▎     | 425/1000 [00:00<00:00, 3363.89 it/sec]
INFO - 16:17:32:     43%|████▎     | 426/1000 [00:00<00:00, 3363.21 it/sec]
INFO - 16:17:32:     43%|████▎     | 427/1000 [00:00<00:00, 3362.91 it/sec]
INFO - 16:17:32:     43%|████▎     | 428/1000 [00:00<00:00, 3363.43 it/sec]
INFO - 16:17:32:     43%|████▎     | 429/1000 [00:00<00:00, 3363.19 it/sec]
INFO - 16:17:32:     43%|████▎     | 430/1000 [00:00<00:00, 3362.93 it/sec]
INFO - 16:17:32:     43%|████▎     | 431/1000 [00:00<00:00, 3362.58 it/sec]
INFO - 16:17:32:     43%|████▎     | 432/1000 [00:00<00:00, 3363.07 it/sec]
INFO - 16:17:32:     43%|████▎     | 433/1000 [00:00<00:00, 3362.30 it/sec]
INFO - 16:17:32:     43%|████▎     | 434/1000 [00:00<00:00, 3362.99 it/sec]
INFO - 16:17:32:     44%|████▎     | 435/1000 [00:00<00:00, 3362.79 it/sec]
INFO - 16:17:32:     44%|████▎     | 436/1000 [00:00<00:00, 3362.61 it/sec]
INFO - 16:17:32:     44%|████▎     | 437/1000 [00:00<00:00, 3362.68 it/sec]
INFO - 16:17:32:     44%|████▍     | 438/1000 [00:00<00:00, 3362.83 it/sec]
INFO - 16:17:32:     44%|████▍     | 439/1000 [00:00<00:00, 3362.59 it/sec]
INFO - 16:17:32:     44%|████▍     | 440/1000 [00:00<00:00, 3362.63 it/sec]
INFO - 16:17:32:     44%|████▍     | 441/1000 [00:00<00:00, 3362.42 it/sec]
INFO - 16:17:32:     44%|████▍     | 442/1000 [00:00<00:00, 3362.94 it/sec]
INFO - 16:17:32:     44%|████▍     | 443/1000 [00:00<00:00, 3360.84 it/sec]
INFO - 16:17:32:     44%|████▍     | 444/1000 [00:00<00:00, 3360.16 it/sec]
INFO - 16:17:32:     44%|████▍     | 445/1000 [00:00<00:00, 3359.24 it/sec]
INFO - 16:17:32:     45%|████▍     | 446/1000 [00:00<00:00, 3357.97 it/sec]
INFO - 16:17:32:     45%|████▍     | 447/1000 [00:00<00:00, 3358.02 it/sec]
INFO - 16:17:32:     45%|████▍     | 448/1000 [00:00<00:00, 3358.10 it/sec]
INFO - 16:17:32:     45%|████▍     | 449/1000 [00:00<00:00, 3357.95 it/sec]
INFO - 16:17:32:     45%|████▌     | 450/1000 [00:00<00:00, 3358.06 it/sec]
INFO - 16:17:32:     45%|████▌     | 451/1000 [00:00<00:00, 3358.36 it/sec]
INFO - 16:17:32:     45%|████▌     | 452/1000 [00:00<00:00, 3358.40 it/sec]
INFO - 16:17:32:     45%|████▌     | 453/1000 [00:00<00:00, 3358.09 it/sec]
INFO - 16:17:32:     45%|████▌     | 454/1000 [00:00<00:00, 3358.53 it/sec]
INFO - 16:17:32:     46%|████▌     | 455/1000 [00:00<00:00, 3358.30 it/sec]
INFO - 16:17:32:     46%|████▌     | 456/1000 [00:00<00:00, 3357.00 it/sec]
INFO - 16:17:32:     46%|████▌     | 457/1000 [00:00<00:00, 3356.17 it/sec]
INFO - 16:17:32:     46%|████▌     | 458/1000 [00:00<00:00, 3355.28 it/sec]
INFO - 16:17:32:     46%|████▌     | 459/1000 [00:00<00:00, 3354.05 it/sec]
INFO - 16:17:32:     46%|████▌     | 460/1000 [00:00<00:00, 3354.03 it/sec]
INFO - 16:17:32:     46%|████▌     | 461/1000 [00:00<00:00, 3353.79 it/sec]
INFO - 16:17:32:     46%|████▌     | 462/1000 [00:00<00:00, 3353.60 it/sec]
INFO - 16:17:32:     46%|████▋     | 463/1000 [00:00<00:00, 3353.44 it/sec]
INFO - 16:17:32:     46%|████▋     | 464/1000 [00:00<00:00, 3353.78 it/sec]
INFO - 16:17:32:     46%|████▋     | 465/1000 [00:00<00:00, 3353.16 it/sec]
INFO - 16:17:32:     47%|████▋     | 466/1000 [00:00<00:00, 3353.70 it/sec]
INFO - 16:17:32:     47%|████▋     | 467/1000 [00:00<00:00, 3353.57 it/sec]
INFO - 16:17:32:     47%|████▋     | 468/1000 [00:00<00:00, 3353.95 it/sec]
INFO - 16:17:32:     47%|████▋     | 469/1000 [00:00<00:00, 3353.04 it/sec]
INFO - 16:17:32:     47%|████▋     | 470/1000 [00:00<00:00, 3353.58 it/sec]
INFO - 16:17:32:     47%|████▋     | 471/1000 [00:00<00:00, 3353.28 it/sec]
INFO - 16:17:32:     47%|████▋     | 472/1000 [00:00<00:00, 3353.20 it/sec]
INFO - 16:17:32:     47%|████▋     | 473/1000 [00:00<00:00, 3353.64 it/sec]
INFO - 16:17:32:     47%|████▋     | 474/1000 [00:00<00:00, 3353.68 it/sec]
INFO - 16:17:32:     48%|████▊     | 475/1000 [00:00<00:00, 3352.95 it/sec]
INFO - 16:17:32:     48%|████▊     | 476/1000 [00:00<00:00, 3353.17 it/sec]
INFO - 16:17:32:     48%|████▊     | 477/1000 [00:00<00:00, 3352.79 it/sec]
INFO - 16:17:32:     48%|████▊     | 478/1000 [00:00<00:00, 3353.48 it/sec]
INFO - 16:17:32:     48%|████▊     | 479/1000 [00:00<00:00, 3352.56 it/sec]
INFO - 16:17:32:     48%|████▊     | 480/1000 [00:00<00:00, 3352.78 it/sec]
INFO - 16:17:32:     48%|████▊     | 481/1000 [00:00<00:00, 3352.87 it/sec]
INFO - 16:17:32:     48%|████▊     | 482/1000 [00:00<00:00, 3352.53 it/sec]
INFO - 16:17:32:     48%|████▊     | 483/1000 [00:00<00:00, 3352.92 it/sec]
INFO - 16:17:32:     48%|████▊     | 484/1000 [00:00<00:00, 3352.83 it/sec]
INFO - 16:17:32:     48%|████▊     | 485/1000 [00:00<00:00, 3352.93 it/sec]
INFO - 16:17:32:     49%|████▊     | 486/1000 [00:00<00:00, 3352.99 it/sec]
INFO - 16:17:32:     49%|████▊     | 487/1000 [00:00<00:00, 3351.44 it/sec]
INFO - 16:17:32:     49%|████▉     | 488/1000 [00:00<00:00, 3350.66 it/sec]
INFO - 16:17:32:     49%|████▉     | 489/1000 [00:00<00:00, 3349.78 it/sec]
INFO - 16:17:32:     49%|████▉     | 490/1000 [00:00<00:00, 3349.19 it/sec]
INFO - 16:17:32:     49%|████▉     | 491/1000 [00:00<00:00, 3348.05 it/sec]
INFO - 16:17:32:     49%|████▉     | 492/1000 [00:00<00:00, 3348.07 it/sec]
INFO - 16:17:32:     49%|████▉     | 493/1000 [00:00<00:00, 3348.36 it/sec]
INFO - 16:17:32:     49%|████▉     | 494/1000 [00:00<00:00, 3348.15 it/sec]
INFO - 16:17:32:     50%|████▉     | 495/1000 [00:00<00:00, 3347.97 it/sec]
INFO - 16:17:32:     50%|████▉     | 496/1000 [00:00<00:00, 3347.67 it/sec]
INFO - 16:17:32:     50%|████▉     | 497/1000 [00:00<00:00, 3348.19 it/sec]
INFO - 16:17:32:     50%|████▉     | 498/1000 [00:00<00:00, 3347.70 it/sec]
INFO - 16:17:32:     50%|████▉     | 499/1000 [00:00<00:00, 3348.20 it/sec]
INFO - 16:17:32:     50%|█████     | 500/1000 [00:00<00:00, 3347.93 it/sec]
INFO - 16:17:32:     50%|█████     | 501/1000 [00:00<00:00, 3348.05 it/sec]
INFO - 16:17:32:     50%|█████     | 502/1000 [00:00<00:00, 3347.52 it/sec]
INFO - 16:17:32:     50%|█████     | 503/1000 [00:00<00:00, 3347.83 it/sec]
INFO - 16:17:32:     50%|█████     | 504/1000 [00:00<00:00, 3347.50 it/sec]
INFO - 16:17:32:     50%|█████     | 505/1000 [00:00<00:00, 3346.98 it/sec]
INFO - 16:17:32:     51%|█████     | 506/1000 [00:00<00:00, 3346.71 it/sec]
INFO - 16:17:32:     51%|█████     | 507/1000 [00:00<00:00, 3347.13 it/sec]
INFO - 16:17:32:     51%|█████     | 508/1000 [00:00<00:00, 3346.42 it/sec]
INFO - 16:17:32:     51%|█████     | 509/1000 [00:00<00:00, 3346.85 it/sec]
INFO - 16:17:32:     51%|█████     | 510/1000 [00:00<00:00, 3346.67 it/sec]
INFO - 16:17:32:     51%|█████     | 511/1000 [00:00<00:00, 3344.70 it/sec]
INFO - 16:17:32:     51%|█████     | 512/1000 [00:00<00:00, 3344.50 it/sec]
INFO - 16:17:32:     51%|█████▏    | 513/1000 [00:00<00:00, 3343.96 it/sec]
INFO - 16:17:32:     51%|█████▏    | 514/1000 [00:00<00:00, 3343.33 it/sec]
INFO - 16:17:32:     52%|█████▏    | 515/1000 [00:00<00:00, 3343.29 it/sec]
INFO - 16:17:32:     52%|█████▏    | 516/1000 [00:00<00:00, 3343.32 it/sec]
INFO - 16:17:32:     52%|█████▏    | 517/1000 [00:00<00:00, 3342.87 it/sec]
INFO - 16:17:32:     52%|█████▏    | 518/1000 [00:00<00:00, 3343.25 it/sec]
INFO - 16:17:32:     52%|█████▏    | 519/1000 [00:00<00:00, 3343.15 it/sec]
INFO - 16:17:32:     52%|█████▏    | 520/1000 [00:00<00:00, 3343.35 it/sec]
INFO - 16:17:32:     52%|█████▏    | 521/1000 [00:00<00:00, 3342.66 it/sec]
INFO - 16:17:32:     52%|█████▏    | 522/1000 [00:00<00:00, 3342.97 it/sec]
INFO - 16:17:32:     52%|█████▏    | 523/1000 [00:00<00:00, 3342.62 it/sec]
INFO - 16:17:32:     52%|█████▏    | 524/1000 [00:00<00:00, 3342.72 it/sec]
INFO - 16:17:32:     52%|█████▎    | 525/1000 [00:00<00:00, 3342.70 it/sec]
INFO - 16:17:32:     53%|█████▎    | 526/1000 [00:00<00:00, 3343.26 it/sec]
INFO - 16:17:32:     53%|█████▎    | 527/1000 [00:00<00:00, 3342.52 it/sec]
INFO - 16:17:32:     53%|█████▎    | 528/1000 [00:00<00:00, 3342.99 it/sec]
INFO - 16:17:32:     53%|█████▎    | 529/1000 [00:00<00:00, 3342.80 it/sec]
INFO - 16:17:32:     53%|█████▎    | 530/1000 [00:00<00:00, 3343.26 it/sec]
INFO - 16:17:32:     53%|█████▎    | 531/1000 [00:00<00:00, 3342.59 it/sec]
INFO - 16:17:32:     53%|█████▎    | 532/1000 [00:00<00:00, 3342.99 it/sec]
INFO - 16:17:32:     53%|█████▎    | 533/1000 [00:00<00:00, 3342.56 it/sec]
INFO - 16:17:32:     53%|█████▎    | 534/1000 [00:00<00:00, 3341.88 it/sec]
INFO - 16:17:32:     54%|█████▎    | 535/1000 [00:00<00:00, 3342.15 it/sec]
INFO - 16:17:32:     54%|█████▎    | 536/1000 [00:00<00:00, 3341.92 it/sec]
INFO - 16:17:32:     54%|█████▎    | 537/1000 [00:00<00:00, 3341.52 it/sec]
INFO - 16:17:32:     54%|█████▍    | 538/1000 [00:00<00:00, 3341.62 it/sec]
INFO - 16:17:32:     54%|█████▍    | 539/1000 [00:00<00:00, 3341.56 it/sec]
INFO - 16:17:32:     54%|█████▍    | 540/1000 [00:00<00:00, 3342.14 it/sec]
INFO - 16:17:32:     54%|█████▍    | 541/1000 [00:00<00:00, 3341.41 it/sec]
INFO - 16:17:32:     54%|█████▍    | 542/1000 [00:00<00:00, 3341.80 it/sec]
INFO - 16:17:32:     54%|█████▍    | 543/1000 [00:00<00:00, 3341.65 it/sec]
INFO - 16:17:32:     54%|█████▍    | 544/1000 [00:00<00:00, 3341.70 it/sec]
INFO - 16:17:32:     55%|█████▍    | 545/1000 [00:00<00:00, 3340.14 it/sec]
INFO - 16:17:32:     55%|█████▍    | 546/1000 [00:00<00:00, 3340.05 it/sec]
INFO - 16:17:32:     55%|█████▍    | 547/1000 [00:00<00:00, 3338.91 it/sec]
INFO - 16:17:32:     55%|█████▍    | 548/1000 [00:00<00:00, 3338.26 it/sec]
INFO - 16:17:32:     55%|█████▍    | 549/1000 [00:00<00:00, 3337.89 it/sec]
INFO - 16:17:32:     55%|█████▌    | 550/1000 [00:00<00:00, 3337.35 it/sec]
INFO - 16:17:32:     55%|█████▌    | 551/1000 [00:00<00:00, 3337.36 it/sec]
INFO - 16:17:32:     55%|█████▌    | 552/1000 [00:00<00:00, 3337.81 it/sec]
INFO - 16:17:32:     55%|█████▌    | 553/1000 [00:00<00:00, 3337.06 it/sec]
INFO - 16:17:32:     55%|█████▌    | 554/1000 [00:00<00:00, 3337.20 it/sec]
INFO - 16:17:32:     56%|█████▌    | 555/1000 [00:00<00:00, 3337.67 it/sec]
INFO - 16:17:32:     56%|█████▌    | 556/1000 [00:00<00:00, 3337.50 it/sec]
INFO - 16:17:32:     56%|█████▌    | 557/1000 [00:00<00:00, 3337.39 it/sec]
INFO - 16:17:32:     56%|█████▌    | 558/1000 [00:00<00:00, 3337.25 it/sec]
INFO - 16:17:32:     56%|█████▌    | 559/1000 [00:00<00:00, 3337.66 it/sec]
INFO - 16:17:32:     56%|█████▌    | 560/1000 [00:00<00:00, 3337.16 it/sec]
INFO - 16:17:32:     56%|█████▌    | 561/1000 [00:00<00:00, 3337.69 it/sec]
INFO - 16:17:32:     56%|█████▌    | 562/1000 [00:00<00:00, 3337.46 it/sec]
INFO - 16:17:32:     56%|█████▋    | 563/1000 [00:00<00:00, 3337.49 it/sec]
INFO - 16:17:32:     56%|█████▋    | 564/1000 [00:00<00:00, 3337.59 it/sec]
INFO - 16:17:32:     56%|█████▋    | 565/1000 [00:00<00:00, 3338.01 it/sec]
INFO - 16:17:32:     57%|█████▋    | 566/1000 [00:00<00:00, 3337.89 it/sec]
INFO - 16:17:32:     57%|█████▋    | 567/1000 [00:00<00:00, 3337.59 it/sec]
INFO - 16:17:32:     57%|█████▋    | 568/1000 [00:00<00:00, 3337.52 it/sec]
INFO - 16:17:32:     57%|█████▋    | 569/1000 [00:00<00:00, 3338.03 it/sec]
INFO - 16:17:32:     57%|█████▋    | 570/1000 [00:00<00:00, 3337.45 it/sec]
INFO - 16:17:32:     57%|█████▋    | 571/1000 [00:00<00:00, 3337.80 it/sec]
INFO - 16:17:32:     57%|█████▋    | 572/1000 [00:00<00:00, 3337.62 it/sec]
INFO - 16:17:32:     57%|█████▋    | 573/1000 [00:00<00:00, 3332.99 it/sec]
INFO - 16:17:32:     57%|█████▋    | 574/1000 [00:00<00:00, 3333.32 it/sec]
INFO - 16:17:32:     57%|█████▊    | 575/1000 [00:00<00:00, 3333.68 it/sec]
INFO - 16:17:32:     58%|█████▊    | 576/1000 [00:00<00:00, 3333.09 it/sec]
INFO - 16:17:32:     58%|█████▊    | 577/1000 [00:00<00:00, 3333.56 it/sec]
INFO - 16:17:32:     58%|█████▊    | 578/1000 [00:00<00:00, 3333.35 it/sec]
INFO - 16:17:32:     58%|█████▊    | 579/1000 [00:00<00:00, 3333.04 it/sec]
INFO - 16:17:32:     58%|█████▊    | 580/1000 [00:00<00:00, 3333.29 it/sec]
INFO - 16:17:32:     58%|█████▊    | 581/1000 [00:00<00:00, 3333.73 it/sec]
INFO - 16:17:32:     58%|█████▊    | 582/1000 [00:00<00:00, 3333.54 it/sec]
INFO - 16:17:32:     58%|█████▊    | 583/1000 [00:00<00:00, 3333.36 it/sec]
INFO - 16:17:32:     58%|█████▊    | 584/1000 [00:00<00:00, 3333.27 it/sec]
INFO - 16:17:32:     58%|█████▊    | 585/1000 [00:00<00:00, 3333.63 it/sec]
INFO - 16:17:32:     59%|█████▊    | 586/1000 [00:00<00:00, 3333.11 it/sec]
INFO - 16:17:32:     59%|█████▊    | 587/1000 [00:00<00:00, 3333.55 it/sec]
INFO - 16:17:32:     59%|█████▉    | 588/1000 [00:00<00:00, 3333.38 it/sec]
INFO - 16:17:32:     59%|█████▉    | 589/1000 [00:00<00:00, 3333.38 it/sec]
INFO - 16:17:32:     59%|█████▉    | 590/1000 [00:00<00:00, 3333.41 it/sec]
INFO - 16:17:32:     59%|█████▉    | 591/1000 [00:00<00:00, 3333.80 it/sec]
INFO - 16:17:32:     59%|█████▉    | 592/1000 [00:00<00:00, 3333.71 it/sec]
INFO - 16:17:32:     59%|█████▉    | 593/1000 [00:00<00:00, 3333.52 it/sec]
INFO - 16:17:32:     59%|█████▉    | 594/1000 [00:00<00:00, 3333.31 it/sec]
INFO - 16:17:32:     60%|█████▉    | 595/1000 [00:00<00:00, 3333.79 it/sec]
INFO - 16:17:32:     60%|█████▉    | 596/1000 [00:00<00:00, 3333.33 it/sec]
INFO - 16:17:32:     60%|█████▉    | 597/1000 [00:00<00:00, 3333.80 it/sec]
INFO - 16:17:32:     60%|█████▉    | 598/1000 [00:00<00:00, 3333.56 it/sec]
INFO - 16:17:32:     60%|█████▉    | 599/1000 [00:00<00:00, 3333.72 it/sec]
INFO - 16:17:32:     60%|██████    | 600/1000 [00:00<00:00, 3333.65 it/sec]
INFO - 16:17:32:     60%|██████    | 601/1000 [00:00<00:00, 3334.00 it/sec]
INFO - 16:17:32:     60%|██████    | 602/1000 [00:00<00:00, 3333.97 it/sec]
INFO - 16:17:32:     60%|██████    | 603/1000 [00:00<00:00, 3333.74 it/sec]
INFO - 16:17:32:     60%|██████    | 604/1000 [00:00<00:00, 3333.61 it/sec]
INFO - 16:17:32:     60%|██████    | 605/1000 [00:00<00:00, 3333.97 it/sec]
INFO - 16:17:32:     61%|██████    | 606/1000 [00:00<00:00, 3333.28 it/sec]
INFO - 16:17:32:     61%|██████    | 607/1000 [00:00<00:00, 3333.68 it/sec]
INFO - 16:17:32:     61%|██████    | 608/1000 [00:00<00:00, 3333.61 it/sec]
INFO - 16:17:32:     61%|██████    | 609/1000 [00:00<00:00, 3333.63 it/sec]
INFO - 16:17:32:     61%|██████    | 610/1000 [00:00<00:00, 3333.70 it/sec]
INFO - 16:17:32:     61%|██████    | 611/1000 [00:00<00:00, 3334.01 it/sec]
INFO - 16:17:32:     61%|██████    | 612/1000 [00:00<00:00, 3333.84 it/sec]
INFO - 16:17:32:     61%|██████▏   | 613/1000 [00:00<00:00, 3333.63 it/sec]
INFO - 16:17:32:     61%|██████▏   | 614/1000 [00:00<00:00, 3333.35 it/sec]
INFO - 16:17:32:     62%|██████▏   | 615/1000 [00:00<00:00, 3333.57 it/sec]
INFO - 16:17:32:     62%|██████▏   | 616/1000 [00:00<00:00, 3333.04 it/sec]
INFO - 16:17:32:     62%|██████▏   | 617/1000 [00:00<00:00, 3333.47 it/sec]
INFO - 16:17:32:     62%|██████▏   | 618/1000 [00:00<00:00, 3333.30 it/sec]
INFO - 16:17:32:     62%|██████▏   | 619/1000 [00:00<00:00, 3333.13 it/sec]
INFO - 16:17:32:     62%|██████▏   | 620/1000 [00:00<00:00, 3333.10 it/sec]
INFO - 16:17:32:     62%|██████▏   | 621/1000 [00:00<00:00, 3333.42 it/sec]
INFO - 16:17:32:     62%|██████▏   | 622/1000 [00:00<00:00, 3333.31 it/sec]
INFO - 16:17:32:     62%|██████▏   | 623/1000 [00:00<00:00, 3333.08 it/sec]
INFO - 16:17:32:     62%|██████▏   | 624/1000 [00:00<00:00, 3331.79 it/sec]
INFO - 16:17:32:     62%|██████▎   | 625/1000 [00:00<00:00, 3331.74 it/sec]
INFO - 16:17:32:     63%|██████▎   | 626/1000 [00:00<00:00, 3330.76 it/sec]
INFO - 16:17:32:     63%|██████▎   | 627/1000 [00:00<00:00, 3330.32 it/sec]
INFO - 16:17:32:     63%|██████▎   | 628/1000 [00:00<00:00, 3329.88 it/sec]
INFO - 16:17:32:     63%|██████▎   | 629/1000 [00:00<00:00, 3329.53 it/sec]
INFO - 16:17:32:     63%|██████▎   | 630/1000 [00:00<00:00, 3329.66 it/sec]
INFO - 16:17:32:     63%|██████▎   | 631/1000 [00:00<00:00, 3329.57 it/sec]
INFO - 16:17:32:     63%|██████▎   | 632/1000 [00:00<00:00, 3329.41 it/sec]
INFO - 16:17:32:     63%|██████▎   | 633/1000 [00:00<00:00, 3329.24 it/sec]
INFO - 16:17:32:     63%|██████▎   | 634/1000 [00:00<00:00, 3329.63 it/sec]
INFO - 16:17:32:     64%|██████▎   | 635/1000 [00:00<00:00, 3329.26 it/sec]
INFO - 16:17:32:     64%|██████▎   | 636/1000 [00:00<00:00, 3329.31 it/sec]
INFO - 16:17:32:     64%|██████▎   | 637/1000 [00:00<00:00, 3329.23 it/sec]
INFO - 16:17:32:     64%|██████▍   | 638/1000 [00:00<00:00, 3329.31 it/sec]
INFO - 16:17:32:     64%|██████▍   | 639/1000 [00:00<00:00, 3329.36 it/sec]
INFO - 16:17:32:     64%|██████▍   | 640/1000 [00:00<00:00, 3329.54 it/sec]
INFO - 16:17:32:     64%|██████▍   | 641/1000 [00:00<00:00, 3329.40 it/sec]
INFO - 16:17:32:     64%|██████▍   | 642/1000 [00:00<00:00, 3329.39 it/sec]
INFO - 16:17:32:     64%|██████▍   | 643/1000 [00:00<00:00, 3329.29 it/sec]
INFO - 16:17:32:     64%|██████▍   | 644/1000 [00:00<00:00, 3329.63 it/sec]
INFO - 16:17:32:     64%|██████▍   | 645/1000 [00:00<00:00, 3329.05 it/sec]
INFO - 16:17:32:     65%|██████▍   | 646/1000 [00:00<00:00, 3329.17 it/sec]
INFO - 16:17:32:     65%|██████▍   | 647/1000 [00:00<00:00, 3329.24 it/sec]
INFO - 16:17:32:     65%|██████▍   | 648/1000 [00:00<00:00, 3329.02 it/sec]
INFO - 16:17:32:     65%|██████▍   | 649/1000 [00:00<00:00, 3329.37 it/sec]
INFO - 16:17:32:     65%|██████▌   | 650/1000 [00:00<00:00, 3329.22 it/sec]
INFO - 16:17:32:     65%|██████▌   | 651/1000 [00:00<00:00, 3329.60 it/sec]
INFO - 16:17:32:     65%|██████▌   | 652/1000 [00:00<00:00, 3329.10 it/sec]
INFO - 16:17:32:     65%|██████▌   | 653/1000 [00:00<00:00, 3329.46 it/sec]
INFO - 16:17:32:     65%|██████▌   | 654/1000 [00:00<00:00, 3329.32 it/sec]
INFO - 16:17:32:     66%|██████▌   | 655/1000 [00:00<00:00, 3329.36 it/sec]
INFO - 16:17:32:     66%|██████▌   | 656/1000 [00:00<00:00, 3329.42 it/sec]
INFO - 16:17:32:     66%|██████▌   | 657/1000 [00:00<00:00, 3329.15 it/sec]
INFO - 16:17:32:     66%|██████▌   | 658/1000 [00:00<00:00, 3329.27 it/sec]
INFO - 16:17:32:     66%|██████▌   | 659/1000 [00:00<00:00, 3329.07 it/sec]
INFO - 16:17:32:     66%|██████▌   | 660/1000 [00:00<00:00, 3329.17 it/sec]
INFO - 16:17:32:     66%|██████▌   | 661/1000 [00:00<00:00, 3329.04 it/sec]
INFO - 16:17:32:     66%|██████▌   | 662/1000 [00:00<00:00, 3328.99 it/sec]
INFO - 16:17:32:     66%|██████▋   | 663/1000 [00:00<00:00, 3328.87 it/sec]
INFO - 16:17:32:     66%|██████▋   | 664/1000 [00:00<00:00, 3329.28 it/sec]
INFO - 16:17:32:     66%|██████▋   | 665/1000 [00:00<00:00, 3328.84 it/sec]
INFO - 16:17:32:     67%|██████▋   | 666/1000 [00:00<00:00, 3329.24 it/sec]
INFO - 16:17:32:     67%|██████▋   | 667/1000 [00:00<00:00, 3329.07 it/sec]
INFO - 16:17:32:     67%|██████▋   | 668/1000 [00:00<00:00, 3329.24 it/sec]
INFO - 16:17:32:     67%|██████▋   | 669/1000 [00:00<00:00, 3329.22 it/sec]
INFO - 16:17:32:     67%|██████▋   | 670/1000 [00:00<00:00, 3329.53 it/sec]
INFO - 16:17:32:     67%|██████▋   | 671/1000 [00:00<00:00, 3329.45 it/sec]
INFO - 16:17:32:     67%|██████▋   | 672/1000 [00:00<00:00, 3328.77 it/sec]
INFO - 16:17:32:     67%|██████▋   | 673/1000 [00:00<00:00, 3328.52 it/sec]
INFO - 16:17:32:     67%|██████▋   | 674/1000 [00:00<00:00, 3328.93 it/sec]
INFO - 16:17:32:     68%|██████▊   | 675/1000 [00:00<00:00, 3328.51 it/sec]
INFO - 16:17:32:     68%|██████▊   | 676/1000 [00:00<00:00, 3328.82 it/sec]
INFO - 16:17:32:     68%|██████▊   | 677/1000 [00:00<00:00, 3328.70 it/sec]
INFO - 16:17:32:     68%|██████▊   | 678/1000 [00:00<00:00, 3328.84 it/sec]
INFO - 16:17:32:     68%|██████▊   | 679/1000 [00:00<00:00, 3328.82 it/sec]
INFO - 16:17:32:     68%|██████▊   | 680/1000 [00:00<00:00, 3329.14 it/sec]
INFO - 16:17:32:     68%|██████▊   | 681/1000 [00:00<00:00, 3329.04 it/sec]
INFO - 16:17:32:     68%|██████▊   | 682/1000 [00:00<00:00, 3328.94 it/sec]
INFO - 16:17:32:     68%|██████▊   | 683/1000 [00:00<00:00, 3328.62 it/sec]
INFO - 16:17:32:     68%|██████▊   | 684/1000 [00:00<00:00, 3328.97 it/sec]
INFO - 16:17:32:     68%|██████▊   | 685/1000 [00:00<00:00, 3328.42 it/sec]
INFO - 16:17:32:     69%|██████▊   | 686/1000 [00:00<00:00, 3328.79 it/sec]
INFO - 16:17:32:     69%|██████▊   | 687/1000 [00:00<00:00, 3328.69 it/sec]
INFO - 16:17:32:     69%|██████▉   | 688/1000 [00:00<00:00, 3328.75 it/sec]
INFO - 16:17:33:     69%|██████▉   | 689/1000 [00:00<00:00, 3328.82 it/sec]
INFO - 16:17:33:     69%|██████▉   | 690/1000 [00:00<00:00, 3329.14 it/sec]
INFO - 16:17:33:     69%|██████▉   | 691/1000 [00:00<00:00, 3329.10 it/sec]
INFO - 16:17:33:     69%|██████▉   | 692/1000 [00:00<00:00, 3328.98 it/sec]
INFO - 16:17:33:     69%|██████▉   | 693/1000 [00:00<00:00, 3328.87 it/sec]
INFO - 16:17:33:     69%|██████▉   | 694/1000 [00:00<00:00, 3329.34 it/sec]
INFO - 16:17:33:     70%|██████▉   | 695/1000 [00:00<00:00, 3328.99 it/sec]
INFO - 16:17:33:     70%|██████▉   | 696/1000 [00:00<00:00, 3329.31 it/sec]
INFO - 16:17:33:     70%|██████▉   | 697/1000 [00:00<00:00, 3329.27 it/sec]
INFO - 16:17:33:     70%|██████▉   | 698/1000 [00:00<00:00, 3329.15 it/sec]
INFO - 16:17:33:     70%|██████▉   | 699/1000 [00:00<00:00, 3329.14 it/sec]
INFO - 16:17:33:     70%|███████   | 700/1000 [00:00<00:00, 3329.27 it/sec]
INFO - 16:17:33:     70%|███████   | 701/1000 [00:00<00:00, 3329.11 it/sec]
INFO - 16:17:33:     70%|███████   | 702/1000 [00:00<00:00, 3328.92 it/sec]
INFO - 16:17:33:     70%|███████   | 703/1000 [00:00<00:00, 3328.80 it/sec]
INFO - 16:17:33:     70%|███████   | 704/1000 [00:00<00:00, 3329.07 it/sec]
INFO - 16:17:33:     70%|███████   | 705/1000 [00:00<00:00, 3328.63 it/sec]
INFO - 16:17:33:     71%|███████   | 706/1000 [00:00<00:00, 3328.87 it/sec]
INFO - 16:17:33:     71%|███████   | 707/1000 [00:00<00:00, 3328.78 it/sec]
INFO - 16:17:33:     71%|███████   | 708/1000 [00:00<00:00, 3328.82 it/sec]
INFO - 16:17:33:     71%|███████   | 709/1000 [00:00<00:00, 3328.92 it/sec]
INFO - 16:17:33:     71%|███████   | 710/1000 [00:00<00:00, 3329.21 it/sec]
INFO - 16:17:33:     71%|███████   | 711/1000 [00:00<00:00, 3329.04 it/sec]
INFO - 16:17:33:     71%|███████   | 712/1000 [00:00<00:00, 3328.74 it/sec]
INFO - 16:17:33:     71%|███████▏  | 713/1000 [00:00<00:00, 3328.62 it/sec]
INFO - 16:17:33:     71%|███████▏  | 714/1000 [00:00<00:00, 3328.87 it/sec]
INFO - 16:17:33:     72%|███████▏  | 715/1000 [00:00<00:00, 3328.31 it/sec]
INFO - 16:17:33:     72%|███████▏  | 716/1000 [00:00<00:00, 3328.61 it/sec]
INFO - 16:17:33:     72%|███████▏  | 717/1000 [00:00<00:00, 3328.44 it/sec]
INFO - 16:17:33:     72%|███████▏  | 718/1000 [00:00<00:00, 3328.44 it/sec]
INFO - 16:17:33:     72%|███████▏  | 719/1000 [00:00<00:00, 3328.64 it/sec]
INFO - 16:17:33:     72%|███████▏  | 720/1000 [00:00<00:00, 3328.88 it/sec]
INFO - 16:17:33:     72%|███████▏  | 721/1000 [00:00<00:00, 3328.74 it/sec]
INFO - 16:17:33:     72%|███████▏  | 722/1000 [00:00<00:00, 3325.53 it/sec]
INFO - 16:17:33:     72%|███████▏  | 723/1000 [00:00<00:00, 3325.74 it/sec]
INFO - 16:17:33:     72%|███████▏  | 724/1000 [00:00<00:00, 3325.15 it/sec]
INFO - 16:17:33:     72%|███████▎  | 725/1000 [00:00<00:00, 3325.41 it/sec]
INFO - 16:17:33:     73%|███████▎  | 726/1000 [00:00<00:00, 3325.61 it/sec]
INFO - 16:17:33:     73%|███████▎  | 727/1000 [00:00<00:00, 3325.15 it/sec]
INFO - 16:17:33:     73%|███████▎  | 728/1000 [00:00<00:00, 3325.36 it/sec]
INFO - 16:17:33:     73%|███████▎  | 729/1000 [00:00<00:00, 3325.21 it/sec]
INFO - 16:17:33:     73%|███████▎  | 730/1000 [00:00<00:00, 3325.53 it/sec]
INFO - 16:17:33:     73%|███████▎  | 731/1000 [00:00<00:00, 3325.00 it/sec]
INFO - 16:17:33:     73%|███████▎  | 732/1000 [00:00<00:00, 3325.31 it/sec]
INFO - 16:17:33:     73%|███████▎  | 733/1000 [00:00<00:00, 3325.16 it/sec]
INFO - 16:17:33:     73%|███████▎  | 734/1000 [00:00<00:00, 3325.18 it/sec]
INFO - 16:17:33:     74%|███████▎  | 735/1000 [00:00<00:00, 3325.41 it/sec]
INFO - 16:17:33:     74%|███████▎  | 736/1000 [00:00<00:00, 3325.46 it/sec]
INFO - 16:17:33:     74%|███████▎  | 737/1000 [00:00<00:00, 3325.00 it/sec]
INFO - 16:17:33:     74%|███████▍  | 738/1000 [00:00<00:00, 3325.28 it/sec]
INFO - 16:17:33:     74%|███████▍  | 739/1000 [00:00<00:00, 3325.09 it/sec]
INFO - 16:17:33:     74%|███████▍  | 740/1000 [00:00<00:00, 3325.42 it/sec]
INFO - 16:17:33:     74%|███████▍  | 741/1000 [00:00<00:00, 3324.95 it/sec]
INFO - 16:17:33:     74%|███████▍  | 742/1000 [00:00<00:00, 3325.30 it/sec]
INFO - 16:17:33:     74%|███████▍  | 743/1000 [00:00<00:00, 3325.15 it/sec]
INFO - 16:17:33:     74%|███████▍  | 744/1000 [00:00<00:00, 3325.19 it/sec]
INFO - 16:17:33:     74%|███████▍  | 745/1000 [00:00<00:00, 3325.23 it/sec]
INFO - 16:17:33:     75%|███████▍  | 746/1000 [00:00<00:00, 3325.55 it/sec]
INFO - 16:17:33:     75%|███████▍  | 747/1000 [00:00<00:00, 3325.23 it/sec]
INFO - 16:17:33:     75%|███████▍  | 748/1000 [00:00<00:00, 3325.53 it/sec]
INFO - 16:17:33:     75%|███████▍  | 749/1000 [00:00<00:00, 3325.42 it/sec]
INFO - 16:17:33:     75%|███████▌  | 750/1000 [00:00<00:00, 3325.78 it/sec]
INFO - 16:17:33:     75%|███████▌  | 751/1000 [00:00<00:00, 3325.11 it/sec]
INFO - 16:17:33:     75%|███████▌  | 752/1000 [00:00<00:00, 3325.41 it/sec]
INFO - 16:17:33:     75%|███████▌  | 753/1000 [00:00<00:00, 3325.28 it/sec]
INFO - 16:17:33:     75%|███████▌  | 754/1000 [00:00<00:00, 3325.30 it/sec]
INFO - 16:17:33:     76%|███████▌  | 755/1000 [00:00<00:00, 3325.19 it/sec]
INFO - 16:17:33:     76%|███████▌  | 756/1000 [00:00<00:00, 3325.54 it/sec]
INFO - 16:17:33:     76%|███████▌  | 757/1000 [00:00<00:00, 3325.22 it/sec]
INFO - 16:17:33:     76%|███████▌  | 758/1000 [00:00<00:00, 3325.53 it/sec]
INFO - 16:17:33:     76%|███████▌  | 759/1000 [00:00<00:00, 3325.38 it/sec]
INFO - 16:17:33:     76%|███████▌  | 760/1000 [00:00<00:00, 3325.65 it/sec]
INFO - 16:17:33:     76%|███████▌  | 761/1000 [00:00<00:00, 3325.19 it/sec]
INFO - 16:17:33:     76%|███████▌  | 762/1000 [00:00<00:00, 3325.50 it/sec]
INFO - 16:17:33:     76%|███████▋  | 763/1000 [00:00<00:00, 3325.43 it/sec]
INFO - 16:17:33:     76%|███████▋  | 764/1000 [00:00<00:00, 3325.19 it/sec]
INFO - 16:17:33:     76%|███████▋  | 765/1000 [00:00<00:00, 3325.44 it/sec]
INFO - 16:17:33:     77%|███████▋  | 766/1000 [00:00<00:00, 3325.38 it/sec]
INFO - 16:17:33:     77%|███████▋  | 767/1000 [00:00<00:00, 3323.91 it/sec]
INFO - 16:17:33:     77%|███████▋  | 768/1000 [00:00<00:00, 3323.96 it/sec]
INFO - 16:17:33:     77%|███████▋  | 769/1000 [00:00<00:00, 3323.68 it/sec]
INFO - 16:17:33:     77%|███████▋  | 770/1000 [00:00<00:00, 3323.02 it/sec]
INFO - 16:17:33:     77%|███████▋  | 771/1000 [00:00<00:00, 3323.20 it/sec]
INFO - 16:17:33:     77%|███████▋  | 772/1000 [00:00<00:00, 3323.10 it/sec]
INFO - 16:17:33:     77%|███████▋  | 773/1000 [00:00<00:00, 3323.38 it/sec]
INFO - 16:17:33:     77%|███████▋  | 774/1000 [00:00<00:00, 3323.14 it/sec]
INFO - 16:17:33:     78%|███████▊  | 775/1000 [00:00<00:00, 3323.39 it/sec]
INFO - 16:17:33:     78%|███████▊  | 776/1000 [00:00<00:00, 3323.24 it/sec]
INFO - 16:17:33:     78%|███████▊  | 777/1000 [00:00<00:00, 3323.02 it/sec]
INFO - 16:17:33:     78%|███████▊  | 778/1000 [00:00<00:00, 3323.03 it/sec]
INFO - 16:17:33:     78%|███████▊  | 779/1000 [00:00<00:00, 3323.34 it/sec]
INFO - 16:17:33:     78%|███████▊  | 780/1000 [00:00<00:00, 3323.00 it/sec]
INFO - 16:17:33:     78%|███████▊  | 781/1000 [00:00<00:00, 3323.29 it/sec]
INFO - 16:17:33:     78%|███████▊  | 782/1000 [00:00<00:00, 3323.22 it/sec]
INFO - 16:17:33:     78%|███████▊  | 783/1000 [00:00<00:00, 3323.08 it/sec]
INFO - 16:17:33:     78%|███████▊  | 784/1000 [00:00<00:00, 3323.08 it/sec]
INFO - 16:17:33:     78%|███████▊  | 785/1000 [00:00<00:00, 3323.15 it/sec]
INFO - 16:17:33:     79%|███████▊  | 786/1000 [00:00<00:00, 3323.06 it/sec]
INFO - 16:17:33:     79%|███████▊  | 787/1000 [00:00<00:00, 3322.85 it/sec]
INFO - 16:17:33:     79%|███████▉  | 788/1000 [00:00<00:00, 3322.71 it/sec]
INFO - 16:17:33:     79%|███████▉  | 789/1000 [00:00<00:00, 3322.97 it/sec]
INFO - 16:17:33:     79%|███████▉  | 790/1000 [00:00<00:00, 3322.46 it/sec]
INFO - 16:17:33:     79%|███████▉  | 791/1000 [00:00<00:00, 3322.74 it/sec]
INFO - 16:17:33:     79%|███████▉  | 792/1000 [00:00<00:00, 3322.70 it/sec]
INFO - 16:17:33:     79%|███████▉  | 793/1000 [00:00<00:00, 3322.49 it/sec]
INFO - 16:17:33:     79%|███████▉  | 794/1000 [00:00<00:00, 3322.41 it/sec]
INFO - 16:17:33:     80%|███████▉  | 795/1000 [00:00<00:00, 3322.68 it/sec]
INFO - 16:17:33:     80%|███████▉  | 796/1000 [00:00<00:00, 3322.58 it/sec]
INFO - 16:17:33:     80%|███████▉  | 797/1000 [00:00<00:00, 3322.47 it/sec]
INFO - 16:17:33:     80%|███████▉  | 798/1000 [00:00<00:00, 3322.30 it/sec]
INFO - 16:17:33:     80%|███████▉  | 799/1000 [00:00<00:00, 3322.57 it/sec]
INFO - 16:17:33:     80%|████████  | 800/1000 [00:00<00:00, 3322.24 it/sec]
INFO - 16:17:33:     80%|████████  | 801/1000 [00:00<00:00, 3322.50 it/sec]
INFO - 16:17:33:     80%|████████  | 802/1000 [00:00<00:00, 3322.36 it/sec]
INFO - 16:17:33:     80%|████████  | 803/1000 [00:00<00:00, 3322.18 it/sec]
INFO - 16:17:33:     80%|████████  | 804/1000 [00:00<00:00, 3322.24 it/sec]
INFO - 16:17:33:     80%|████████  | 805/1000 [00:00<00:00, 3322.59 it/sec]
INFO - 16:17:33:     81%|████████  | 806/1000 [00:00<00:00, 3322.40 it/sec]
INFO - 16:17:33:     81%|████████  | 807/1000 [00:00<00:00, 3322.19 it/sec]
INFO - 16:17:33:     81%|████████  | 808/1000 [00:00<00:00, 3322.07 it/sec]
INFO - 16:17:33:     81%|████████  | 809/1000 [00:00<00:00, 3322.35 it/sec]
INFO - 16:17:33:     81%|████████  | 810/1000 [00:00<00:00, 3321.74 it/sec]
INFO - 16:17:33:     81%|████████  | 811/1000 [00:00<00:00, 3322.01 it/sec]
INFO - 16:17:33:     81%|████████  | 812/1000 [00:00<00:00, 3321.84 it/sec]
INFO - 16:17:33:     81%|████████▏ | 813/1000 [00:00<00:00, 3318.59 it/sec]
INFO - 16:17:33:     81%|████████▏ | 814/1000 [00:00<00:00, 3318.62 it/sec]
INFO - 16:17:33:     82%|████████▏ | 815/1000 [00:00<00:00, 3318.49 it/sec]
INFO - 16:17:33:     82%|████████▏ | 816/1000 [00:00<00:00, 3318.20 it/sec]
INFO - 16:17:33:     82%|████████▏ | 817/1000 [00:00<00:00, 3318.09 it/sec]
INFO - 16:17:33:     82%|████████▏ | 818/1000 [00:00<00:00, 3318.46 it/sec]
INFO - 16:17:33:     82%|████████▏ | 819/1000 [00:00<00:00, 3318.04 it/sec]
INFO - 16:17:33:     82%|████████▏ | 820/1000 [00:00<00:00, 3318.30 it/sec]
INFO - 16:17:33:     82%|████████▏ | 821/1000 [00:00<00:00, 3318.32 it/sec]
INFO - 16:17:33:     82%|████████▏ | 822/1000 [00:00<00:00, 3318.28 it/sec]
INFO - 16:17:33:     82%|████████▏ | 823/1000 [00:00<00:00, 3318.47 it/sec]
INFO - 16:17:33:     82%|████████▏ | 824/1000 [00:00<00:00, 3318.76 it/sec]
INFO - 16:17:33:     82%|████████▎ | 825/1000 [00:00<00:00, 3318.72 it/sec]
INFO - 16:17:33:     83%|████████▎ | 826/1000 [00:00<00:00, 3318.64 it/sec]
INFO - 16:17:33:     83%|████████▎ | 827/1000 [00:00<00:00, 3318.48 it/sec]
INFO - 16:17:33:     83%|████████▎ | 828/1000 [00:00<00:00, 3318.74 it/sec]
INFO - 16:17:33:     83%|████████▎ | 829/1000 [00:00<00:00, 3318.19 it/sec]
INFO - 16:17:33:     83%|████████▎ | 830/1000 [00:00<00:00, 3318.43 it/sec]
INFO - 16:17:33:     83%|████████▎ | 831/1000 [00:00<00:00, 3318.31 it/sec]
INFO - 16:17:33:     83%|████████▎ | 832/1000 [00:00<00:00, 3318.32 it/sec]
INFO - 16:17:33:     83%|████████▎ | 833/1000 [00:00<00:00, 3318.50 it/sec]
INFO - 16:17:33:     83%|████████▎ | 834/1000 [00:00<00:00, 3318.53 it/sec]
INFO - 16:17:33:     84%|████████▎ | 835/1000 [00:00<00:00, 3318.22 it/sec]
INFO - 16:17:33:     84%|████████▎ | 836/1000 [00:00<00:00, 3318.48 it/sec]
INFO - 16:17:33:     84%|████████▎ | 837/1000 [00:00<00:00, 3318.38 it/sec]
INFO - 16:17:33:     84%|████████▍ | 838/1000 [00:00<00:00, 3318.69 it/sec]
INFO - 16:17:33:     84%|████████▍ | 839/1000 [00:00<00:00, 3318.28 it/sec]
INFO - 16:17:33:     84%|████████▍ | 840/1000 [00:00<00:00, 3318.59 it/sec]
INFO - 16:17:33:     84%|████████▍ | 841/1000 [00:00<00:00, 3318.50 it/sec]
INFO - 16:17:33:     84%|████████▍ | 842/1000 [00:00<00:00, 3318.41 it/sec]
INFO - 16:17:33:     84%|████████▍ | 843/1000 [00:00<00:00, 3318.42 it/sec]
INFO - 16:17:33:     84%|████████▍ | 844/1000 [00:00<00:00, 3318.71 it/sec]
INFO - 16:17:33:     84%|████████▍ | 845/1000 [00:00<00:00, 3318.42 it/sec]
INFO - 16:17:33:     85%|████████▍ | 846/1000 [00:00<00:00, 3318.64 it/sec]
INFO - 16:17:33:     85%|████████▍ | 847/1000 [00:00<00:00, 3318.63 it/sec]
INFO - 16:17:33:     85%|████████▍ | 848/1000 [00:00<00:00, 3318.97 it/sec]
INFO - 16:17:33:     85%|████████▍ | 849/1000 [00:00<00:00, 3318.58 it/sec]
INFO - 16:17:33:     85%|████████▌ | 850/1000 [00:00<00:00, 3318.81 it/sec]
INFO - 16:17:33:     85%|████████▌ | 851/1000 [00:00<00:00, 3318.54 it/sec]
INFO - 16:17:33:     85%|████████▌ | 852/1000 [00:00<00:00, 3318.56 it/sec]
INFO - 16:17:33:     85%|████████▌ | 853/1000 [00:00<00:00, 3318.67 it/sec]
INFO - 16:17:33:     85%|████████▌ | 854/1000 [00:00<00:00, 3318.67 it/sec]
INFO - 16:17:33:     86%|████████▌ | 855/1000 [00:00<00:00, 3318.32 it/sec]
INFO - 16:17:33:     86%|████████▌ | 856/1000 [00:00<00:00, 3318.57 it/sec]
INFO - 16:17:33:     86%|████████▌ | 857/1000 [00:00<00:00, 3318.68 it/sec]
INFO - 16:17:33:     86%|████████▌ | 858/1000 [00:00<00:00, 3318.97 it/sec]
INFO - 16:17:33:     86%|████████▌ | 859/1000 [00:00<00:00, 3318.64 it/sec]
INFO - 16:17:33:     86%|████████▌ | 860/1000 [00:00<00:00, 3317.89 it/sec]
INFO - 16:17:33:     86%|████████▌ | 861/1000 [00:00<00:00, 3317.88 it/sec]
INFO - 16:17:33:     86%|████████▌ | 862/1000 [00:00<00:00, 3317.40 it/sec]
INFO - 16:17:33:     86%|████████▋ | 863/1000 [00:00<00:00, 3316.96 it/sec]
INFO - 16:17:33:     86%|████████▋ | 864/1000 [00:00<00:00, 3316.97 it/sec]
INFO - 16:17:33:     86%|████████▋ | 865/1000 [00:00<00:00, 3316.73 it/sec]
INFO - 16:17:33:     87%|████████▋ | 866/1000 [00:00<00:00, 3316.87 it/sec]
INFO - 16:17:33:     87%|████████▋ | 867/1000 [00:00<00:00, 3316.86 it/sec]
INFO - 16:17:33:     87%|████████▋ | 868/1000 [00:00<00:00, 3316.40 it/sec]
INFO - 16:17:33:     87%|████████▋ | 869/1000 [00:00<00:00, 3316.48 it/sec]
INFO - 16:17:33:     87%|████████▋ | 870/1000 [00:00<00:00, 3316.72 it/sec]
INFO - 16:17:33:     87%|████████▋ | 871/1000 [00:00<00:00, 3313.72 it/sec]
INFO - 16:17:33:     87%|████████▋ | 872/1000 [00:00<00:00, 3313.91 it/sec]
INFO - 16:17:33:     87%|████████▋ | 873/1000 [00:00<00:00, 3313.75 it/sec]
INFO - 16:17:33:     87%|████████▋ | 874/1000 [00:00<00:00, 3313.68 it/sec]
INFO - 16:17:33:     88%|████████▊ | 875/1000 [00:00<00:00, 3313.63 it/sec]
INFO - 16:17:33:     88%|████████▊ | 876/1000 [00:00<00:00, 3313.83 it/sec]
INFO - 16:17:33:     88%|████████▊ | 877/1000 [00:00<00:00, 3313.58 it/sec]
INFO - 16:17:33:     88%|████████▊ | 878/1000 [00:00<00:00, 3313.80 it/sec]
INFO - 16:17:33:     88%|████████▊ | 879/1000 [00:00<00:00, 3313.70 it/sec]
INFO - 16:17:33:     88%|████████▊ | 880/1000 [00:00<00:00, 3313.90 it/sec]
INFO - 16:17:33:     88%|████████▊ | 881/1000 [00:00<00:00, 3313.41 it/sec]
INFO - 16:17:33:     88%|████████▊ | 882/1000 [00:00<00:00, 3313.65 it/sec]
INFO - 16:17:33:     88%|████████▊ | 883/1000 [00:00<00:00, 3313.48 it/sec]
INFO - 16:17:33:     88%|████████▊ | 884/1000 [00:00<00:00, 3313.48 it/sec]
INFO - 16:17:33:     88%|████████▊ | 885/1000 [00:00<00:00, 3313.38 it/sec]
INFO - 16:17:33:     89%|████████▊ | 886/1000 [00:00<00:00, 3313.57 it/sec]
INFO - 16:17:33:     89%|████████▊ | 887/1000 [00:00<00:00, 3313.30 it/sec]
INFO - 16:17:33:     89%|████████▉ | 888/1000 [00:00<00:00, 3313.28 it/sec]
INFO - 16:17:33:     89%|████████▉ | 889/1000 [00:00<00:00, 3313.22 it/sec]
INFO - 16:17:33:     89%|████████▉ | 890/1000 [00:00<00:00, 3313.24 it/sec]
INFO - 16:17:33:     89%|████████▉ | 891/1000 [00:00<00:00, 3313.24 it/sec]
INFO - 16:17:33:     89%|████████▉ | 892/1000 [00:00<00:00, 3313.33 it/sec]
INFO - 16:17:33:     89%|████████▉ | 893/1000 [00:00<00:00, 3313.23 it/sec]
INFO - 16:17:33:     89%|████████▉ | 894/1000 [00:00<00:00, 3313.08 it/sec]
INFO - 16:17:33:     90%|████████▉ | 895/1000 [00:00<00:00, 3312.98 it/sec]
INFO - 16:17:33:     90%|████████▉ | 896/1000 [00:00<00:00, 3313.22 it/sec]
INFO - 16:17:33:     90%|████████▉ | 897/1000 [00:00<00:00, 3312.94 it/sec]
INFO - 16:17:33:     90%|████████▉ | 898/1000 [00:00<00:00, 3313.21 it/sec]
INFO - 16:17:33:     90%|████████▉ | 899/1000 [00:00<00:00, 3313.18 it/sec]
INFO - 16:17:33:     90%|█████████ | 900/1000 [00:00<00:00, 3312.97 it/sec]
INFO - 16:17:33:     90%|█████████ | 901/1000 [00:00<00:00, 3312.99 it/sec]
INFO - 16:17:33:     90%|█████████ | 902/1000 [00:00<00:00, 3313.17 it/sec]
INFO - 16:17:33:     90%|█████████ | 903/1000 [00:00<00:00, 3313.09 it/sec]
INFO - 16:17:33:     90%|█████████ | 904/1000 [00:00<00:00, 3313.03 it/sec]
INFO - 16:17:33:     90%|█████████ | 905/1000 [00:00<00:00, 3312.88 it/sec]
INFO - 16:17:33:     91%|█████████ | 906/1000 [00:00<00:00, 3313.16 it/sec]
INFO - 16:17:33:     91%|█████████ | 907/1000 [00:00<00:00, 3312.70 it/sec]
INFO - 16:17:33:     91%|█████████ | 908/1000 [00:00<00:00, 3312.96 it/sec]
INFO - 16:17:33:     91%|█████████ | 909/1000 [00:00<00:00, 3312.84 it/sec]
INFO - 16:17:33:     91%|█████████ | 910/1000 [00:00<00:00, 3312.89 it/sec]
INFO - 16:17:33:     91%|█████████ | 911/1000 [00:00<00:00, 3312.80 it/sec]
INFO - 16:17:33:     91%|█████████ | 912/1000 [00:00<00:00, 3312.93 it/sec]
INFO - 16:17:33:     91%|█████████▏| 913/1000 [00:00<00:00, 3312.82 it/sec]
INFO - 16:17:33:     91%|█████████▏| 914/1000 [00:00<00:00, 3312.81 it/sec]
INFO - 16:17:33:     92%|█████████▏| 915/1000 [00:00<00:00, 3312.71 it/sec]
INFO - 16:17:33:     92%|█████████▏| 916/1000 [00:00<00:00, 3312.86 it/sec]
INFO - 16:17:33:     92%|█████████▏| 917/1000 [00:00<00:00, 3312.51 it/sec]
INFO - 16:17:33:     92%|█████████▏| 918/1000 [00:00<00:00, 3312.52 it/sec]
INFO - 16:17:33:     92%|█████████▏| 919/1000 [00:00<00:00, 3312.41 it/sec]
INFO - 16:17:33:     92%|█████████▏| 920/1000 [00:00<00:00, 3312.32 it/sec]
INFO - 16:17:33:     92%|█████████▏| 921/1000 [00:00<00:00, 3312.43 it/sec]
INFO - 16:17:33:     92%|█████████▏| 922/1000 [00:00<00:00, 3312.39 it/sec]
INFO - 16:17:33:     92%|█████████▏| 923/1000 [00:00<00:00, 3311.65 it/sec]
INFO - 16:17:33:     92%|█████████▏| 924/1000 [00:00<00:00, 3311.54 it/sec]
INFO - 16:17:33:     92%|█████████▎| 925/1000 [00:00<00:00, 3311.20 it/sec]
INFO - 16:17:33:     93%|█████████▎| 926/1000 [00:00<00:00, 3310.55 it/sec]
INFO - 16:17:33:     93%|█████████▎| 927/1000 [00:00<00:00, 3310.68 it/sec]
INFO - 16:17:33:     93%|█████████▎| 928/1000 [00:00<00:00, 3310.87 it/sec]
INFO - 16:17:33:     93%|█████████▎| 929/1000 [00:00<00:00, 3310.81 it/sec]
INFO - 16:17:33:     93%|█████████▎| 930/1000 [00:00<00:00, 3310.69 it/sec]
INFO - 16:17:33:     93%|█████████▎| 931/1000 [00:00<00:00, 3310.56 it/sec]
INFO - 16:17:33:     93%|█████████▎| 932/1000 [00:00<00:00, 3310.76 it/sec]
INFO - 16:17:33:     93%|█████████▎| 933/1000 [00:00<00:00, 3310.21 it/sec]
INFO - 16:17:33:     93%|█████████▎| 934/1000 [00:00<00:00, 3310.45 it/sec]
INFO - 16:17:33:     94%|█████████▎| 935/1000 [00:00<00:00, 3310.31 it/sec]
INFO - 16:17:33:     94%|█████████▎| 936/1000 [00:00<00:00, 3310.31 it/sec]
INFO - 16:17:33:     94%|█████████▎| 937/1000 [00:00<00:00, 3310.26 it/sec]
INFO - 16:17:33:     94%|█████████▍| 938/1000 [00:00<00:00, 3310.30 it/sec]
INFO - 16:17:33:     94%|█████████▍| 939/1000 [00:00<00:00, 3310.03 it/sec]
INFO - 16:17:33:     94%|█████████▍| 940/1000 [00:00<00:00, 3310.30 it/sec]
INFO - 16:17:33:     94%|█████████▍| 941/1000 [00:00<00:00, 3310.12 it/sec]
INFO - 16:17:33:     94%|█████████▍| 942/1000 [00:00<00:00, 3310.35 it/sec]
INFO - 16:17:33:     94%|█████████▍| 943/1000 [00:00<00:00, 3310.07 it/sec]
INFO - 16:17:33:     94%|█████████▍| 944/1000 [00:00<00:00, 3310.35 it/sec]
INFO - 16:17:33:     94%|█████████▍| 945/1000 [00:00<00:00, 3309.61 it/sec]
INFO - 16:17:33:     95%|█████████▍| 946/1000 [00:00<00:00, 3308.79 it/sec]
INFO - 16:17:33:     95%|█████████▍| 947/1000 [00:00<00:00, 3308.91 it/sec]
INFO - 16:17:33:     95%|█████████▍| 948/1000 [00:00<00:00, 3308.82 it/sec]
INFO - 16:17:33:     95%|█████████▍| 949/1000 [00:00<00:00, 3308.51 it/sec]
INFO - 16:17:33:     95%|█████████▌| 950/1000 [00:00<00:00, 3308.60 it/sec]
INFO - 16:17:33:     95%|█████████▌| 951/1000 [00:00<00:00, 3308.45 it/sec]
INFO - 16:17:33:     95%|█████████▌| 952/1000 [00:00<00:00, 3308.41 it/sec]
INFO - 16:17:33:     95%|█████████▌| 953/1000 [00:00<00:00, 3308.43 it/sec]
INFO - 16:17:33:     95%|█████████▌| 954/1000 [00:00<00:00, 3308.57 it/sec]
INFO - 16:17:33:     96%|█████████▌| 955/1000 [00:00<00:00, 3308.29 it/sec]
INFO - 16:17:33:     96%|█████████▌| 956/1000 [00:00<00:00, 3308.48 it/sec]
INFO - 16:17:33:     96%|█████████▌| 957/1000 [00:00<00:00, 3308.39 it/sec]
INFO - 16:17:33:     96%|█████████▌| 958/1000 [00:00<00:00, 3308.61 it/sec]
INFO - 16:17:33:     96%|█████████▌| 959/1000 [00:00<00:00, 3308.21 it/sec]
INFO - 16:17:33:     96%|█████████▌| 960/1000 [00:00<00:00, 3308.46 it/sec]
INFO - 16:17:33:     96%|█████████▌| 961/1000 [00:00<00:00, 3308.39 it/sec]
INFO - 16:17:33:     96%|█████████▌| 962/1000 [00:00<00:00, 3308.39 it/sec]
INFO - 16:17:33:     96%|█████████▋| 963/1000 [00:00<00:00, 3308.47 it/sec]
INFO - 16:17:33:     96%|█████████▋| 964/1000 [00:00<00:00, 3308.75 it/sec]
INFO - 16:17:33:     96%|█████████▋| 965/1000 [00:00<00:00, 3308.50 it/sec]
INFO - 16:17:33:     97%|█████████▋| 966/1000 [00:00<00:00, 3308.76 it/sec]
INFO - 16:17:33:     97%|█████████▋| 967/1000 [00:00<00:00, 3308.80 it/sec]
INFO - 16:17:33:     97%|█████████▋| 968/1000 [00:00<00:00, 3309.10 it/sec]
INFO - 16:17:33:     97%|█████████▋| 969/1000 [00:00<00:00, 3308.76 it/sec]
INFO - 16:17:33:     97%|█████████▋| 970/1000 [00:00<00:00, 3308.95 it/sec]
INFO - 16:17:33:     97%|█████████▋| 971/1000 [00:00<00:00, 3308.92 it/sec]
INFO - 16:17:33:     97%|█████████▋| 972/1000 [00:00<00:00, 3308.82 it/sec]
INFO - 16:17:33:     97%|█████████▋| 973/1000 [00:00<00:00, 3308.91 it/sec]
INFO - 16:17:33:     97%|█████████▋| 974/1000 [00:00<00:00, 3308.88 it/sec]
INFO - 16:17:33:     98%|█████████▊| 975/1000 [00:00<00:00, 3308.70 it/sec]
INFO - 16:17:33:     98%|█████████▊| 976/1000 [00:00<00:00, 3308.90 it/sec]
INFO - 16:17:33:     98%|█████████▊| 977/1000 [00:00<00:00, 3308.96 it/sec]
INFO - 16:17:33:     98%|█████████▊| 978/1000 [00:00<00:00, 3309.19 it/sec]
INFO - 16:17:33:     98%|█████████▊| 979/1000 [00:00<00:00, 3308.79 it/sec]
INFO - 16:17:33:     98%|█████████▊| 980/1000 [00:00<00:00, 3308.99 it/sec]
INFO - 16:17:33:     98%|█████████▊| 981/1000 [00:00<00:00, 3308.92 it/sec]
INFO - 16:17:33:     98%|█████████▊| 982/1000 [00:00<00:00, 3308.86 it/sec]
INFO - 16:17:33:     98%|█████████▊| 983/1000 [00:00<00:00, 3309.06 it/sec]
INFO - 16:17:33:     98%|█████████▊| 984/1000 [00:00<00:00, 3309.14 it/sec]
INFO - 16:17:33:     98%|█████████▊| 985/1000 [00:00<00:00, 3308.87 it/sec]
INFO - 16:17:33:     99%|█████████▊| 986/1000 [00:00<00:00, 3308.64 it/sec]
INFO - 16:17:33:     99%|█████████▊| 987/1000 [00:00<00:00, 3308.19 it/sec]
INFO - 16:17:33:     99%|█████████▉| 988/1000 [00:00<00:00, 3307.52 it/sec]
INFO - 16:17:33:     99%|█████████▉| 989/1000 [00:00<00:00, 3307.54 it/sec]
INFO - 16:17:33:     99%|█████████▉| 990/1000 [00:00<00:00, 3307.51 it/sec]
INFO - 16:17:33:     99%|█████████▉| 991/1000 [00:00<00:00, 3307.47 it/sec]
INFO - 16:17:33:     99%|█████████▉| 992/1000 [00:00<00:00, 3307.41 it/sec]
INFO - 16:17:33:     99%|█████████▉| 993/1000 [00:00<00:00, 3307.37 it/sec]
INFO - 16:17:33:     99%|█████████▉| 994/1000 [00:00<00:00, 3307.26 it/sec]
INFO - 16:17:33:    100%|█████████▉| 995/1000 [00:00<00:00, 3307.18 it/sec]
INFO - 16:17:33:    100%|█████████▉| 996/1000 [00:00<00:00, 3307.04 it/sec]
INFO - 16:17:33:    100%|█████████▉| 997/1000 [00:00<00:00, 3307.30 it/sec]
INFO - 16:17:33:    100%|█████████▉| 998/1000 [00:00<00:00, 3306.93 it/sec]
INFO - 16:17:33:    100%|█████████▉| 999/1000 [00:00<00:00, 3307.14 it/sec]
INFO - 16:17:33:    100%|██████████| 1000/1000 [00:00<00:00, 3307.01 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:17:33: Evaluation problem:
INFO - 16:17:33:    Evaluate the functions: area
INFO - 16:17:33:    over the design space:
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33:       | length |      0      |  None |      10     | float |
INFO - 16:17:33:       | width  |      0      |  None |      10     | float |
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33: 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:17:33: *** Start MDOScenario execution ***
INFO - 16:17:33: MDOScenario
INFO - 16:17:33:    Disciplines: AreaDiscipline AreaIncreaser
INFO - 16:17:33:    MDO formulation: DisciplinaryOpt
INFO - 16:17:33: Optimization problem:
INFO - 16:17:33:    minimize final_area(length, width)
INFO - 16:17:33:    with respect to length, width
INFO - 16:17:33:    over the design space:
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33:       | length |      0      |  None |      10     | float |
INFO - 16:17:33:       | width  |      0      |  None |      10     | float |
INFO - 16:17:33:       +--------+-------------+-------+-------------+-------+
INFO - 16:17:33: Solving optimization problem with algorithm MC:
INFO - 16:17:33: Optimization result:
INFO - 16:17:33:    Optimizer info:
INFO - 16:17:33:       Status: None
INFO - 16:17:33:       Message: None
INFO - 16:17:33:    Solution:
INFO - 16:17:33:       Objective: 0.006453354446785439
INFO - 16:17:33:       Design space:
INFO - 16:17:33:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:17:33:          | Name   | Lower bound |        Value         | Upper bound | Type  |
INFO - 16:17:33:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:17:33:          | length |      0      |  3.359702633489273   |      10     | float |
INFO - 16:17:33:          | width  |      0      | 0.000960405599956804 |      10     | float |
INFO - 16:17:33:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:17:33: *** End MDOScenario execution ***

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:17:33: *** Start MDOScenario execution ***
   INFO - 16:17:33: MDOScenario
   INFO - 16:17:33:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:17:33:    MDO formulation: MDF
   INFO - 16:17:33: Optimization problem:
   INFO - 16:17:33:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:17:33:    with respect to x_1, x_2, x_shared
   INFO - 16:17:33:    under the equality constraints
   INFO - 16:17:33:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:17:33:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:17:33:    over the design space:
   INFO - 16:17:33:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:33:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:17:33:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:33:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:17:33:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:17:33:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:17:33:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:17:33:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:33: Solving optimization problem with algorithm MC:
   INFO - 16:17:33:      1%|          | 1/100 [00:00<00:01, 79.19 it/sec, feas=False, obj=191]
   INFO - 16:17:33:      2%|▏         | 2/100 [00:00<00:00, 107.08 it/sec, feas=False, obj=79.2]
   INFO - 16:17:33:      3%|▎         | 3/100 [00:00<00:00, 123.27 it/sec, feas=False, obj=69.1]
   INFO - 16:17:33:      4%|▍         | 4/100 [00:00<00:00, 132.89 it/sec, feas=False, obj=112]
   INFO - 16:17:33:      5%|▌         | 5/100 [00:00<00:00, 144.20 it/sec, feas=False, obj=62.9]
   INFO - 16:17:33:      6%|▌         | 6/100 [00:00<00:00, 148.91 it/sec, feas=False, obj=89.3]
   INFO - 16:17:33:      7%|▋         | 7/100 [00:00<00:00, 156.43 it/sec, feas=False, obj=162]
   INFO - 16:17:33:      8%|▊         | 8/100 [00:00<00:00, 158.57 it/sec, feas=False, obj=591]
   INFO - 16:17:33:      9%|▉         | 9/100 [00:00<00:00, 160.32 it/sec, feas=False, obj=127]
   INFO - 16:17:33:     10%|█         | 10/100 [00:00<00:00, 162.16 it/sec, feas=False, obj=80.9]
   INFO - 16:17:33:     11%|█         | 11/100 [00:00<00:00, 166.14 it/sec, feas=False, obj=131]
   INFO - 16:17:33:     12%|█▏        | 12/100 [00:00<00:00, 167.24 it/sec, feas=False, obj=119]
   INFO - 16:17:33:     13%|█▎        | 13/100 [00:00<00:00, 168.54 it/sec, feas=False, obj=98.4]
   INFO - 16:17:33:     14%|█▍        | 14/100 [00:00<00:00, 169.70 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:17:33:     15%|█▌        | 15/100 [00:00<00:00, 170.13 it/sec, feas=False, obj=220]
   INFO - 16:17:33:     16%|█▌        | 16/100 [00:00<00:00, 171.06 it/sec, feas=False, obj=30.3]
   INFO - 16:17:33:     17%|█▋        | 17/100 [00:00<00:00, 173.17 it/sec, feas=False, obj=130]
   INFO - 16:17:33:     18%|█▊        | 18/100 [00:00<00:00, 175.20 it/sec, feas=False, obj=274]
   INFO - 16:17:33:     19%|█▉        | 19/100 [00:00<00:00, 177.26 it/sec, feas=False, obj=111]
   INFO - 16:17:33:     20%|██        | 20/100 [00:00<00:00, 176.88 it/sec, feas=False, obj=194]
   INFO - 16:17:33:     21%|██        | 21/100 [00:00<00:00, 177.42 it/sec, feas=False, obj=87.1]
   INFO - 16:17:33:     22%|██▏       | 22/100 [00:00<00:00, 177.63 it/sec, feas=False, obj=121]
   INFO - 16:17:33:     23%|██▎       | 23/100 [00:00<00:00, 177.94 it/sec, feas=False, obj=44.7]
   INFO - 16:17:33:     24%|██▍       | 24/100 [00:00<00:00, 179.54 it/sec, feas=False, obj=49.7]
   INFO - 16:17:33:     25%|██▌       | 25/100 [00:00<00:00, 180.95 it/sec, feas=False, obj=62.2]
   INFO - 16:17:33:     26%|██▌       | 26/100 [00:00<00:00, 180.63 it/sec, feas=False, obj=131]
   INFO - 16:17:33:     27%|██▋       | 27/100 [00:00<00:00, 180.86 it/sec, feas=False, obj=89.7]
   INFO - 16:17:33:     28%|██▊       | 28/100 [00:00<00:00, 181.98 it/sec, feas=False, obj=142]
   INFO - 16:17:33:     29%|██▉       | 29/100 [00:00<00:00, 183.18 it/sec, feas=False, obj=85.4]
   INFO - 16:17:33:     30%|███       | 30/100 [00:00<00:00, 182.74 it/sec, feas=False, obj=54.1]
   INFO - 16:17:33:     31%|███       | 31/100 [00:00<00:00, 182.75 it/sec, feas=False, obj=138]
   INFO - 16:17:33:     32%|███▏      | 32/100 [00:00<00:00, 183.79 it/sec, feas=False, obj=107]
   INFO - 16:17:33:     33%|███▎      | 33/100 [00:00<00:00, 184.88 it/sec, feas=False, obj=45.6]
   INFO - 16:17:33:     34%|███▍      | 34/100 [00:00<00:00, 184.87 it/sec, feas=False, obj=211]
   INFO - 16:17:33:     35%|███▌      | 35/100 [00:00<00:00, 184.99 it/sec, feas=False, obj=149]
   INFO - 16:17:33:     36%|███▌      | 36/100 [00:00<00:00, 185.80 it/sec, feas=False, obj=89.2]
   INFO - 16:17:33:     37%|███▋      | 37/100 [00:00<00:00, 186.63 it/sec, feas=False, obj=125]
   INFO - 16:17:33:     38%|███▊      | 38/100 [00:00<00:00, 186.52 it/sec, feas=False, obj=125]
   INFO - 16:17:33:     39%|███▉      | 39/100 [00:00<00:00, 186.76 it/sec, feas=False, obj=156]
   INFO - 16:17:33:     40%|████      | 40/100 [00:00<00:00, 187.35 it/sec, feas=False, obj=65.3]
   INFO - 16:17:33:     41%|████      | 41/100 [00:00<00:00, 187.11 it/sec, feas=False, obj=134]
   INFO - 16:17:33:     42%|████▏     | 42/100 [00:00<00:00, 186.95 it/sec, feas=False, obj=63.5]
   INFO - 16:17:33:     43%|████▎     | 43/100 [00:00<00:00, 187.42 it/sec, feas=False, obj=137]
   INFO - 16:17:33:     44%|████▍     | 44/100 [00:00<00:00, 188.02 it/sec, feas=False, obj=77.2]
   INFO - 16:17:33:     45%|████▌     | 45/100 [00:00<00:00, 187.92 it/sec, feas=False, obj=116]
   INFO - 16:17:33:     46%|████▌     | 46/100 [00:00<00:00, 188.51 it/sec, feas=False, obj=134]
   INFO - 16:17:33:     47%|████▋     | 47/100 [00:00<00:00, 188.32 it/sec, feas=False, obj=110]
   INFO - 16:17:33:     48%|████▊     | 48/100 [00:00<00:00, 188.04 it/sec, feas=False, obj=165]
   INFO - 16:17:33:     49%|████▉     | 49/100 [00:00<00:00, 188.32 it/sec, feas=False, obj=189]
   INFO - 16:17:33:     50%|█████     | 50/100 [00:00<00:00, 188.79 it/sec, feas=False, obj=109]
   INFO - 16:17:33:     51%|█████     | 51/100 [00:00<00:00, 188.46 it/sec, feas=False, obj=95.5]
   INFO - 16:17:33:     52%|█████▏    | 52/100 [00:00<00:00, 188.93 it/sec, feas=False, obj=146]
   INFO - 16:17:33:     53%|█████▎    | 53/100 [00:00<00:00, 189.41 it/sec, feas=False, obj=165]
   INFO - 16:17:33:     54%|█████▍    | 54/100 [00:00<00:00, 189.66 it/sec, feas=False, obj=107]
   INFO - 16:17:33:     55%|█████▌    | 55/100 [00:00<00:00, 189.49 it/sec, feas=False, obj=25.3]
   INFO - 16:17:33:     56%|█████▌    | 56/100 [00:00<00:00, 189.89 it/sec, feas=False, obj=203]
   INFO - 16:17:33:     57%|█████▋    | 57/100 [00:00<00:00, 189.75 it/sec, feas=False, obj=305]
   INFO - 16:17:33:     58%|█████▊    | 58/100 [00:00<00:00, 190.07 it/sec, feas=False, obj=51.7]
   INFO - 16:17:33:     59%|█████▉    | 59/100 [00:00<00:00, 189.81 it/sec, feas=False, obj=212]
   INFO - 16:17:33:     60%|██████    | 60/100 [00:00<00:00, 190.15 it/sec, feas=False, obj=199]
   INFO - 16:17:33:     61%|██████    | 61/100 [00:00<00:00, 190.59 it/sec, feas=False, obj=93.1]
   INFO - 16:17:33:     62%|██████▏   | 62/100 [00:00<00:00, 190.74 it/sec, feas=False, obj=39.9]
   INFO - 16:17:33:     63%|██████▎   | 63/100 [00:00<00:00, 191.15 it/sec, feas=False, obj=112]
   INFO - 16:17:33:     64%|██████▍   | 64/100 [00:00<00:00, 191.51 it/sec, feas=False, obj=136]
   INFO - 16:17:33:     65%|██████▌   | 65/100 [00:00<00:00, 191.89 it/sec, feas=False, obj=40.7]
   INFO - 16:17:33:     66%|██████▌   | 66/100 [00:00<00:00, 191.76 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:17:33:     67%|██████▋   | 67/100 [00:00<00:00, 192.15 it/sec, feas=False, obj=160]
   INFO - 16:17:33:     68%|██████▊   | 68/100 [00:00<00:00, 192.55 it/sec, feas=False, obj=138]
   INFO - 16:17:33:     69%|██████▉   | 69/100 [00:00<00:00, 192.27 it/sec, feas=False, obj=899]
   INFO - 16:17:33:     70%|███████   | 70/100 [00:00<00:00, 192.66 it/sec, feas=False, obj=276]
   INFO - 16:17:33:     71%|███████   | 71/100 [00:00<00:00, 192.42 it/sec, feas=False, obj=44.1]
   INFO - 16:17:33:     72%|███████▏  | 72/100 [00:00<00:00, 192.24 it/sec, feas=False, obj=114]
   INFO - 16:17:33:     73%|███████▎  | 73/100 [00:00<00:00, 192.60 it/sec, feas=False, obj=596]
   INFO - 16:17:33:     74%|███████▍  | 74/100 [00:00<00:00, 192.48 it/sec, feas=False, obj=120]
   INFO - 16:17:33:     75%|███████▌  | 75/100 [00:00<00:00, 192.79 it/sec, feas=False, obj=407]
   INFO - 16:17:33:     76%|███████▌  | 76/100 [00:00<00:00, 192.73 it/sec, feas=False, obj=51.4]
   INFO - 16:17:33:     77%|███████▋  | 77/100 [00:00<00:00, 192.59 it/sec, feas=False, obj=148]
   INFO - 16:17:33:     78%|███████▊  | 78/100 [00:00<00:00, 192.46 it/sec, feas=False, obj=93.9]
   INFO - 16:17:33:     79%|███████▉  | 79/100 [00:00<00:00, 192.28 it/sec, feas=False, obj=72.1]
   INFO - 16:17:33:     80%|████████  | 80/100 [00:00<00:00, 192.68 it/sec, feas=False, obj=292]
   INFO - 16:17:33:     81%|████████  | 81/100 [00:00<00:00, 192.50 it/sec, feas=False, obj=98.6]
   INFO - 16:17:33:     82%|████████▏ | 82/100 [00:00<00:00, 192.37 it/sec, feas=False, obj=25]
   INFO - 16:17:33:     83%|████████▎ | 83/100 [00:00<00:00, 192.22 it/sec, feas=False, obj=33.1]
   INFO - 16:17:33:     84%|████████▍ | 84/100 [00:00<00:00, 192.11 it/sec, feas=False, obj=114]
   INFO - 16:17:33:     85%|████████▌ | 85/100 [00:00<00:00, 191.98 it/sec, feas=False, obj=115]
   INFO - 16:17:33:     86%|████████▌ | 86/100 [00:00<00:00, 192.31 it/sec, feas=False, obj=118]
   INFO - 16:17:33:     87%|████████▋ | 87/100 [00:00<00:00, 192.16 it/sec, feas=False, obj=67.1]
   INFO - 16:17:33:     88%|████████▊ | 88/100 [00:00<00:00, 192.45 it/sec, feas=False, obj=105]
   INFO - 16:17:33:     89%|████████▉ | 89/100 [00:00<00:00, 192.69 it/sec, feas=False, obj=92.6]
   INFO - 16:17:33:     90%|█████████ | 90/100 [00:00<00:00, 192.64 it/sec, feas=False, obj=98.1]
   INFO - 16:17:33:     91%|█████████ | 91/100 [00:00<00:00, 192.50 it/sec, feas=False, obj=133]
   INFO - 16:17:33:     92%|█████████▏| 92/100 [00:00<00:00, 192.77 it/sec, feas=False, obj=197]
   INFO - 16:17:33:     93%|█████████▎| 93/100 [00:00<00:00, 193.02 it/sec, feas=False, obj=82.6]
   INFO - 16:17:33:     94%|█████████▍| 94/100 [00:00<00:00, 192.91 it/sec, feas=False, obj=27.2]
   INFO - 16:17:33:     95%|█████████▌| 95/100 [00:00<00:00, 192.76 it/sec, feas=False, obj=126]
   INFO - 16:17:33:     96%|█████████▌| 96/100 [00:00<00:00, 192.68 it/sec, feas=False, obj=162]
   INFO - 16:17:33:     97%|█████████▋| 97/100 [00:00<00:00, 192.92 it/sec, feas=False, obj=45.7]
   INFO - 16:17:33:     98%|█████████▊| 98/100 [00:00<00:00, 192.82 it/sec, feas=False, obj=21.2]
   INFO - 16:17:33:     99%|█████████▉| 99/100 [00:00<00:00, 192.64 it/sec, feas=False, obj=342]
WARNING - 16:17:34: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:34:    100%|██████████| 100/100 [00:00<00:00, 191.43 it/sec, feas=False, obj=125]
   INFO - 16:17:34: Optimization result:
   INFO - 16:17:34:    Optimizer info:
   INFO - 16:17:34:       Status: None
   INFO - 16:17:34:       Message: None
   INFO - 16:17:34:    Solution:
WARNING - 16:17:34:       The solution is not feasible.
   INFO - 16:17:34:       Objective: 30.3484674529711
   INFO - 16:17:34:       Standardized constraints:
   INFO - 16:17:34:          c_1 = -12.474091450044018
   INFO - 16:17:34:          c_2 = -10.003409829769815
   INFO - 16:17:34:       Design space:
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:17:34:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:17:34:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:17:34:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34: *** End MDOScenario execution ***
WARNING - 16:17:34: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:17:34: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:34: *** Start MDOScenario execution ***
   INFO - 16:17:34: MDOScenario
   INFO - 16:17:34:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:17:34:    MDO formulation: MDF
   INFO - 16:17:34: Optimization problem:
   INFO - 16:17:34:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:17:34:    with respect to x_1, x_2, x_shared
   INFO - 16:17:34:    under the equality constraints
   INFO - 16:17:34:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:17:34:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:17:34:    over the design space:
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:17:34:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:17:34:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:17:34:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34: Solving optimization problem with algorithm MC:
WARNING - 16:17:34: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:34: Optimization result:
   INFO - 16:17:34:    Optimizer info:
   INFO - 16:17:34:       Status: None
   INFO - 16:17:34:       Message: None
   INFO - 16:17:34:    Solution:
WARNING - 16:17:34:       The solution is not feasible.
   INFO - 16:17:34:       Objective: 30.348468138942017
   INFO - 16:17:34:       Standardized constraints:
   INFO - 16:17:34:          c_1 = [-12.47409214]
   INFO - 16:17:34:          c_2 = [-10.00340912]
   INFO - 16:17:34:       Design space:
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:17:34:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:17:34:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:17:34:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:17:34:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:34: *** End MDOScenario execution ***
WARNING - 16:17:34: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:17:34: 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)} %"
'94 %'

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:17:34: *** Start MDOScenario execution ***
   INFO - 16:17:34: MDOScenario
   INFO - 16:17:34:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:17:34:    MDO formulation: MDF
   INFO - 16:17:34: Optimization problem:
   INFO - 16:17:34:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:17:34:    with respect to x_1, x_2, x_shared
   INFO - 16:17:34:    under the equality constraints
   INFO - 16:17:34:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:17:34:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:17:34:    over the design space:
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:17:34:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:17:34:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:17:34:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:17:34:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:34: Solving optimization problem with algorithm MC:
   INFO - 16:17:34:      1%|          | 1/100 [00:00<00:02, 44.21 it/sec, feas=False, obj=191]
   INFO - 16:17:34:      2%|▏         | 2/100 [00:00<00:01, 54.04 it/sec, feas=False, obj=79.2]
   INFO - 16:17:34:      3%|▎         | 3/100 [00:00<00:01, 58.78 it/sec, feas=False, obj=69.1]
   INFO - 16:17:34:      4%|▍         | 4/100 [00:00<00:01, 60.55 it/sec, feas=False, obj=112]
   INFO - 16:17:34:      5%|▌         | 5/100 [00:00<00:01, 63.05 it/sec, feas=False, obj=62.9]
   INFO - 16:17:34:      6%|▌         | 6/100 [00:00<00:01, 64.11 it/sec, feas=False, obj=89.3]
   INFO - 16:17:34:      7%|▋         | 7/100 [00:00<00:01, 65.52 it/sec, feas=False, obj=162]
   INFO - 16:17:34:      8%|▊         | 8/100 [00:00<00:01, 66.06 it/sec, feas=False, obj=591]
   INFO - 16:17:34:      9%|▉         | 9/100 [00:00<00:01, 66.46 it/sec, feas=False, obj=127]
   INFO - 16:17:34:     10%|█         | 10/100 [00:00<00:01, 66.61 it/sec, feas=False, obj=80.9]
   INFO - 16:17:34:     11%|█         | 11/100 [00:00<00:01, 67.31 it/sec, feas=False, obj=131]
   INFO - 16:17:34:     12%|█▏        | 12/100 [00:00<00:01, 67.47 it/sec, feas=False, obj=119]
   INFO - 16:17:34:     13%|█▎        | 13/100 [00:00<00:01, 67.70 it/sec, feas=False, obj=98.4]
   INFO - 16:17:34:     14%|█▍        | 14/100 [00:00<00:01, 67.89 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:17:34:     15%|█▌        | 15/100 [00:00<00:01, 67.93 it/sec, feas=False, obj=220]
   INFO - 16:17:34:     16%|█▌        | 16/100 [00:00<00:01, 67.92 it/sec, feas=False, obj=30.3]
   INFO - 16:17:34:     17%|█▋        | 17/100 [00:00<00:01, 68.23 it/sec, feas=False, obj=130]
   INFO - 16:17:34:     18%|█▊        | 18/100 [00:00<00:01, 68.44 it/sec, feas=False, obj=274]
   INFO - 16:17:34:     19%|█▉        | 19/100 [00:00<00:01, 68.68 it/sec, feas=False, obj=111]
   INFO - 16:17:34:     20%|██        | 20/100 [00:00<00:01, 68.66 it/sec, feas=False, obj=194]
   INFO - 16:17:34:     21%|██        | 21/100 [00:00<00:01, 68.70 it/sec, feas=False, obj=87.1]
   INFO - 16:17:34:     22%|██▏       | 22/100 [00:00<00:01, 68.74 it/sec, feas=False, obj=121]
   INFO - 16:17:34:     23%|██▎       | 23/100 [00:00<00:01, 68.86 it/sec, feas=False, obj=44.7]
   INFO - 16:17:34:     24%|██▍       | 24/100 [00:00<00:01, 69.10 it/sec, feas=False, obj=49.7]
   INFO - 16:17:34:     25%|██▌       | 25/100 [00:00<00:01, 69.26 it/sec, feas=False, obj=62.2]
   INFO - 16:17:34:     26%|██▌       | 26/100 [00:00<00:01, 69.25 it/sec, feas=False, obj=131]
   INFO - 16:17:34:     27%|██▋       | 27/100 [00:00<00:01, 69.33 it/sec, feas=False, obj=89.7]
   INFO - 16:17:34:     28%|██▊       | 28/100 [00:00<00:01, 69.51 it/sec, feas=False, obj=142]
   INFO - 16:17:34:     29%|██▉       | 29/100 [00:00<00:01, 69.71 it/sec, feas=False, obj=85.4]
   INFO - 16:17:34:     30%|███       | 30/100 [00:00<00:01, 69.75 it/sec, feas=False, obj=54.1]
   INFO - 16:17:34:     31%|███       | 31/100 [00:00<00:00, 69.78 it/sec, feas=False, obj=138]
   INFO - 16:17:34:     32%|███▏      | 32/100 [00:00<00:00, 69.98 it/sec, feas=False, obj=107]
   INFO - 16:17:34:     33%|███▎      | 33/100 [00:00<00:00, 70.13 it/sec, feas=False, obj=45.6]
   INFO - 16:17:34:     34%|███▍      | 34/100 [00:00<00:00, 70.11 it/sec, feas=False, obj=211]
   INFO - 16:17:34:     35%|███▌      | 35/100 [00:00<00:00, 70.11 it/sec, feas=False, obj=149]
   INFO - 16:17:34:     36%|███▌      | 36/100 [00:00<00:00, 70.20 it/sec, feas=False, obj=89.2]
   INFO - 16:17:34:     37%|███▋      | 37/100 [00:00<00:00, 70.33 it/sec, feas=False, obj=125]
   INFO - 16:17:34:     38%|███▊      | 38/100 [00:00<00:00, 70.30 it/sec, feas=False, obj=125]
   INFO - 16:17:34:     39%|███▉      | 39/100 [00:00<00:00, 70.40 it/sec, feas=False, obj=156]
   INFO - 16:17:34:     40%|████      | 40/100 [00:00<00:00, 70.50 it/sec, feas=False, obj=65.3]
   INFO - 16:17:34:     41%|████      | 41/100 [00:00<00:00, 70.43 it/sec, feas=False, obj=134]
   INFO - 16:17:34:     42%|████▏     | 42/100 [00:00<00:00, 70.42 it/sec, feas=False, obj=63.5]
   INFO - 16:17:34:     43%|████▎     | 43/100 [00:00<00:00, 70.53 it/sec, feas=False, obj=137]
   INFO - 16:17:34:     44%|████▍     | 44/100 [00:00<00:00, 70.63 it/sec, feas=False, obj=77.2]
   INFO - 16:17:34:     45%|████▌     | 45/100 [00:00<00:00, 70.58 it/sec, feas=False, obj=116]
   INFO - 16:17:34:     46%|████▌     | 46/100 [00:00<00:00, 70.64 it/sec, feas=False, obj=134]
   INFO - 16:17:34:     47%|████▋     | 47/100 [00:00<00:00, 70.60 it/sec, feas=False, obj=110]
   INFO - 16:17:34:     48%|████▊     | 48/100 [00:00<00:00, 70.58 it/sec, feas=False, obj=165]
   INFO - 16:17:34:     49%|████▉     | 49/100 [00:00<00:00, 70.65 it/sec, feas=False, obj=189]
   INFO - 16:17:34:     50%|█████     | 50/100 [00:00<00:00, 70.72 it/sec, feas=False, obj=109]
   INFO - 16:17:34:     51%|█████     | 51/100 [00:00<00:00, 70.69 it/sec, feas=False, obj=95.5]
   INFO - 16:17:34:     52%|█████▏    | 52/100 [00:00<00:00, 70.70 it/sec, feas=False, obj=146]
   INFO - 16:17:34:     53%|█████▎    | 53/100 [00:00<00:00, 70.68 it/sec, feas=False, obj=165]
   INFO - 16:17:34:     54%|█████▍    | 54/100 [00:00<00:00, 70.68 it/sec, feas=False, obj=107]
   INFO - 16:17:34:     55%|█████▌    | 55/100 [00:00<00:00, 70.61 it/sec, feas=False, obj=25.3]
   INFO - 16:17:34:     56%|█████▌    | 56/100 [00:00<00:00, 70.67 it/sec, feas=False, obj=203]
   INFO - 16:17:34:     57%|█████▋    | 57/100 [00:00<00:00, 70.61 it/sec, feas=False, obj=305]
   INFO - 16:17:34:     58%|█████▊    | 58/100 [00:00<00:00, 70.62 it/sec, feas=False, obj=51.7]
   INFO - 16:17:34:     59%|█████▉    | 59/100 [00:00<00:00, 70.59 it/sec, feas=False, obj=212]
   INFO - 16:17:34:     60%|██████    | 60/100 [00:00<00:00, 70.63 it/sec, feas=False, obj=199]
   INFO - 16:17:34:     61%|██████    | 61/100 [00:00<00:00, 70.65 it/sec, feas=False, obj=93.1]
   INFO - 16:17:34:     62%|██████▏   | 62/100 [00:00<00:00, 70.68 it/sec, feas=False, obj=39.9]
   INFO - 16:17:34:     63%|██████▎   | 63/100 [00:00<00:00, 70.70 it/sec, feas=False, obj=112]
   INFO - 16:17:34:     64%|██████▍   | 64/100 [00:00<00:00, 70.72 it/sec, feas=False, obj=136]
   INFO - 16:17:35:     65%|██████▌   | 65/100 [00:00<00:00, 70.74 it/sec, feas=False, obj=40.7]
   INFO - 16:17:35:     66%|██████▌   | 66/100 [00:00<00:00, 70.70 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:17:35:     67%|██████▋   | 67/100 [00:00<00:00, 70.71 it/sec, feas=False, obj=160]
   INFO - 16:17:35:     68%|██████▊   | 68/100 [00:00<00:00, 70.76 it/sec, feas=False, obj=138]
   INFO - 16:17:35:     69%|██████▉   | 69/100 [00:00<00:00, 70.71 it/sec, feas=False, obj=899]
   INFO - 16:17:35:     70%|███████   | 70/100 [00:00<00:00, 70.74 it/sec, feas=False, obj=276]
   INFO - 16:17:35:     71%|███████   | 71/100 [00:01<00:00, 70.71 it/sec, feas=False, obj=44.1]
   INFO - 16:17:35:     72%|███████▏  | 72/100 [00:01<00:00, 70.62 it/sec, feas=False, obj=114]
   INFO - 16:17:35:     73%|███████▎  | 73/100 [00:01<00:00, 70.64 it/sec, feas=False, obj=596]
   INFO - 16:17:35:     74%|███████▍  | 74/100 [00:01<00:00, 70.62 it/sec, feas=False, obj=120]
   INFO - 16:17:35:     75%|███████▌  | 75/100 [00:01<00:00, 70.63 it/sec, feas=False, obj=407]
   INFO - 16:17:35:     76%|███████▌  | 76/100 [00:01<00:00, 70.60 it/sec, feas=False, obj=51.4]
   INFO - 16:17:35:     77%|███████▋  | 77/100 [00:01<00:00, 70.52 it/sec, feas=False, obj=148]
   INFO - 16:17:35:     78%|███████▊  | 78/100 [00:01<00:00, 70.45 it/sec, feas=False, obj=93.9]
   INFO - 16:17:35:     79%|███████▉  | 79/100 [00:01<00:00, 70.43 it/sec, feas=False, obj=72.1]
   INFO - 16:17:35:     80%|████████  | 80/100 [00:01<00:00, 70.47 it/sec, feas=False, obj=292]
   INFO - 16:17:35:     81%|████████  | 81/100 [00:01<00:00, 70.46 it/sec, feas=False, obj=98.6]
   INFO - 16:17:35:     82%|████████▏ | 82/100 [00:01<00:00, 70.44 it/sec, feas=False, obj=25]
   INFO - 16:17:35:     83%|████████▎ | 83/100 [00:01<00:00, 70.38 it/sec, feas=False, obj=33.1]
   INFO - 16:17:35:     84%|████████▍ | 84/100 [00:01<00:00, 70.30 it/sec, feas=False, obj=114]
   INFO - 16:17:35:     85%|████████▌ | 85/100 [00:01<00:00, 70.22 it/sec, feas=False, obj=115]
   INFO - 16:17:35:     86%|████████▌ | 86/100 [00:01<00:00, 70.26 it/sec, feas=False, obj=118]
   INFO - 16:17:35:     87%|████████▋ | 87/100 [00:01<00:00, 70.24 it/sec, feas=False, obj=67.1]
   INFO - 16:17:35:     88%|████████▊ | 88/100 [00:01<00:00, 70.23 it/sec, feas=False, obj=105]
   INFO - 16:17:35:     89%|████████▉ | 89/100 [00:01<00:00, 70.23 it/sec, feas=False, obj=92.6]
   INFO - 16:17:35:     90%|█████████ | 90/100 [00:01<00:00, 70.17 it/sec, feas=False, obj=98.1]
   INFO - 16:17:35:     91%|█████████ | 91/100 [00:01<00:00, 70.07 it/sec, feas=False, obj=133]
   INFO - 16:17:35:     92%|█████████▏| 92/100 [00:01<00:00, 70.06 it/sec, feas=False, obj=197]
   INFO - 16:17:35:     93%|█████████▎| 93/100 [00:01<00:00, 70.02 it/sec, feas=False, obj=82.6]
   INFO - 16:17:35:     94%|█████████▍| 94/100 [00:01<00:00, 69.97 it/sec, feas=False, obj=27.2]
   INFO - 16:17:35:     95%|█████████▌| 95/100 [00:01<00:00, 69.96 it/sec, feas=False, obj=126]
   INFO - 16:17:35:     96%|█████████▌| 96/100 [00:01<00:00, 69.94 it/sec, feas=False, obj=162]
   INFO - 16:17:35:     97%|█████████▋| 97/100 [00:01<00:00, 69.95 it/sec, feas=False, obj=45.7]
   INFO - 16:17:35:     98%|█████████▊| 98/100 [00:01<00:00, 69.94 it/sec, feas=False, obj=21.2]
   INFO - 16:17:35:     99%|█████████▉| 99/100 [00:01<00:00, 69.92 it/sec, feas=False, obj=342]
WARNING - 16:17:35: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:35:    100%|██████████| 100/100 [00:01<00:00, 69.75 it/sec, feas=False, obj=125]
   INFO - 16:17:35: Optimization result:
   INFO - 16:17:35:    Optimizer info:
   INFO - 16:17:35:       Status: None
   INFO - 16:17:35:       Message: None
   INFO - 16:17:35:    Solution:
WARNING - 16:17:35:       The solution is not feasible.
   INFO - 16:17:35:       Objective: 30.3484674529711
   INFO - 16:17:35:       Standardized constraints:
   INFO - 16:17:35:          c_1 = -12.474091450044018
   INFO - 16:17:35:          c_2 = -10.003409829769815
   INFO - 16:17:35:       Design space:
   INFO - 16:17:35:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:35:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:17:35:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:35:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:17:35:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:17:35:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:17:35:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:17:35:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:35: *** End MDOScenario execution ***
WARNING - 16:17:35: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:17:35: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:35: *** Start MDOScenario execution ***
   INFO - 16:17:35: MDOScenario
   INFO - 16:17:35:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:17:35:    MDO formulation: MDF
   INFO - 16:17:35: Optimization problem:
   INFO - 16:17:35:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:17:35:    with respect to x_1, x_2, x_shared
   INFO - 16:17:35:    under the equality constraints
   INFO - 16:17:35:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:17:35:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:17:35:    over the design space:
   INFO - 16:17:35:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:35:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:17:35:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:35:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:17:35:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:17:35:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:17:35:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:17:35:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:17:35: Solving optimization problem with algorithm MC:
WARNING - 16:17:36: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:17:36: Optimization result:
   INFO - 16:17:36:    Optimizer info:
   INFO - 16:17:36:       Status: None
   INFO - 16:17:36:       Message: None
   INFO - 16:17:36:    Solution:
WARNING - 16:17:36:       The solution is not feasible.
   INFO - 16:17:36:       Objective: 30.348468138942017
   INFO - 16:17:36:       Standardized constraints:
   INFO - 16:17:36:          c_1 = [-12.47409214]
   INFO - 16:17:36:          c_2 = [-10.00340912]
   INFO - 16:17:36:       Design space:
   INFO - 16:17:36:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:36:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:17:36:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:36:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:17:36:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:17:36:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:17:36:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:17:36:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:17:36: *** End MDOScenario execution ***
WARNING - 16:17:36: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:17:36: 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)} %"
'66 %'

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

Gallery generated by Sphinx-Gallery