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:25:31: Evaluation problem:
INFO - 16:25:31:    Evaluate the functions: area
INFO - 16:25:31:    over the design space:
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | length |      0      |  None |      10     | float |
INFO - 16:25:31:       | width  |      0      |  None |      10     | float |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31: Running the algorithm MC:
INFO - 16:25:31:      1%|          | 6/1000 [00:00<00:00, 12312.05 it/sec]
INFO - 16:25:31:      1%|          | 7/1000 [00:00<00:00, 10561.20 it/sec]
INFO - 16:25:31:      1%|          | 8/1000 [00:00<00:00, 9980.50 it/sec]
INFO - 16:25:31:      1%|          | 9/1000 [00:00<00:00, 9676.68 it/sec]
INFO - 16:25:31:      1%|          | 10/1000 [00:00<00:00, 9513.05 it/sec]
INFO - 16:25:31:      1%|          | 11/1000 [00:00<00:00, 9209.05 it/sec]
INFO - 16:25:31:      1%|          | 12/1000 [00:00<00:00, 9093.34 it/sec]
INFO - 16:25:31:      1%|▏         | 13/1000 [00:00<00:00, 9055.96 it/sec]
INFO - 16:25:31:      1%|▏         | 14/1000 [00:00<00:00, 8997.89 it/sec]
INFO - 16:25:31:      2%|▏         | 15/1000 [00:00<00:00, 8971.13 it/sec]
INFO - 16:25:31:      2%|▏         | 16/1000 [00:00<00:00, 8947.85 it/sec]
INFO - 16:25:31:      2%|▏         | 17/1000 [00:00<00:00, 8937.47 it/sec]
INFO - 16:25:31:      2%|▏         | 18/1000 [00:00<00:00, 8933.55 it/sec]
INFO - 16:25:31:      2%|▏         | 19/1000 [00:00<00:00, 8858.58 it/sec]
INFO - 16:25:31:      2%|▏         | 20/1000 [00:00<00:00, 8809.71 it/sec]
INFO - 16:25:31:      2%|▏         | 21/1000 [00:00<00:00, 8813.33 it/sec]
INFO - 16:25:31:      2%|▏         | 22/1000 [00:00<00:00, 8780.54 it/sec]
INFO - 16:25:31:      2%|▏         | 23/1000 [00:00<00:00, 8785.88 it/sec]
INFO - 16:25:31:      2%|▏         | 24/1000 [00:00<00:00, 8795.40 it/sec]
INFO - 16:25:31:      2%|▎         | 25/1000 [00:00<00:00, 8801.95 it/sec]
INFO - 16:25:31:      3%|▎         | 26/1000 [00:00<00:00, 8810.85 it/sec]
INFO - 16:25:31:      3%|▎         | 27/1000 [00:00<00:00, 8827.36 it/sec]
INFO - 16:25:31:      3%|▎         | 28/1000 [00:00<00:00, 8771.42 it/sec]
INFO - 16:25:31:      3%|▎         | 29/1000 [00:00<00:00, 8760.79 it/sec]
INFO - 16:25:31:      3%|▎         | 30/1000 [00:00<00:00, 8750.90 it/sec]
INFO - 16:25:31:      3%|▎         | 31/1000 [00:00<00:00, 8755.79 it/sec]
INFO - 16:25:31:      3%|▎         | 32/1000 [00:00<00:00, 8752.38 it/sec]
INFO - 16:25:31:      3%|▎         | 33/1000 [00:00<00:00, 8729.32 it/sec]
INFO - 16:25:31:      3%|▎         | 34/1000 [00:00<00:00, 8734.92 it/sec]
INFO - 16:25:31:      4%|▎         | 35/1000 [00:00<00:00, 8741.26 it/sec]
INFO - 16:25:31:      4%|▎         | 36/1000 [00:00<00:00, 8745.73 it/sec]
INFO - 16:25:31:      4%|▎         | 37/1000 [00:00<00:00, 8701.39 it/sec]
INFO - 16:25:31:      4%|▍         | 38/1000 [00:00<00:00, 8708.06 it/sec]
INFO - 16:25:31:      4%|▍         | 39/1000 [00:00<00:00, 8714.86 it/sec]
INFO - 16:25:31:      4%|▍         | 40/1000 [00:00<00:00, 8716.34 it/sec]
INFO - 16:25:31:      4%|▍         | 41/1000 [00:00<00:00, 8718.20 it/sec]
INFO - 16:25:31:      4%|▍         | 42/1000 [00:00<00:00, 8728.18 it/sec]
INFO - 16:25:31:      4%|▍         | 43/1000 [00:00<00:00, 8738.98 it/sec]
INFO - 16:25:31:      4%|▍         | 44/1000 [00:00<00:00, 8653.32 it/sec]
INFO - 16:25:31:      4%|▍         | 45/1000 [00:00<00:00, 8612.14 it/sec]
INFO - 16:25:31:      5%|▍         | 46/1000 [00:00<00:00, 8614.07 it/sec]
INFO - 16:25:31:      5%|▍         | 47/1000 [00:00<00:00, 8623.08 it/sec]
INFO - 16:25:31:      5%|▍         | 48/1000 [00:00<00:00, 8633.96 it/sec]
INFO - 16:25:31:      5%|▍         | 49/1000 [00:00<00:00, 8595.60 it/sec]
INFO - 16:25:31:      5%|▌         | 50/1000 [00:00<00:00, 8592.07 it/sec]
INFO - 16:25:31:      5%|▌         | 51/1000 [00:00<00:00, 8597.30 it/sec]
INFO - 16:25:31:      5%|▌         | 52/1000 [00:00<00:00, 8599.97 it/sec]
INFO - 16:25:31:      5%|▌         | 53/1000 [00:00<00:00, 8576.65 it/sec]
INFO - 16:25:31:      5%|▌         | 54/1000 [00:00<00:00, 8570.17 it/sec]
INFO - 16:25:31:      6%|▌         | 55/1000 [00:00<00:00, 8573.48 it/sec]
INFO - 16:25:31:      6%|▌         | 56/1000 [00:00<00:00, 8580.76 it/sec]
INFO - 16:25:31:      6%|▌         | 57/1000 [00:00<00:00, 8546.95 it/sec]
INFO - 16:25:31:      6%|▌         | 58/1000 [00:00<00:00, 8545.67 it/sec]
INFO - 16:25:31:      6%|▌         | 59/1000 [00:00<00:00, 8553.59 it/sec]
INFO - 16:25:31:      6%|▌         | 60/1000 [00:00<00:00, 8560.10 it/sec]
INFO - 16:25:31:      6%|▌         | 61/1000 [00:00<00:00, 8568.12 it/sec]
INFO - 16:25:31:      6%|▌         | 62/1000 [00:00<00:00, 8546.58 it/sec]
INFO - 16:25:31:      6%|▋         | 63/1000 [00:00<00:00, 8553.43 it/sec]
INFO - 16:25:31:      6%|▋         | 64/1000 [00:00<00:00, 8560.08 it/sec]
INFO - 16:25:31:      6%|▋         | 65/1000 [00:00<00:00, 8568.14 it/sec]
INFO - 16:25:31:      7%|▋         | 66/1000 [00:00<00:00, 8564.57 it/sec]
INFO - 16:25:31:      7%|▋         | 67/1000 [00:00<00:00, 8570.51 it/sec]
INFO - 16:25:31:      7%|▋         | 68/1000 [00:00<00:00, 8565.46 it/sec]
INFO - 16:25:31:      7%|▋         | 69/1000 [00:00<00:00, 8568.93 it/sec]
INFO - 16:25:31:      7%|▋         | 70/1000 [00:00<00:00, 8555.56 it/sec]
INFO - 16:25:31:      7%|▋         | 71/1000 [00:00<00:00, 8557.59 it/sec]
INFO - 16:25:31:      7%|▋         | 72/1000 [00:00<00:00, 8562.96 it/sec]
INFO - 16:25:31:      7%|▋         | 73/1000 [00:00<00:00, 8570.59 it/sec]
INFO - 16:25:31:      7%|▋         | 74/1000 [00:00<00:00, 8582.05 it/sec]
INFO - 16:25:31:      8%|▊         | 75/1000 [00:00<00:00, 8592.77 it/sec]
INFO - 16:25:31:      8%|▊         | 76/1000 [00:00<00:00, 8600.22 it/sec]
INFO - 16:25:31:      8%|▊         | 77/1000 [00:00<00:00, 8610.01 it/sec]
INFO - 16:25:31:      8%|▊         | 78/1000 [00:00<00:00, 8618.66 it/sec]
INFO - 16:25:31:      8%|▊         | 79/1000 [00:00<00:00, 8610.97 it/sec]
INFO - 16:25:31:      8%|▊         | 80/1000 [00:00<00:00, 8610.32 it/sec]
INFO - 16:25:31:      8%|▊         | 81/1000 [00:00<00:00, 8618.21 it/sec]
INFO - 16:25:31:      8%|▊         | 82/1000 [00:00<00:00, 8626.58 it/sec]
INFO - 16:25:31:      8%|▊         | 83/1000 [00:00<00:00, 8635.39 it/sec]
INFO - 16:25:31:      8%|▊         | 84/1000 [00:00<00:00, 8638.93 it/sec]
INFO - 16:25:31:      8%|▊         | 85/1000 [00:00<00:00, 8645.74 it/sec]
INFO - 16:25:31:      9%|▊         | 86/1000 [00:00<00:00, 8651.99 it/sec]
INFO - 16:25:31:      9%|▊         | 87/1000 [00:00<00:00, 8659.34 it/sec]
INFO - 16:25:31:      9%|▉         | 88/1000 [00:00<00:00, 8651.09 it/sec]
INFO - 16:25:31:      9%|▉         | 89/1000 [00:00<00:00, 8652.46 it/sec]
INFO - 16:25:31:      9%|▉         | 90/1000 [00:00<00:00, 8658.36 it/sec]
INFO - 16:25:31:      9%|▉         | 91/1000 [00:00<00:00, 8663.75 it/sec]
INFO - 16:25:31:      9%|▉         | 92/1000 [00:00<00:00, 8666.70 it/sec]
INFO - 16:25:31:      9%|▉         | 93/1000 [00:00<00:00, 8668.42 it/sec]
INFO - 16:25:31:      9%|▉         | 94/1000 [00:00<00:00, 8674.31 it/sec]
INFO - 16:25:31:     10%|▉         | 95/1000 [00:00<00:00, 8681.02 it/sec]
INFO - 16:25:31:     10%|▉         | 96/1000 [00:00<00:00, 8685.92 it/sec]
INFO - 16:25:31:     10%|▉         | 97/1000 [00:00<00:00, 8679.23 it/sec]
INFO - 16:25:31:     10%|▉         | 98/1000 [00:00<00:00, 8679.64 it/sec]
INFO - 16:25:31:     10%|▉         | 99/1000 [00:00<00:00, 8684.95 it/sec]
INFO - 16:25:31:     10%|█         | 100/1000 [00:00<00:00, 8690.34 it/sec]
INFO - 16:25:31:     10%|█         | 101/1000 [00:00<00:00, 8697.77 it/sec]
INFO - 16:25:31:     10%|█         | 102/1000 [00:00<00:00, 8696.92 it/sec]
INFO - 16:25:31:     10%|█         | 103/1000 [00:00<00:00, 8702.40 it/sec]
INFO - 16:25:31:     10%|█         | 104/1000 [00:00<00:00, 8709.17 it/sec]
INFO - 16:25:31:     10%|█         | 105/1000 [00:00<00:00, 8714.62 it/sec]
INFO - 16:25:31:     11%|█         | 106/1000 [00:00<00:00, 8706.82 it/sec]
INFO - 16:25:31:     11%|█         | 107/1000 [00:00<00:00, 8707.78 it/sec]
INFO - 16:25:31:     11%|█         | 108/1000 [00:00<00:00, 8710.24 it/sec]
INFO - 16:25:31:     11%|█         | 109/1000 [00:00<00:00, 8718.47 it/sec]
INFO - 16:25:31:     11%|█         | 110/1000 [00:00<00:00, 8726.07 it/sec]
INFO - 16:25:31:     11%|█         | 111/1000 [00:00<00:00, 8729.45 it/sec]
INFO - 16:25:31:     11%|█         | 112/1000 [00:00<00:00, 8733.91 it/sec]
INFO - 16:25:31:     11%|█▏        | 113/1000 [00:00<00:00, 8738.29 it/sec]
INFO - 16:25:31:     11%|█▏        | 114/1000 [00:00<00:00, 8744.37 it/sec]
INFO - 16:25:31:     12%|█▏        | 115/1000 [00:00<00:00, 8737.34 it/sec]
INFO - 16:25:31:     12%|█▏        | 116/1000 [00:00<00:00, 8735.47 it/sec]
INFO - 16:25:31:     12%|█▏        | 117/1000 [00:00<00:00, 8738.60 it/sec]
INFO - 16:25:31:     12%|█▏        | 118/1000 [00:00<00:00, 8739.99 it/sec]
INFO - 16:25:31:     12%|█▏        | 119/1000 [00:00<00:00, 8744.41 it/sec]
INFO - 16:25:31:     12%|█▏        | 120/1000 [00:00<00:00, 8747.25 it/sec]
INFO - 16:25:31:     12%|█▏        | 121/1000 [00:00<00:00, 8751.24 it/sec]
INFO - 16:25:31:     12%|█▏        | 122/1000 [00:00<00:00, 8755.33 it/sec]
INFO - 16:25:31:     12%|█▏        | 123/1000 [00:00<00:00, 8759.35 it/sec]
INFO - 16:25:31:     12%|█▏        | 124/1000 [00:00<00:00, 8749.45 it/sec]
INFO - 16:25:31:     12%|█▎        | 125/1000 [00:00<00:00, 8747.46 it/sec]
INFO - 16:25:31:     13%|█▎        | 126/1000 [00:00<00:00, 8677.16 it/sec]
INFO - 16:25:31:     13%|█▎        | 127/1000 [00:00<00:00, 8671.42 it/sec]
INFO - 16:25:31:     13%|█▎        | 128/1000 [00:00<00:00, 8671.38 it/sec]
INFO - 16:25:31:     13%|█▎        | 129/1000 [00:00<00:00, 8675.23 it/sec]
INFO - 16:25:31:     13%|█▎        | 130/1000 [00:00<00:00, 8679.02 it/sec]
INFO - 16:25:31:     13%|█▎        | 131/1000 [00:00<00:00, 8682.21 it/sec]
INFO - 16:25:31:     13%|█▎        | 132/1000 [00:00<00:00, 8672.43 it/sec]
INFO - 16:25:31:     13%|█▎        | 133/1000 [00:00<00:00, 8672.38 it/sec]
INFO - 16:25:31:     13%|█▎        | 134/1000 [00:00<00:00, 8674.48 it/sec]
INFO - 16:25:31:     14%|█▎        | 135/1000 [00:00<00:00, 8678.14 it/sec]
INFO - 16:25:31:     14%|█▎        | 136/1000 [00:00<00:00, 8676.20 it/sec]
INFO - 16:25:31:     14%|█▎        | 137/1000 [00:00<00:00, 8677.04 it/sec]
INFO - 16:25:31:     14%|█▍        | 138/1000 [00:00<00:00, 8680.99 it/sec]
INFO - 16:25:31:     14%|█▍        | 139/1000 [00:00<00:00, 8684.89 it/sec]
INFO - 16:25:31:     14%|█▍        | 140/1000 [00:00<00:00, 8688.36 it/sec]
INFO - 16:25:31:     14%|█▍        | 141/1000 [00:00<00:00, 8678.51 it/sec]
INFO - 16:25:31:     14%|█▍        | 142/1000 [00:00<00:00, 8682.59 it/sec]
INFO - 16:25:31:     14%|█▍        | 143/1000 [00:00<00:00, 8687.13 it/sec]
INFO - 16:25:31:     14%|█▍        | 144/1000 [00:00<00:00, 8690.86 it/sec]
INFO - 16:25:31:     14%|█▍        | 145/1000 [00:00<00:00, 8696.28 it/sec]
INFO - 16:25:31:     15%|█▍        | 146/1000 [00:00<00:00, 8700.76 it/sec]
INFO - 16:25:31:     15%|█▍        | 147/1000 [00:00<00:00, 8704.95 it/sec]
INFO - 16:25:31:     15%|█▍        | 148/1000 [00:00<00:00, 8708.10 it/sec]
INFO - 16:25:31:     15%|█▍        | 149/1000 [00:00<00:00, 8711.58 it/sec]
INFO - 16:25:31:     15%|█▌        | 150/1000 [00:00<00:00, 8702.72 it/sec]
INFO - 16:25:31:     15%|█▌        | 151/1000 [00:00<00:00, 8705.94 it/sec]
INFO - 16:25:31:     15%|█▌        | 152/1000 [00:00<00:00, 8708.53 it/sec]
INFO - 16:25:31:     15%|█▌        | 153/1000 [00:00<00:00, 8712.04 it/sec]
INFO - 16:25:31:     15%|█▌        | 154/1000 [00:00<00:00, 8715.14 it/sec]
INFO - 16:25:31:     16%|█▌        | 155/1000 [00:00<00:00, 8718.68 it/sec]
INFO - 16:25:31:     16%|█▌        | 156/1000 [00:00<00:00, 8721.83 it/sec]
INFO - 16:25:31:     16%|█▌        | 157/1000 [00:00<00:00, 8725.98 it/sec]
INFO - 16:25:31:     16%|█▌        | 158/1000 [00:00<00:00, 8729.96 it/sec]
INFO - 16:25:31:     16%|█▌        | 159/1000 [00:00<00:00, 8721.79 it/sec]
INFO - 16:25:31:     16%|█▌        | 160/1000 [00:00<00:00, 8722.46 it/sec]
INFO - 16:25:31:     16%|█▌        | 161/1000 [00:00<00:00, 8725.37 it/sec]
INFO - 16:25:31:     16%|█▌        | 162/1000 [00:00<00:00, 8729.15 it/sec]
INFO - 16:25:31:     16%|█▋        | 163/1000 [00:00<00:00, 8732.66 it/sec]
INFO - 16:25:31:     16%|█▋        | 164/1000 [00:00<00:00, 8734.92 it/sec]
INFO - 16:25:31:     16%|█▋        | 165/1000 [00:00<00:00, 8738.35 it/sec]
INFO - 16:25:31:     17%|█▋        | 166/1000 [00:00<00:00, 8740.55 it/sec]
INFO - 16:25:31:     17%|█▋        | 167/1000 [00:00<00:00, 8741.19 it/sec]
INFO - 16:25:31:     17%|█▋        | 168/1000 [00:00<00:00, 8732.29 it/sec]
INFO - 16:25:31:     17%|█▋        | 169/1000 [00:00<00:00, 8732.54 it/sec]
INFO - 16:25:31:     17%|█▋        | 170/1000 [00:00<00:00, 8733.75 it/sec]
INFO - 16:25:31:     17%|█▋        | 171/1000 [00:00<00:00, 8733.13 it/sec]
INFO - 16:25:31:     17%|█▋        | 172/1000 [00:00<00:00, 8731.47 it/sec]
INFO - 16:25:31:     17%|█▋        | 173/1000 [00:00<00:00, 8732.66 it/sec]
INFO - 16:25:31:     17%|█▋        | 174/1000 [00:00<00:00, 8735.73 it/sec]
INFO - 16:25:31:     18%|█▊        | 175/1000 [00:00<00:00, 8739.38 it/sec]
INFO - 16:25:31:     18%|█▊        | 176/1000 [00:00<00:00, 8736.07 it/sec]
INFO - 16:25:31:     18%|█▊        | 177/1000 [00:00<00:00, 8734.84 it/sec]
INFO - 16:25:31:     18%|█▊        | 178/1000 [00:00<00:00, 8737.21 it/sec]
INFO - 16:25:31:     18%|█▊        | 179/1000 [00:00<00:00, 8739.35 it/sec]
INFO - 16:25:31:     18%|█▊        | 180/1000 [00:00<00:00, 8740.56 it/sec]
INFO - 16:25:31:     18%|█▊        | 181/1000 [00:00<00:00, 8742.46 it/sec]
INFO - 16:25:31:     18%|█▊        | 182/1000 [00:00<00:00, 8745.04 it/sec]
INFO - 16:25:31:     18%|█▊        | 183/1000 [00:00<00:00, 8746.80 it/sec]
INFO - 16:25:31:     18%|█▊        | 184/1000 [00:00<00:00, 8749.72 it/sec]
INFO - 16:25:31:     18%|█▊        | 185/1000 [00:00<00:00, 8746.01 it/sec]
INFO - 16:25:31:     19%|█▊        | 186/1000 [00:00<00:00, 8744.30 it/sec]
INFO - 16:25:31:     19%|█▊        | 187/1000 [00:00<00:00, 8745.64 it/sec]
INFO - 16:25:31:     19%|█▉        | 188/1000 [00:00<00:00, 8746.95 it/sec]
INFO - 16:25:31:     19%|█▉        | 189/1000 [00:00<00:00, 8748.16 it/sec]
INFO - 16:25:31:     19%|█▉        | 190/1000 [00:00<00:00, 8748.88 it/sec]
INFO - 16:25:31:     19%|█▉        | 191/1000 [00:00<00:00, 8749.97 it/sec]
INFO - 16:25:31:     19%|█▉        | 192/1000 [00:00<00:00, 8751.14 it/sec]
INFO - 16:25:31:     19%|█▉        | 193/1000 [00:00<00:00, 8752.78 it/sec]
INFO - 16:25:31:     19%|█▉        | 194/1000 [00:00<00:00, 8747.81 it/sec]
INFO - 16:25:31:     20%|█▉        | 195/1000 [00:00<00:00, 8746.64 it/sec]
INFO - 16:25:31:     20%|█▉        | 196/1000 [00:00<00:00, 8748.64 it/sec]
INFO - 16:25:31:     20%|█▉        | 197/1000 [00:00<00:00, 8750.35 it/sec]
INFO - 16:25:31:     20%|█▉        | 198/1000 [00:00<00:00, 8753.05 it/sec]
INFO - 16:25:31:     20%|█▉        | 199/1000 [00:00<00:00, 8755.46 it/sec]
INFO - 16:25:31:     20%|██        | 200/1000 [00:00<00:00, 8757.56 it/sec]
INFO - 16:25:31:     20%|██        | 201/1000 [00:00<00:00, 8759.92 it/sec]
INFO - 16:25:31:     20%|██        | 202/1000 [00:00<00:00, 8763.17 it/sec]
INFO - 16:25:31:     20%|██        | 203/1000 [00:00<00:00, 8753.41 it/sec]
INFO - 16:25:31:     20%|██        | 204/1000 [00:00<00:00, 8751.36 it/sec]
INFO - 16:25:31:     20%|██        | 205/1000 [00:00<00:00, 8753.43 it/sec]
INFO - 16:25:31:     21%|██        | 206/1000 [00:00<00:00, 8755.49 it/sec]
INFO - 16:25:31:     21%|██        | 207/1000 [00:00<00:00, 8758.32 it/sec]
INFO - 16:25:31:     21%|██        | 208/1000 [00:00<00:00, 8756.64 it/sec]
INFO - 16:25:31:     21%|██        | 209/1000 [00:00<00:00, 8757.86 it/sec]
INFO - 16:25:31:     21%|██        | 210/1000 [00:00<00:00, 8752.98 it/sec]
INFO - 16:25:31:     21%|██        | 211/1000 [00:00<00:00, 8753.60 it/sec]
INFO - 16:25:31:     21%|██        | 212/1000 [00:00<00:00, 8746.04 it/sec]
INFO - 16:25:31:     21%|██▏       | 213/1000 [00:00<00:00, 8747.80 it/sec]
INFO - 16:25:31:     21%|██▏       | 214/1000 [00:00<00:00, 8750.31 it/sec]
INFO - 16:25:31:     22%|██▏       | 215/1000 [00:00<00:00, 8748.56 it/sec]
INFO - 16:25:31:     22%|██▏       | 216/1000 [00:00<00:00, 8749.44 it/sec]
INFO - 16:25:31:     22%|██▏       | 217/1000 [00:00<00:00, 8752.50 it/sec]
INFO - 16:25:31:     22%|██▏       | 218/1000 [00:00<00:00, 8755.45 it/sec]
INFO - 16:25:31:     22%|██▏       | 219/1000 [00:00<00:00, 8758.05 it/sec]
INFO - 16:25:31:     22%|██▏       | 220/1000 [00:00<00:00, 8760.70 it/sec]
INFO - 16:25:31:     22%|██▏       | 221/1000 [00:00<00:00, 8755.30 it/sec]
INFO - 16:25:31:     22%|██▏       | 222/1000 [00:00<00:00, 8758.02 it/sec]
INFO - 16:25:31:     22%|██▏       | 223/1000 [00:00<00:00, 8760.56 it/sec]
INFO - 16:25:31:     22%|██▏       | 224/1000 [00:00<00:00, 8761.36 it/sec]
INFO - 16:25:31:     22%|██▎       | 225/1000 [00:00<00:00, 8763.12 it/sec]
INFO - 16:25:31:     23%|██▎       | 226/1000 [00:00<00:00, 8763.90 it/sec]
INFO - 16:25:31:     23%|██▎       | 227/1000 [00:00<00:00, 8766.21 it/sec]
INFO - 16:25:31:     23%|██▎       | 228/1000 [00:00<00:00, 8768.58 it/sec]
INFO - 16:25:31:     23%|██▎       | 229/1000 [00:00<00:00, 8769.97 it/sec]
INFO - 16:25:31:     23%|██▎       | 230/1000 [00:00<00:00, 8763.53 it/sec]
INFO - 16:25:31:     23%|██▎       | 231/1000 [00:00<00:00, 8764.77 it/sec]
INFO - 16:25:31:     23%|██▎       | 232/1000 [00:00<00:00, 8765.53 it/sec]
INFO - 16:25:31:     23%|██▎       | 233/1000 [00:00<00:00, 8766.35 it/sec]
INFO - 16:25:31:     23%|██▎       | 234/1000 [00:00<00:00, 8767.56 it/sec]
INFO - 16:25:31:     24%|██▎       | 235/1000 [00:00<00:00, 8769.31 it/sec]
INFO - 16:25:31:     24%|██▎       | 236/1000 [00:00<00:00, 8770.34 it/sec]
INFO - 16:25:31:     24%|██▎       | 237/1000 [00:00<00:00, 8771.98 it/sec]
INFO - 16:25:31:     24%|██▍       | 238/1000 [00:00<00:00, 8768.76 it/sec]
INFO - 16:25:31:     24%|██▍       | 239/1000 [00:00<00:00, 8765.95 it/sec]
INFO - 16:25:31:     24%|██▍       | 240/1000 [00:00<00:00, 8765.60 it/sec]
INFO - 16:25:31:     24%|██▍       | 241/1000 [00:00<00:00, 8765.34 it/sec]
INFO - 16:25:31:     24%|██▍       | 242/1000 [00:00<00:00, 8766.06 it/sec]
INFO - 16:25:31:     24%|██▍       | 243/1000 [00:00<00:00, 8764.58 it/sec]
INFO - 16:25:31:     24%|██▍       | 244/1000 [00:00<00:00, 8765.08 it/sec]
INFO - 16:25:31:     24%|██▍       | 245/1000 [00:00<00:00, 8764.89 it/sec]
INFO - 16:25:31:     25%|██▍       | 246/1000 [00:00<00:00, 8765.90 it/sec]
INFO - 16:25:31:     25%|██▍       | 247/1000 [00:00<00:00, 8758.30 it/sec]
INFO - 16:25:31:     25%|██▍       | 248/1000 [00:00<00:00, 8757.41 it/sec]
INFO - 16:25:31:     25%|██▍       | 249/1000 [00:00<00:00, 8757.77 it/sec]
INFO - 16:25:31:     25%|██▌       | 250/1000 [00:00<00:00, 8759.01 it/sec]
INFO - 16:25:31:     25%|██▌       | 251/1000 [00:00<00:00, 8760.53 it/sec]
INFO - 16:25:31:     25%|██▌       | 252/1000 [00:00<00:00, 8761.89 it/sec]
INFO - 16:25:31:     25%|██▌       | 253/1000 [00:00<00:00, 8763.46 it/sec]
INFO - 16:25:31:     25%|██▌       | 254/1000 [00:00<00:00, 8765.45 it/sec]
INFO - 16:25:31:     26%|██▌       | 255/1000 [00:00<00:00, 8766.85 it/sec]
INFO - 16:25:31:     26%|██▌       | 256/1000 [00:00<00:00, 8760.81 it/sec]
INFO - 16:25:31:     26%|██▌       | 257/1000 [00:00<00:00, 8759.86 it/sec]
INFO - 16:25:31:     26%|██▌       | 258/1000 [00:00<00:00, 8759.99 it/sec]
INFO - 16:25:31:     26%|██▌       | 259/1000 [00:00<00:00, 8760.61 it/sec]
INFO - 16:25:31:     26%|██▌       | 260/1000 [00:00<00:00, 8761.86 it/sec]
INFO - 16:25:31:     26%|██▌       | 261/1000 [00:00<00:00, 8762.40 it/sec]
INFO - 16:25:31:     26%|██▌       | 262/1000 [00:00<00:00, 8763.36 it/sec]
INFO - 16:25:31:     26%|██▋       | 263/1000 [00:00<00:00, 8756.17 it/sec]
INFO - 16:25:31:     26%|██▋       | 264/1000 [00:00<00:00, 8750.98 it/sec]
INFO - 16:25:31:     26%|██▋       | 265/1000 [00:00<00:00, 8749.55 it/sec]
INFO - 16:25:31:     27%|██▋       | 266/1000 [00:00<00:00, 8750.26 it/sec]
INFO - 16:25:31:     27%|██▋       | 267/1000 [00:00<00:00, 8751.45 it/sec]
INFO - 16:25:31:     27%|██▋       | 268/1000 [00:00<00:00, 8752.83 it/sec]
INFO - 16:25:31:     27%|██▋       | 269/1000 [00:00<00:00, 8754.34 it/sec]
INFO - 16:25:31:     27%|██▋       | 270/1000 [00:00<00:00, 8718.56 it/sec]
INFO - 16:25:31:     27%|██▋       | 271/1000 [00:00<00:00, 8716.82 it/sec]
INFO - 16:25:31:     27%|██▋       | 272/1000 [00:00<00:00, 8708.98 it/sec]
INFO - 16:25:31:     27%|██▋       | 273/1000 [00:00<00:00, 8708.56 it/sec]
INFO - 16:25:31:     27%|██▋       | 274/1000 [00:00<00:00, 8709.46 it/sec]
INFO - 16:25:31:     28%|██▊       | 275/1000 [00:00<00:00, 8710.68 it/sec]
INFO - 16:25:31:     28%|██▊       | 276/1000 [00:00<00:00, 8709.86 it/sec]
INFO - 16:25:31:     28%|██▊       | 277/1000 [00:00<00:00, 8710.55 it/sec]
INFO - 16:25:31:     28%|██▊       | 278/1000 [00:00<00:00, 8711.04 it/sec]
INFO - 16:25:31:     28%|██▊       | 279/1000 [00:00<00:00, 8713.02 it/sec]
INFO - 16:25:31:     28%|██▊       | 280/1000 [00:00<00:00, 8711.11 it/sec]
INFO - 16:25:31:     28%|██▊       | 281/1000 [00:00<00:00, 8709.91 it/sec]
INFO - 16:25:31:     28%|██▊       | 282/1000 [00:00<00:00, 8711.75 it/sec]
INFO - 16:25:31:     28%|██▊       | 283/1000 [00:00<00:00, 8713.63 it/sec]
INFO - 16:25:31:     28%|██▊       | 284/1000 [00:00<00:00, 8715.82 it/sec]
INFO - 16:25:31:     28%|██▊       | 285/1000 [00:00<00:00, 8715.83 it/sec]
INFO - 16:25:31:     29%|██▊       | 286/1000 [00:00<00:00, 8716.74 it/sec]
INFO - 16:25:31:     29%|██▊       | 287/1000 [00:00<00:00, 8718.45 it/sec]
INFO - 16:25:31:     29%|██▉       | 288/1000 [00:00<00:00, 8720.66 it/sec]
INFO - 16:25:31:     29%|██▉       | 289/1000 [00:00<00:00, 8717.58 it/sec]
INFO - 16:25:31:     29%|██▉       | 290/1000 [00:00<00:00, 8716.78 it/sec]
INFO - 16:25:31:     29%|██▉       | 291/1000 [00:00<00:00, 8718.60 it/sec]
INFO - 16:25:31:     29%|██▉       | 292/1000 [00:00<00:00, 8720.46 it/sec]
INFO - 16:25:31:     29%|██▉       | 293/1000 [00:00<00:00, 8721.82 it/sec]
INFO - 16:25:31:     29%|██▉       | 294/1000 [00:00<00:00, 8723.24 it/sec]
INFO - 16:25:31:     30%|██▉       | 295/1000 [00:00<00:00, 8724.21 it/sec]
INFO - 16:25:31:     30%|██▉       | 296/1000 [00:00<00:00, 8724.87 it/sec]
INFO - 16:25:31:     30%|██▉       | 297/1000 [00:00<00:00, 8724.42 it/sec]
INFO - 16:25:31:     30%|██▉       | 298/1000 [00:00<00:00, 8719.97 it/sec]
INFO - 16:25:31:     30%|██▉       | 299/1000 [00:00<00:00, 8719.00 it/sec]
INFO - 16:25:31:     30%|███       | 300/1000 [00:00<00:00, 8719.66 it/sec]
INFO - 16:25:31:     30%|███       | 301/1000 [00:00<00:00, 8720.69 it/sec]
INFO - 16:25:31:     30%|███       | 302/1000 [00:00<00:00, 8721.65 it/sec]
INFO - 16:25:31:     30%|███       | 303/1000 [00:00<00:00, 8723.44 it/sec]
INFO - 16:25:31:     30%|███       | 304/1000 [00:00<00:00, 8724.26 it/sec]
INFO - 16:25:31:     30%|███       | 305/1000 [00:00<00:00, 8725.20 it/sec]
INFO - 16:25:31:     31%|███       | 306/1000 [00:00<00:00, 8726.43 it/sec]
INFO - 16:25:31:     31%|███       | 307/1000 [00:00<00:00, 8722.45 it/sec]
INFO - 16:25:31:     31%|███       | 308/1000 [00:00<00:00, 8723.15 it/sec]
INFO - 16:25:31:     31%|███       | 309/1000 [00:00<00:00, 8724.31 it/sec]
INFO - 16:25:31:     31%|███       | 310/1000 [00:00<00:00, 8725.99 it/sec]
INFO - 16:25:31:     31%|███       | 311/1000 [00:00<00:00, 8727.55 it/sec]
INFO - 16:25:31:     31%|███       | 312/1000 [00:00<00:00, 8727.06 it/sec]
INFO - 16:25:31:     31%|███▏      | 313/1000 [00:00<00:00, 8728.32 it/sec]
INFO - 16:25:31:     31%|███▏      | 314/1000 [00:00<00:00, 8730.08 it/sec]
INFO - 16:25:31:     32%|███▏      | 315/1000 [00:00<00:00, 8731.67 it/sec]
INFO - 16:25:31:     32%|███▏      | 316/1000 [00:00<00:00, 8727.78 it/sec]
INFO - 16:25:31:     32%|███▏      | 317/1000 [00:00<00:00, 8728.38 it/sec]
INFO - 16:25:31:     32%|███▏      | 318/1000 [00:00<00:00, 8729.21 it/sec]
INFO - 16:25:31:     32%|███▏      | 319/1000 [00:00<00:00, 8730.78 it/sec]
INFO - 16:25:31:     32%|███▏      | 320/1000 [00:00<00:00, 8732.11 it/sec]
INFO - 16:25:31:     32%|███▏      | 321/1000 [00:00<00:00, 8733.15 it/sec]
INFO - 16:25:31:     32%|███▏      | 322/1000 [00:00<00:00, 8734.12 it/sec]
INFO - 16:25:31:     32%|███▏      | 323/1000 [00:00<00:00, 8735.26 it/sec]
INFO - 16:25:31:     32%|███▏      | 324/1000 [00:00<00:00, 8736.67 it/sec]
INFO - 16:25:31:     32%|███▎      | 325/1000 [00:00<00:00, 8733.26 it/sec]
INFO - 16:25:31:     33%|███▎      | 326/1000 [00:00<00:00, 8733.72 it/sec]
INFO - 16:25:31:     33%|███▎      | 327/1000 [00:00<00:00, 8735.30 it/sec]
INFO - 16:25:31:     33%|███▎      | 328/1000 [00:00<00:00, 8736.80 it/sec]
INFO - 16:25:31:     33%|███▎      | 329/1000 [00:00<00:00, 8737.91 it/sec]
INFO - 16:25:31:     33%|███▎      | 330/1000 [00:00<00:00, 8737.42 it/sec]
INFO - 16:25:31:     33%|███▎      | 331/1000 [00:00<00:00, 8739.01 it/sec]
INFO - 16:25:31:     33%|███▎      | 332/1000 [00:00<00:00, 8740.60 it/sec]
INFO - 16:25:31:     33%|███▎      | 333/1000 [00:00<00:00, 8742.18 it/sec]
INFO - 16:25:31:     33%|███▎      | 334/1000 [00:00<00:00, 8738.13 it/sec]
INFO - 16:25:31:     34%|███▎      | 335/1000 [00:00<00:00, 8738.46 it/sec]
INFO - 16:25:31:     34%|███▎      | 336/1000 [00:00<00:00, 8739.81 it/sec]
INFO - 16:25:31:     34%|███▎      | 337/1000 [00:00<00:00, 8741.16 it/sec]
INFO - 16:25:31:     34%|███▍      | 338/1000 [00:00<00:00, 8742.71 it/sec]
INFO - 16:25:31:     34%|███▍      | 339/1000 [00:00<00:00, 8744.42 it/sec]
INFO - 16:25:31:     34%|███▍      | 340/1000 [00:00<00:00, 8746.23 it/sec]
INFO - 16:25:31:     34%|███▍      | 341/1000 [00:00<00:00, 8747.49 it/sec]
INFO - 16:25:31:     34%|███▍      | 342/1000 [00:00<00:00, 8747.67 it/sec]
INFO - 16:25:31:     34%|███▍      | 343/1000 [00:00<00:00, 8742.91 it/sec]
INFO - 16:25:31:     34%|███▍      | 344/1000 [00:00<00:00, 8743.64 it/sec]
INFO - 16:25:31:     34%|███▍      | 345/1000 [00:00<00:00, 8745.32 it/sec]
INFO - 16:25:31:     35%|███▍      | 346/1000 [00:00<00:00, 8746.61 it/sec]
INFO - 16:25:31:     35%|███▍      | 347/1000 [00:00<00:00, 8746.43 it/sec]
INFO - 16:25:31:     35%|███▍      | 348/1000 [00:00<00:00, 8746.93 it/sec]
INFO - 16:25:31:     35%|███▍      | 349/1000 [00:00<00:00, 8748.37 it/sec]
INFO - 16:25:31:     35%|███▌      | 350/1000 [00:00<00:00, 8748.70 it/sec]
INFO - 16:25:31:     35%|███▌      | 351/1000 [00:00<00:00, 8750.03 it/sec]
INFO - 16:25:31:     35%|███▌      | 352/1000 [00:00<00:00, 8736.63 it/sec]
INFO - 16:25:31:     35%|███▌      | 353/1000 [00:00<00:00, 8735.25 it/sec]
INFO - 16:25:31:     35%|███▌      | 354/1000 [00:00<00:00, 8735.77 it/sec]
INFO - 16:25:31:     36%|███▌      | 355/1000 [00:00<00:00, 8736.95 it/sec]
INFO - 16:25:31:     36%|███▌      | 356/1000 [00:00<00:00, 8738.29 it/sec]
INFO - 16:25:31:     36%|███▌      | 357/1000 [00:00<00:00, 8738.39 it/sec]
INFO - 16:25:31:     36%|███▌      | 358/1000 [00:00<00:00, 8739.81 it/sec]
INFO - 16:25:31:     36%|███▌      | 359/1000 [00:00<00:00, 8741.18 it/sec]
INFO - 16:25:31:     36%|███▌      | 360/1000 [00:00<00:00, 8738.44 it/sec]
INFO - 16:25:31:     36%|███▌      | 361/1000 [00:00<00:00, 8737.83 it/sec]
INFO - 16:25:31:     36%|███▌      | 362/1000 [00:00<00:00, 8738.69 it/sec]
INFO - 16:25:31:     36%|███▋      | 363/1000 [00:00<00:00, 8739.79 it/sec]
INFO - 16:25:31:     36%|███▋      | 364/1000 [00:00<00:00, 8740.88 it/sec]
INFO - 16:25:31:     36%|███▋      | 365/1000 [00:00<00:00, 8742.62 it/sec]
INFO - 16:25:31:     37%|███▋      | 366/1000 [00:00<00:00, 8743.86 it/sec]
INFO - 16:25:31:     37%|███▋      | 367/1000 [00:00<00:00, 8744.98 it/sec]
INFO - 16:25:31:     37%|███▋      | 368/1000 [00:00<00:00, 8746.25 it/sec]
INFO - 16:25:31:     37%|███▋      | 369/1000 [00:00<00:00, 8742.97 it/sec]
INFO - 16:25:31:     37%|███▋      | 370/1000 [00:00<00:00, 8743.80 it/sec]
INFO - 16:25:31:     37%|███▋      | 371/1000 [00:00<00:00, 8744.86 it/sec]
INFO - 16:25:31:     37%|███▋      | 372/1000 [00:00<00:00, 8745.43 it/sec]
INFO - 16:25:31:     37%|███▋      | 373/1000 [00:00<00:00, 8746.39 it/sec]
INFO - 16:25:31:     37%|███▋      | 374/1000 [00:00<00:00, 8748.37 it/sec]
INFO - 16:25:31:     38%|███▊      | 375/1000 [00:00<00:00, 8749.70 it/sec]
INFO - 16:25:31:     38%|███▊      | 376/1000 [00:00<00:00, 8751.23 it/sec]
INFO - 16:25:31:     38%|███▊      | 377/1000 [00:00<00:00, 8753.08 it/sec]
INFO - 16:25:31:     38%|███▊      | 378/1000 [00:00<00:00, 8749.51 it/sec]
INFO - 16:25:31:     38%|███▊      | 379/1000 [00:00<00:00, 8750.16 it/sec]
INFO - 16:25:31:     38%|███▊      | 380/1000 [00:00<00:00, 8751.52 it/sec]
INFO - 16:25:31:     38%|███▊      | 381/1000 [00:00<00:00, 8753.26 it/sec]
INFO - 16:25:31:     38%|███▊      | 382/1000 [00:00<00:00, 8754.65 it/sec]
INFO - 16:25:31:     38%|███▊      | 383/1000 [00:00<00:00, 8753.99 it/sec]
INFO - 16:25:31:     38%|███▊      | 384/1000 [00:00<00:00, 8755.38 it/sec]
INFO - 16:25:31:     38%|███▊      | 385/1000 [00:00<00:00, 8756.33 it/sec]
INFO - 16:25:31:     39%|███▊      | 386/1000 [00:00<00:00, 8757.65 it/sec]
INFO - 16:25:31:     39%|███▊      | 387/1000 [00:00<00:00, 8754.68 it/sec]
INFO - 16:25:31:     39%|███▉      | 388/1000 [00:00<00:00, 8755.34 it/sec]
INFO - 16:25:31:     39%|███▉      | 389/1000 [00:00<00:00, 8756.75 it/sec]
INFO - 16:25:31:     39%|███▉      | 390/1000 [00:00<00:00, 8758.44 it/sec]
INFO - 16:25:31:     39%|███▉      | 391/1000 [00:00<00:00, 8759.88 it/sec]
INFO - 16:25:31:     39%|███▉      | 392/1000 [00:00<00:00, 8761.14 it/sec]
INFO - 16:25:31:     39%|███▉      | 393/1000 [00:00<00:00, 8762.10 it/sec]
INFO - 16:25:31:     39%|███▉      | 394/1000 [00:00<00:00, 8763.29 it/sec]
INFO - 16:25:31:     40%|███▉      | 395/1000 [00:00<00:00, 8764.85 it/sec]
INFO - 16:25:31:     40%|███▉      | 396/1000 [00:00<00:00, 8761.83 it/sec]
INFO - 16:25:31:     40%|███▉      | 397/1000 [00:00<00:00, 8762.18 it/sec]
INFO - 16:25:31:     40%|███▉      | 398/1000 [00:00<00:00, 8763.41 it/sec]
INFO - 16:25:31:     40%|███▉      | 399/1000 [00:00<00:00, 8764.81 it/sec]
INFO - 16:25:31:     40%|████      | 400/1000 [00:00<00:00, 8766.53 it/sec]
INFO - 16:25:31:     40%|████      | 401/1000 [00:00<00:00, 8768.06 it/sec]
INFO - 16:25:31:     40%|████      | 402/1000 [00:00<00:00, 8769.63 it/sec]
INFO - 16:25:31:     40%|████      | 403/1000 [00:00<00:00, 8771.10 it/sec]
INFO - 16:25:31:     40%|████      | 404/1000 [00:00<00:00, 8772.88 it/sec]
INFO - 16:25:31:     40%|████      | 405/1000 [00:00<00:00, 8770.39 it/sec]
INFO - 16:25:31:     41%|████      | 406/1000 [00:00<00:00, 8769.68 it/sec]
INFO - 16:25:31:     41%|████      | 407/1000 [00:00<00:00, 8770.95 it/sec]
INFO - 16:25:31:     41%|████      | 408/1000 [00:00<00:00, 8772.76 it/sec]
INFO - 16:25:31:     41%|████      | 409/1000 [00:00<00:00, 8773.93 it/sec]
INFO - 16:25:31:     41%|████      | 410/1000 [00:00<00:00, 8774.29 it/sec]
INFO - 16:25:31:     41%|████      | 411/1000 [00:00<00:00, 8775.28 it/sec]
INFO - 16:25:31:     41%|████      | 412/1000 [00:00<00:00, 8776.25 it/sec]
INFO - 16:25:31:     41%|████▏     | 413/1000 [00:00<00:00, 8769.54 it/sec]
INFO - 16:25:31:     41%|████▏     | 414/1000 [00:00<00:00, 8765.44 it/sec]
INFO - 16:25:31:     42%|████▏     | 415/1000 [00:00<00:00, 8765.99 it/sec]
INFO - 16:25:31:     42%|████▏     | 416/1000 [00:00<00:00, 8766.14 it/sec]
INFO - 16:25:31:     42%|████▏     | 417/1000 [00:00<00:00, 8767.04 it/sec]
INFO - 16:25:31:     42%|████▏     | 418/1000 [00:00<00:00, 8741.18 it/sec]
INFO - 16:25:31:     42%|████▏     | 419/1000 [00:00<00:00, 8740.78 it/sec]
INFO - 16:25:31:     42%|████▏     | 420/1000 [00:00<00:00, 8741.82 it/sec]
INFO - 16:25:31:     42%|████▏     | 421/1000 [00:00<00:00, 8739.78 it/sec]
INFO - 16:25:31:     42%|████▏     | 422/1000 [00:00<00:00, 8739.47 it/sec]
INFO - 16:25:31:     42%|████▏     | 423/1000 [00:00<00:00, 8740.41 it/sec]
INFO - 16:25:31:     42%|████▏     | 424/1000 [00:00<00:00, 8742.13 it/sec]
INFO - 16:25:31:     42%|████▎     | 425/1000 [00:00<00:00, 8742.38 it/sec]
INFO - 16:25:31:     43%|████▎     | 426/1000 [00:00<00:00, 8743.44 it/sec]
INFO - 16:25:31:     43%|████▎     | 427/1000 [00:00<00:00, 8744.40 it/sec]
INFO - 16:25:31:     43%|████▎     | 428/1000 [00:00<00:00, 8745.84 it/sec]
INFO - 16:25:31:     43%|████▎     | 429/1000 [00:00<00:00, 8746.67 it/sec]
INFO - 16:25:31:     43%|████▎     | 430/1000 [00:00<00:00, 8744.83 it/sec]
INFO - 16:25:31:     43%|████▎     | 431/1000 [00:00<00:00, 8744.85 it/sec]
INFO - 16:25:31:     43%|████▎     | 432/1000 [00:00<00:00, 8745.77 it/sec]
INFO - 16:25:31:     43%|████▎     | 433/1000 [00:00<00:00, 8747.01 it/sec]
INFO - 16:25:31:     43%|████▎     | 434/1000 [00:00<00:00, 8747.75 it/sec]
INFO - 16:25:31:     44%|████▎     | 435/1000 [00:00<00:00, 8749.03 it/sec]
INFO - 16:25:31:     44%|████▎     | 436/1000 [00:00<00:00, 8749.34 it/sec]
INFO - 16:25:31:     44%|████▎     | 437/1000 [00:00<00:00, 8750.52 it/sec]
INFO - 16:25:31:     44%|████▍     | 438/1000 [00:00<00:00, 8751.20 it/sec]
INFO - 16:25:31:     44%|████▍     | 439/1000 [00:00<00:00, 8748.85 it/sec]
INFO - 16:25:31:     44%|████▍     | 440/1000 [00:00<00:00, 8748.28 it/sec]
INFO - 16:25:31:     44%|████▍     | 441/1000 [00:00<00:00, 8748.84 it/sec]
INFO - 16:25:31:     44%|████▍     | 442/1000 [00:00<00:00, 8749.52 it/sec]
INFO - 16:25:31:     44%|████▍     | 443/1000 [00:00<00:00, 8750.40 it/sec]
INFO - 16:25:31:     44%|████▍     | 444/1000 [00:00<00:00, 8750.20 it/sec]
INFO - 16:25:31:     44%|████▍     | 445/1000 [00:00<00:00, 8750.55 it/sec]
INFO - 16:25:31:     45%|████▍     | 446/1000 [00:00<00:00, 8751.05 it/sec]
INFO - 16:25:31:     45%|████▍     | 447/1000 [00:00<00:00, 8751.10 it/sec]
INFO - 16:25:31:     45%|████▍     | 448/1000 [00:00<00:00, 8747.49 it/sec]
INFO - 16:25:31:     45%|████▍     | 449/1000 [00:00<00:00, 8747.10 it/sec]
INFO - 16:25:31:     45%|████▌     | 450/1000 [00:00<00:00, 8747.93 it/sec]
INFO - 16:25:31:     45%|████▌     | 451/1000 [00:00<00:00, 8748.16 it/sec]
INFO - 16:25:31:     45%|████▌     | 452/1000 [00:00<00:00, 8747.00 it/sec]
INFO - 16:25:31:     45%|████▌     | 453/1000 [00:00<00:00, 8746.66 it/sec]
INFO - 16:25:31:     45%|████▌     | 454/1000 [00:00<00:00, 8746.88 it/sec]
INFO - 16:25:31:     46%|████▌     | 455/1000 [00:00<00:00, 8746.30 it/sec]
INFO - 16:25:31:     46%|████▌     | 456/1000 [00:00<00:00, 8744.09 it/sec]
INFO - 16:25:31:     46%|████▌     | 457/1000 [00:00<00:00, 8743.00 it/sec]
INFO - 16:25:31:     46%|████▌     | 458/1000 [00:00<00:00, 8743.26 it/sec]
INFO - 16:25:31:     46%|████▌     | 459/1000 [00:00<00:00, 8743.93 it/sec]
INFO - 16:25:31:     46%|████▌     | 460/1000 [00:00<00:00, 8744.39 it/sec]
INFO - 16:25:31:     46%|████▌     | 461/1000 [00:00<00:00, 8745.01 it/sec]
INFO - 16:25:31:     46%|████▌     | 462/1000 [00:00<00:00, 8745.82 it/sec]
INFO - 16:25:31:     46%|████▋     | 463/1000 [00:00<00:00, 8746.99 it/sec]
INFO - 16:25:31:     46%|████▋     | 464/1000 [00:00<00:00, 8748.11 it/sec]
INFO - 16:25:31:     46%|████▋     | 465/1000 [00:00<00:00, 8745.81 it/sec]
INFO - 16:25:31:     47%|████▋     | 466/1000 [00:00<00:00, 8744.47 it/sec]
INFO - 16:25:31:     47%|████▋     | 467/1000 [00:00<00:00, 8745.39 it/sec]
INFO - 16:25:31:     47%|████▋     | 468/1000 [00:00<00:00, 8746.39 it/sec]
INFO - 16:25:31:     47%|████▋     | 469/1000 [00:00<00:00, 8747.54 it/sec]
INFO - 16:25:31:     47%|████▋     | 470/1000 [00:00<00:00, 8747.05 it/sec]
INFO - 16:25:31:     47%|████▋     | 471/1000 [00:00<00:00, 8747.85 it/sec]
INFO - 16:25:31:     47%|████▋     | 472/1000 [00:00<00:00, 8748.79 it/sec]
INFO - 16:25:31:     47%|████▋     | 473/1000 [00:00<00:00, 8749.46 it/sec]
INFO - 16:25:31:     47%|████▋     | 474/1000 [00:00<00:00, 8746.94 it/sec]
INFO - 16:25:31:     48%|████▊     | 475/1000 [00:00<00:00, 8746.84 it/sec]
INFO - 16:25:31:     48%|████▊     | 476/1000 [00:00<00:00, 8746.79 it/sec]
INFO - 16:25:31:     48%|████▊     | 477/1000 [00:00<00:00, 8747.03 it/sec]
INFO - 16:25:31:     48%|████▊     | 478/1000 [00:00<00:00, 8747.70 it/sec]
INFO - 16:25:31:     48%|████▊     | 479/1000 [00:00<00:00, 8747.99 it/sec]
INFO - 16:25:31:     48%|████▊     | 480/1000 [00:00<00:00, 8747.63 it/sec]
INFO - 16:25:31:     48%|████▊     | 481/1000 [00:00<00:00, 8747.64 it/sec]
INFO - 16:25:31:     48%|████▊     | 482/1000 [00:00<00:00, 8748.08 it/sec]
INFO - 16:25:31:     48%|████▊     | 483/1000 [00:00<00:00, 8744.85 it/sec]
INFO - 16:25:31:     48%|████▊     | 484/1000 [00:00<00:00, 8744.98 it/sec]
INFO - 16:25:31:     48%|████▊     | 485/1000 [00:00<00:00, 8745.83 it/sec]
INFO - 16:25:31:     49%|████▊     | 486/1000 [00:00<00:00, 8746.87 it/sec]
INFO - 16:25:31:     49%|████▊     | 487/1000 [00:00<00:00, 8746.22 it/sec]
INFO - 16:25:31:     49%|████▉     | 488/1000 [00:00<00:00, 8746.31 it/sec]
INFO - 16:25:31:     49%|████▉     | 489/1000 [00:00<00:00, 8746.63 it/sec]
INFO - 16:25:31:     49%|████▉     | 490/1000 [00:00<00:00, 8747.39 it/sec]
INFO - 16:25:31:     49%|████▉     | 491/1000 [00:00<00:00, 8746.22 it/sec]
INFO - 16:25:31:     49%|████▉     | 492/1000 [00:00<00:00, 8745.76 it/sec]
INFO - 16:25:31:     49%|████▉     | 493/1000 [00:00<00:00, 8746.60 it/sec]
INFO - 16:25:31:     49%|████▉     | 494/1000 [00:00<00:00, 8747.80 it/sec]
INFO - 16:25:31:     50%|████▉     | 495/1000 [00:00<00:00, 8748.18 it/sec]
INFO - 16:25:31:     50%|████▉     | 496/1000 [00:00<00:00, 8749.08 it/sec]
INFO - 16:25:31:     50%|████▉     | 497/1000 [00:00<00:00, 8749.06 it/sec]
INFO - 16:25:31:     50%|████▉     | 498/1000 [00:00<00:00, 8749.52 it/sec]
INFO - 16:25:31:     50%|████▉     | 499/1000 [00:00<00:00, 8750.19 it/sec]
INFO - 16:25:31:     50%|█████     | 500/1000 [00:00<00:00, 8748.56 it/sec]
INFO - 16:25:31:     50%|█████     | 501/1000 [00:00<00:00, 8747.85 it/sec]
INFO - 16:25:31:     50%|█████     | 502/1000 [00:00<00:00, 8748.26 it/sec]
INFO - 16:25:31:     50%|█████     | 503/1000 [00:00<00:00, 8749.00 it/sec]
INFO - 16:25:31:     50%|█████     | 504/1000 [00:00<00:00, 8749.92 it/sec]
INFO - 16:25:31:     50%|█████     | 505/1000 [00:00<00:00, 8749.58 it/sec]
INFO - 16:25:31:     51%|█████     | 506/1000 [00:00<00:00, 8750.02 it/sec]
INFO - 16:25:31:     51%|█████     | 507/1000 [00:00<00:00, 8750.32 it/sec]
INFO - 16:25:31:     51%|█████     | 508/1000 [00:00<00:00, 8750.37 it/sec]
INFO - 16:25:31:     51%|█████     | 509/1000 [00:00<00:00, 8747.84 it/sec]
INFO - 16:25:31:     51%|█████     | 510/1000 [00:00<00:00, 8747.50 it/sec]
INFO - 16:25:31:     51%|█████     | 511/1000 [00:00<00:00, 8748.26 it/sec]
INFO - 16:25:31:     51%|█████     | 512/1000 [00:00<00:00, 8748.92 it/sec]
INFO - 16:25:31:     51%|█████▏    | 513/1000 [00:00<00:00, 8749.61 it/sec]
INFO - 16:25:31:     51%|█████▏    | 514/1000 [00:00<00:00, 8749.59 it/sec]
INFO - 16:25:31:     52%|█████▏    | 515/1000 [00:00<00:00, 8750.13 it/sec]
INFO - 16:25:31:     52%|█████▏    | 516/1000 [00:00<00:00, 8750.75 it/sec]
INFO - 16:25:31:     52%|█████▏    | 517/1000 [00:00<00:00, 8737.71 it/sec]
INFO - 16:25:31:     52%|█████▏    | 518/1000 [00:00<00:00, 8736.69 it/sec]
INFO - 16:25:31:     52%|█████▏    | 519/1000 [00:00<00:00, 8737.29 it/sec]
INFO - 16:25:31:     52%|█████▏    | 520/1000 [00:00<00:00, 8737.92 it/sec]
INFO - 16:25:31:     52%|█████▏    | 521/1000 [00:00<00:00, 8738.45 it/sec]
INFO - 16:25:31:     52%|█████▏    | 522/1000 [00:00<00:00, 8737.78 it/sec]
INFO - 16:25:31:     52%|█████▏    | 523/1000 [00:00<00:00, 8738.52 it/sec]
INFO - 16:25:31:     52%|█████▏    | 524/1000 [00:00<00:00, 8739.52 it/sec]
INFO - 16:25:31:     52%|█████▎    | 525/1000 [00:00<00:00, 8739.80 it/sec]
INFO - 16:25:31:     53%|█████▎    | 526/1000 [00:00<00:00, 8737.06 it/sec]
INFO - 16:25:31:     53%|█████▎    | 527/1000 [00:00<00:00, 8737.44 it/sec]
INFO - 16:25:31:     53%|█████▎    | 528/1000 [00:00<00:00, 8737.79 it/sec]
INFO - 16:25:31:     53%|█████▎    | 529/1000 [00:00<00:00, 8738.34 it/sec]
INFO - 16:25:31:     53%|█████▎    | 530/1000 [00:00<00:00, 8739.20 it/sec]
INFO - 16:25:31:     53%|█████▎    | 531/1000 [00:00<00:00, 8739.74 it/sec]
INFO - 16:25:31:     53%|█████▎    | 532/1000 [00:00<00:00, 8740.87 it/sec]
INFO - 16:25:31:     53%|█████▎    | 533/1000 [00:00<00:00, 8741.52 it/sec]
INFO - 16:25:31:     53%|█████▎    | 534/1000 [00:00<00:00, 8742.47 it/sec]
INFO - 16:25:31:     54%|█████▎    | 535/1000 [00:00<00:00, 8740.35 it/sec]
INFO - 16:25:31:     54%|█████▎    | 536/1000 [00:00<00:00, 8740.31 it/sec]
INFO - 16:25:31:     54%|█████▎    | 537/1000 [00:00<00:00, 8741.25 it/sec]
INFO - 16:25:31:     54%|█████▍    | 538/1000 [00:00<00:00, 8742.33 it/sec]
INFO - 16:25:31:     54%|█████▍    | 539/1000 [00:00<00:00, 8742.39 it/sec]
INFO - 16:25:31:     54%|█████▍    | 540/1000 [00:00<00:00, 8743.02 it/sec]
INFO - 16:25:31:     54%|█████▍    | 541/1000 [00:00<00:00, 8743.62 it/sec]
INFO - 16:25:31:     54%|█████▍    | 542/1000 [00:00<00:00, 8742.47 it/sec]
INFO - 16:25:31:     54%|█████▍    | 543/1000 [00:00<00:00, 8742.43 it/sec]
INFO - 16:25:31:     54%|█████▍    | 544/1000 [00:00<00:00, 8739.64 it/sec]
INFO - 16:25:31:     55%|█████▍    | 545/1000 [00:00<00:00, 8740.00 it/sec]
INFO - 16:25:31:     55%|█████▍    | 546/1000 [00:00<00:00, 8740.37 it/sec]
INFO - 16:25:31:     55%|█████▍    | 547/1000 [00:00<00:00, 8740.70 it/sec]
INFO - 16:25:31:     55%|█████▍    | 548/1000 [00:00<00:00, 8741.19 it/sec]
INFO - 16:25:31:     55%|█████▍    | 549/1000 [00:00<00:00, 8741.88 it/sec]
INFO - 16:25:31:     55%|█████▌    | 550/1000 [00:00<00:00, 8742.14 it/sec]
INFO - 16:25:31:     55%|█████▌    | 551/1000 [00:00<00:00, 8742.33 it/sec]
INFO - 16:25:31:     55%|█████▌    | 552/1000 [00:00<00:00, 8740.84 it/sec]
INFO - 16:25:31:     55%|█████▌    | 553/1000 [00:00<00:00, 8740.11 it/sec]
INFO - 16:25:31:     55%|█████▌    | 554/1000 [00:00<00:00, 8740.73 it/sec]
INFO - 16:25:31:     56%|█████▌    | 555/1000 [00:00<00:00, 8741.48 it/sec]
INFO - 16:25:31:     56%|█████▌    | 556/1000 [00:00<00:00, 8742.06 it/sec]
INFO - 16:25:31:     56%|█████▌    | 557/1000 [00:00<00:00, 8741.60 it/sec]
INFO - 16:25:31:     56%|█████▌    | 558/1000 [00:00<00:00, 8742.08 it/sec]
INFO - 16:25:31:     56%|█████▌    | 559/1000 [00:00<00:00, 8742.79 it/sec]
INFO - 16:25:31:     56%|█████▌    | 560/1000 [00:00<00:00, 8742.95 it/sec]
INFO - 16:25:31:     56%|█████▌    | 561/1000 [00:00<00:00, 8741.25 it/sec]
INFO - 16:25:31:     56%|█████▌    | 562/1000 [00:00<00:00, 8740.86 it/sec]
INFO - 16:25:31:     56%|█████▋    | 563/1000 [00:00<00:00, 8741.37 it/sec]
INFO - 16:25:31:     56%|█████▋    | 564/1000 [00:00<00:00, 8741.52 it/sec]
INFO - 16:25:31:     56%|█████▋    | 565/1000 [00:00<00:00, 8741.78 it/sec]
INFO - 16:25:31:     57%|█████▋    | 566/1000 [00:00<00:00, 8741.96 it/sec]
INFO - 16:25:31:     57%|█████▋    | 567/1000 [00:00<00:00, 8723.42 it/sec]
INFO - 16:25:31:     57%|█████▋    | 568/1000 [00:00<00:00, 8718.69 it/sec]
INFO - 16:25:31:     57%|█████▋    | 569/1000 [00:00<00:00, 8716.24 it/sec]
INFO - 16:25:31:     57%|█████▋    | 570/1000 [00:00<00:00, 8715.87 it/sec]
INFO - 16:25:31:     57%|█████▋    | 571/1000 [00:00<00:00, 8715.97 it/sec]
INFO - 16:25:31:     57%|█████▋    | 572/1000 [00:00<00:00, 8716.17 it/sec]
INFO - 16:25:31:     57%|█████▋    | 573/1000 [00:00<00:00, 8716.39 it/sec]
INFO - 16:25:31:     57%|█████▋    | 574/1000 [00:00<00:00, 8716.81 it/sec]
INFO - 16:25:31:     57%|█████▊    | 575/1000 [00:00<00:00, 8717.19 it/sec]
INFO - 16:25:31:     58%|█████▊    | 576/1000 [00:00<00:00, 8717.45 it/sec]
INFO - 16:25:31:     58%|█████▊    | 577/1000 [00:00<00:00, 8715.23 it/sec]
INFO - 16:25:31:     58%|█████▊    | 578/1000 [00:00<00:00, 8715.30 it/sec]
INFO - 16:25:31:     58%|█████▊    | 579/1000 [00:00<00:00, 8715.74 it/sec]
INFO - 16:25:31:     58%|█████▊    | 580/1000 [00:00<00:00, 8716.22 it/sec]
INFO - 16:25:31:     58%|█████▊    | 581/1000 [00:00<00:00, 8716.69 it/sec]
INFO - 16:25:31:     58%|█████▊    | 582/1000 [00:00<00:00, 8716.98 it/sec]
INFO - 16:25:31:     58%|█████▊    | 583/1000 [00:00<00:00, 8717.36 it/sec]
INFO - 16:25:31:     58%|█████▊    | 584/1000 [00:00<00:00, 8717.24 it/sec]
INFO - 16:25:31:     58%|█████▊    | 585/1000 [00:00<00:00, 8717.55 it/sec]
INFO - 16:25:31:     59%|█████▊    | 586/1000 [00:00<00:00, 8714.15 it/sec]
INFO - 16:25:31:     59%|█████▊    | 587/1000 [00:00<00:00, 8714.10 it/sec]
INFO - 16:25:31:     59%|█████▉    | 588/1000 [00:00<00:00, 8714.30 it/sec]
INFO - 16:25:31:     59%|█████▉    | 589/1000 [00:00<00:00, 8714.71 it/sec]
INFO - 16:25:31:     59%|█████▉    | 590/1000 [00:00<00:00, 8713.98 it/sec]
INFO - 16:25:31:     59%|█████▉    | 591/1000 [00:00<00:00, 8714.02 it/sec]
INFO - 16:25:31:     59%|█████▉    | 592/1000 [00:00<00:00, 8714.34 it/sec]
INFO - 16:25:31:     59%|█████▉    | 593/1000 [00:00<00:00, 8714.59 it/sec]
INFO - 16:25:31:     59%|█████▉    | 594/1000 [00:00<00:00, 8711.40 it/sec]
INFO - 16:25:31:     60%|█████▉    | 595/1000 [00:00<00:00, 8710.47 it/sec]
INFO - 16:25:31:     60%|█████▉    | 596/1000 [00:00<00:00, 8710.88 it/sec]
INFO - 16:25:31:     60%|█████▉    | 597/1000 [00:00<00:00, 8711.56 it/sec]
INFO - 16:25:31:     60%|█████▉    | 598/1000 [00:00<00:00, 8712.21 it/sec]
INFO - 16:25:31:     60%|█████▉    | 599/1000 [00:00<00:00, 8712.89 it/sec]
INFO - 16:25:31:     60%|██████    | 600/1000 [00:00<00:00, 8713.45 it/sec]
INFO - 16:25:31:     60%|██████    | 601/1000 [00:00<00:00, 8713.82 it/sec]
INFO - 16:25:31:     60%|██████    | 602/1000 [00:00<00:00, 8714.19 it/sec]
INFO - 16:25:31:     60%|██████    | 603/1000 [00:00<00:00, 8711.23 it/sec]
INFO - 16:25:31:     60%|██████    | 604/1000 [00:00<00:00, 8710.61 it/sec]
INFO - 16:25:31:     60%|██████    | 605/1000 [00:00<00:00, 8710.84 it/sec]
INFO - 16:25:31:     61%|██████    | 606/1000 [00:00<00:00, 8711.09 it/sec]
INFO - 16:25:31:     61%|██████    | 607/1000 [00:00<00:00, 8711.40 it/sec]
INFO - 16:25:31:     61%|██████    | 608/1000 [00:00<00:00, 8711.60 it/sec]
INFO - 16:25:31:     61%|██████    | 609/1000 [00:00<00:00, 8712.06 it/sec]
INFO - 16:25:31:     61%|██████    | 610/1000 [00:00<00:00, 8712.48 it/sec]
INFO - 16:25:31:     61%|██████    | 611/1000 [00:00<00:00, 8711.16 it/sec]
INFO - 16:25:31:     61%|██████    | 612/1000 [00:00<00:00, 8710.32 it/sec]
INFO - 16:25:31:     61%|██████▏   | 613/1000 [00:00<00:00, 8710.04 it/sec]
INFO - 16:25:31:     61%|██████▏   | 614/1000 [00:00<00:00, 8710.32 it/sec]
INFO - 16:25:31:     62%|██████▏   | 615/1000 [00:00<00:00, 8710.81 it/sec]
INFO - 16:25:31:     62%|██████▏   | 616/1000 [00:00<00:00, 8711.23 it/sec]
INFO - 16:25:31:     62%|██████▏   | 617/1000 [00:00<00:00, 8711.69 it/sec]
INFO - 16:25:31:     62%|██████▏   | 618/1000 [00:00<00:00, 8712.14 it/sec]
INFO - 16:25:31:     62%|██████▏   | 619/1000 [00:00<00:00, 8711.25 it/sec]
INFO - 16:25:31:     62%|██████▏   | 620/1000 [00:00<00:00, 8708.55 it/sec]
INFO - 16:25:31:     62%|██████▏   | 621/1000 [00:00<00:00, 8708.57 it/sec]
INFO - 16:25:31:     62%|██████▏   | 622/1000 [00:00<00:00, 8708.70 it/sec]
INFO - 16:25:31:     62%|██████▏   | 623/1000 [00:00<00:00, 8708.40 it/sec]
INFO - 16:25:31:     62%|██████▏   | 624/1000 [00:00<00:00, 8708.33 it/sec]
INFO - 16:25:31:     62%|██████▎   | 625/1000 [00:00<00:00, 8707.77 it/sec]
INFO - 16:25:31:     63%|██████▎   | 626/1000 [00:00<00:00, 8707.73 it/sec]
INFO - 16:25:31:     63%|██████▎   | 627/1000 [00:00<00:00, 8708.39 it/sec]
INFO - 16:25:31:     63%|██████▎   | 628/1000 [00:00<00:00, 8708.43 it/sec]
INFO - 16:25:31:     63%|██████▎   | 629/1000 [00:00<00:00, 8705.78 it/sec]
INFO - 16:25:31:     63%|██████▎   | 630/1000 [00:00<00:00, 8705.95 it/sec]
INFO - 16:25:31:     63%|██████▎   | 631/1000 [00:00<00:00, 8706.37 it/sec]
INFO - 16:25:31:     63%|██████▎   | 632/1000 [00:00<00:00, 8705.91 it/sec]
INFO - 16:25:31:     63%|██████▎   | 633/1000 [00:00<00:00, 8705.81 it/sec]
INFO - 16:25:31:     63%|██████▎   | 634/1000 [00:00<00:00, 8705.86 it/sec]
INFO - 16:25:31:     64%|██████▎   | 635/1000 [00:00<00:00, 8706.11 it/sec]
INFO - 16:25:31:     64%|██████▎   | 636/1000 [00:00<00:00, 8706.22 it/sec]
INFO - 16:25:31:     64%|██████▎   | 637/1000 [00:00<00:00, 8704.60 it/sec]
INFO - 16:25:31:     64%|██████▍   | 638/1000 [00:00<00:00, 8703.97 it/sec]
INFO - 16:25:31:     64%|██████▍   | 639/1000 [00:00<00:00, 8704.16 it/sec]
INFO - 16:25:31:     64%|██████▍   | 640/1000 [00:00<00:00, 8704.89 it/sec]
INFO - 16:25:31:     64%|██████▍   | 641/1000 [00:00<00:00, 8704.83 it/sec]
INFO - 16:25:31:     64%|██████▍   | 642/1000 [00:00<00:00, 8705.39 it/sec]
INFO - 16:25:31:     64%|██████▍   | 643/1000 [00:00<00:00, 8706.03 it/sec]
INFO - 16:25:31:     64%|██████▍   | 644/1000 [00:00<00:00, 8706.00 it/sec]
INFO - 16:25:31:     64%|██████▍   | 645/1000 [00:00<00:00, 8706.16 it/sec]
INFO - 16:25:31:     65%|██████▍   | 646/1000 [00:00<00:00, 8704.00 it/sec]
INFO - 16:25:31:     65%|██████▍   | 647/1000 [00:00<00:00, 8702.77 it/sec]
INFO - 16:25:31:     65%|██████▍   | 648/1000 [00:00<00:00, 8702.82 it/sec]
INFO - 16:25:31:     65%|██████▍   | 649/1000 [00:00<00:00, 8703.21 it/sec]
INFO - 16:25:31:     65%|██████▌   | 650/1000 [00:00<00:00, 8703.18 it/sec]
INFO - 16:25:31:     65%|██████▌   | 651/1000 [00:00<00:00, 8703.37 it/sec]
INFO - 16:25:31:     65%|██████▌   | 652/1000 [00:00<00:00, 8703.73 it/sec]
INFO - 16:25:31:     65%|██████▌   | 653/1000 [00:00<00:00, 8703.98 it/sec]
INFO - 16:25:31:     65%|██████▌   | 654/1000 [00:00<00:00, 8702.43 it/sec]
INFO - 16:25:31:     66%|██████▌   | 655/1000 [00:00<00:00, 8701.63 it/sec]
INFO - 16:25:31:     66%|██████▌   | 656/1000 [00:00<00:00, 8701.90 it/sec]
INFO - 16:25:31:     66%|██████▌   | 657/1000 [00:00<00:00, 8702.32 it/sec]
INFO - 16:25:31:     66%|██████▌   | 658/1000 [00:00<00:00, 8702.78 it/sec]
INFO - 16:25:31:     66%|██████▌   | 659/1000 [00:00<00:00, 8702.29 it/sec]
INFO - 16:25:31:     66%|██████▌   | 660/1000 [00:00<00:00, 8702.70 it/sec]
INFO - 16:25:31:     66%|██████▌   | 661/1000 [00:00<00:00, 8703.02 it/sec]
INFO - 16:25:31:     66%|██████▌   | 662/1000 [00:00<00:00, 8703.76 it/sec]
INFO - 16:25:31:     66%|██████▋   | 663/1000 [00:00<00:00, 8702.34 it/sec]
INFO - 16:25:31:     66%|██████▋   | 664/1000 [00:00<00:00, 8702.39 it/sec]
INFO - 16:25:31:     66%|██████▋   | 665/1000 [00:00<00:00, 8702.93 it/sec]
INFO - 16:25:31:     67%|██████▋   | 666/1000 [00:00<00:00, 8703.66 it/sec]
INFO - 16:25:31:     67%|██████▋   | 667/1000 [00:00<00:00, 8704.01 it/sec]
INFO - 16:25:31:     67%|██████▋   | 668/1000 [00:00<00:00, 8704.66 it/sec]
INFO - 16:25:31:     67%|██████▋   | 669/1000 [00:00<00:00, 8705.52 it/sec]
INFO - 16:25:31:     67%|██████▋   | 670/1000 [00:00<00:00, 8705.73 it/sec]
INFO - 16:25:31:     67%|██████▋   | 671/1000 [00:00<00:00, 8705.97 it/sec]
INFO - 16:25:31:     67%|██████▋   | 672/1000 [00:00<00:00, 8703.76 it/sec]
INFO - 16:25:31:     67%|██████▋   | 673/1000 [00:00<00:00, 8703.51 it/sec]
INFO - 16:25:31:     67%|██████▋   | 674/1000 [00:00<00:00, 8703.72 it/sec]
INFO - 16:25:31:     68%|██████▊   | 675/1000 [00:00<00:00, 8704.18 it/sec]
INFO - 16:25:31:     68%|██████▊   | 676/1000 [00:00<00:00, 8704.57 it/sec]
INFO - 16:25:31:     68%|██████▊   | 677/1000 [00:00<00:00, 8704.94 it/sec]
INFO - 16:25:31:     68%|██████▊   | 678/1000 [00:00<00:00, 8705.58 it/sec]
INFO - 16:25:31:     68%|██████▊   | 679/1000 [00:00<00:00, 8705.49 it/sec]
INFO - 16:25:31:     68%|██████▊   | 680/1000 [00:00<00:00, 8705.89 it/sec]
INFO - 16:25:31:     68%|██████▊   | 681/1000 [00:00<00:00, 8703.57 it/sec]
INFO - 16:25:31:     68%|██████▊   | 682/1000 [00:00<00:00, 8703.68 it/sec]
INFO - 16:25:31:     68%|██████▊   | 683/1000 [00:00<00:00, 8703.07 it/sec]
INFO - 16:25:31:     68%|██████▊   | 684/1000 [00:00<00:00, 8703.51 it/sec]
INFO - 16:25:31:     68%|██████▊   | 685/1000 [00:00<00:00, 8704.17 it/sec]
INFO - 16:25:31:     69%|██████▊   | 686/1000 [00:00<00:00, 8704.75 it/sec]
INFO - 16:25:31:     69%|██████▊   | 687/1000 [00:00<00:00, 8705.27 it/sec]
INFO - 16:25:31:     69%|██████▉   | 688/1000 [00:00<00:00, 8705.26 it/sec]
INFO - 16:25:31:     69%|██████▉   | 689/1000 [00:00<00:00, 8704.18 it/sec]
INFO - 16:25:31:     69%|██████▉   | 690/1000 [00:00<00:00, 8703.79 it/sec]
INFO - 16:25:31:     69%|██████▉   | 691/1000 [00:00<00:00, 8704.15 it/sec]
INFO - 16:25:31:     69%|██████▉   | 692/1000 [00:00<00:00, 8704.51 it/sec]
INFO - 16:25:31:     69%|██████▉   | 693/1000 [00:00<00:00, 8704.92 it/sec]
INFO - 16:25:31:     69%|██████▉   | 694/1000 [00:00<00:00, 8704.24 it/sec]
INFO - 16:25:31:     70%|██████▉   | 695/1000 [00:00<00:00, 8704.63 it/sec]
INFO - 16:25:31:     70%|██████▉   | 696/1000 [00:00<00:00, 8704.37 it/sec]
INFO - 16:25:31:     70%|██████▉   | 697/1000 [00:00<00:00, 8704.21 it/sec]
INFO - 16:25:31:     70%|██████▉   | 698/1000 [00:00<00:00, 8701.85 it/sec]
INFO - 16:25:31:     70%|██████▉   | 699/1000 [00:00<00:00, 8702.08 it/sec]
INFO - 16:25:31:     70%|███████   | 700/1000 [00:00<00:00, 8702.00 it/sec]
INFO - 16:25:31:     70%|███████   | 701/1000 [00:00<00:00, 8702.44 it/sec]
INFO - 16:25:31:     70%|███████   | 702/1000 [00:00<00:00, 8702.85 it/sec]
INFO - 16:25:31:     70%|███████   | 703/1000 [00:00<00:00, 8703.39 it/sec]
INFO - 16:25:31:     70%|███████   | 704/1000 [00:00<00:00, 8704.08 it/sec]
INFO - 16:25:31:     70%|███████   | 705/1000 [00:00<00:00, 8704.23 it/sec]
INFO - 16:25:31:     71%|███████   | 706/1000 [00:00<00:00, 8704.48 it/sec]
INFO - 16:25:31:     71%|███████   | 707/1000 [00:00<00:00, 8702.28 it/sec]
INFO - 16:25:31:     71%|███████   | 708/1000 [00:00<00:00, 8702.44 it/sec]
INFO - 16:25:31:     71%|███████   | 709/1000 [00:00<00:00, 8702.84 it/sec]
INFO - 16:25:31:     71%|███████   | 710/1000 [00:00<00:00, 8702.94 it/sec]
INFO - 16:25:31:     71%|███████   | 711/1000 [00:00<00:00, 8703.25 it/sec]
INFO - 16:25:31:     71%|███████   | 712/1000 [00:00<00:00, 8703.32 it/sec]
INFO - 16:25:31:     71%|███████▏  | 713/1000 [00:00<00:00, 8703.67 it/sec]
INFO - 16:25:31:     71%|███████▏  | 714/1000 [00:00<00:00, 8703.75 it/sec]
INFO - 16:25:31:     72%|███████▏  | 715/1000 [00:00<00:00, 8702.20 it/sec]
INFO - 16:25:31:     72%|███████▏  | 716/1000 [00:00<00:00, 8686.62 it/sec]
INFO - 16:25:31:     72%|███████▏  | 717/1000 [00:00<00:00, 8685.46 it/sec]
INFO - 16:25:31:     72%|███████▏  | 718/1000 [00:00<00:00, 8685.24 it/sec]
INFO - 16:25:31:     72%|███████▏  | 719/1000 [00:00<00:00, 8685.31 it/sec]
INFO - 16:25:31:     72%|███████▏  | 720/1000 [00:00<00:00, 8685.41 it/sec]
INFO - 16:25:31:     72%|███████▏  | 721/1000 [00:00<00:00, 8685.68 it/sec]
INFO - 16:25:31:     72%|███████▏  | 722/1000 [00:00<00:00, 8684.46 it/sec]
INFO - 16:25:31:     72%|███████▏  | 723/1000 [00:00<00:00, 8683.56 it/sec]
INFO - 16:25:31:     72%|███████▏  | 724/1000 [00:00<00:00, 8683.64 it/sec]
INFO - 16:25:31:     72%|███████▎  | 725/1000 [00:00<00:00, 8684.03 it/sec]
INFO - 16:25:31:     73%|███████▎  | 726/1000 [00:00<00:00, 8684.35 it/sec]
INFO - 16:25:31:     73%|███████▎  | 727/1000 [00:00<00:00, 8683.71 it/sec]
INFO - 16:25:31:     73%|███████▎  | 728/1000 [00:00<00:00, 8683.81 it/sec]
INFO - 16:25:31:     73%|███████▎  | 729/1000 [00:00<00:00, 8684.16 it/sec]
INFO - 16:25:31:     73%|███████▎  | 730/1000 [00:00<00:00, 8684.57 it/sec]
INFO - 16:25:31:     73%|███████▎  | 731/1000 [00:00<00:00, 8682.95 it/sec]
INFO - 16:25:31:     73%|███████▎  | 732/1000 [00:00<00:00, 8682.80 it/sec]
INFO - 16:25:31:     73%|███████▎  | 733/1000 [00:00<00:00, 8682.98 it/sec]
INFO - 16:25:31:     73%|███████▎  | 734/1000 [00:00<00:00, 8683.27 it/sec]
INFO - 16:25:31:     74%|███████▎  | 735/1000 [00:00<00:00, 8683.76 it/sec]
INFO - 16:25:31:     74%|███████▎  | 736/1000 [00:00<00:00, 8684.15 it/sec]
INFO - 16:25:31:     74%|███████▎  | 737/1000 [00:00<00:00, 8684.49 it/sec]
INFO - 16:25:31:     74%|███████▍  | 738/1000 [00:00<00:00, 8684.76 it/sec]
INFO - 16:25:31:     74%|███████▍  | 739/1000 [00:00<00:00, 8684.91 it/sec]
INFO - 16:25:31:     74%|███████▍  | 740/1000 [00:00<00:00, 8682.57 it/sec]
INFO - 16:25:31:     74%|███████▍  | 741/1000 [00:00<00:00, 8682.21 it/sec]
INFO - 16:25:31:     74%|███████▍  | 742/1000 [00:00<00:00, 8682.31 it/sec]
INFO - 16:25:31:     74%|███████▍  | 743/1000 [00:00<00:00, 8682.48 it/sec]
INFO - 16:25:31:     74%|███████▍  | 744/1000 [00:00<00:00, 8682.82 it/sec]
INFO - 16:25:31:     74%|███████▍  | 745/1000 [00:00<00:00, 8683.23 it/sec]
INFO - 16:25:31:     75%|███████▍  | 746/1000 [00:00<00:00, 8683.55 it/sec]
INFO - 16:25:31:     75%|███████▍  | 747/1000 [00:00<00:00, 8684.03 it/sec]
INFO - 16:25:31:     75%|███████▍  | 748/1000 [00:00<00:00, 8682.63 it/sec]
INFO - 16:25:31:     75%|███████▍  | 749/1000 [00:00<00:00, 8681.87 it/sec]
INFO - 16:25:31:     75%|███████▌  | 750/1000 [00:00<00:00, 8681.68 it/sec]
INFO - 16:25:31:     75%|███████▌  | 751/1000 [00:00<00:00, 8681.90 it/sec]
INFO - 16:25:31:     75%|███████▌  | 752/1000 [00:00<00:00, 8682.26 it/sec]
INFO - 16:25:31:     75%|███████▌  | 753/1000 [00:00<00:00, 8682.55 it/sec]
INFO - 16:25:31:     75%|███████▌  | 754/1000 [00:00<00:00, 8682.91 it/sec]
INFO - 16:25:31:     76%|███████▌  | 755/1000 [00:00<00:00, 8683.29 it/sec]
INFO - 16:25:31:     76%|███████▌  | 756/1000 [00:00<00:00, 8683.67 it/sec]
INFO - 16:25:31:     76%|███████▌  | 757/1000 [00:00<00:00, 8662.63 it/sec]
INFO - 16:25:31:     76%|███████▌  | 758/1000 [00:00<00:00, 8661.43 it/sec]
INFO - 16:25:31:     76%|███████▌  | 759/1000 [00:00<00:00, 8661.44 it/sec]
INFO - 16:25:31:     76%|███████▌  | 760/1000 [00:00<00:00, 8660.60 it/sec]
INFO - 16:25:31:     76%|███████▌  | 761/1000 [00:00<00:00, 8660.53 it/sec]
INFO - 16:25:31:     76%|███████▌  | 762/1000 [00:00<00:00, 8660.70 it/sec]
INFO - 16:25:31:     76%|███████▋  | 763/1000 [00:00<00:00, 8661.04 it/sec]
INFO - 16:25:31:     76%|███████▋  | 764/1000 [00:00<00:00, 8658.31 it/sec]
INFO - 16:25:31:     76%|███████▋  | 765/1000 [00:00<00:00, 8658.34 it/sec]
INFO - 16:25:31:     77%|███████▋  | 766/1000 [00:00<00:00, 8658.21 it/sec]
INFO - 16:25:31:     77%|███████▋  | 767/1000 [00:00<00:00, 8658.38 it/sec]
INFO - 16:25:31:     77%|███████▋  | 768/1000 [00:00<00:00, 8658.65 it/sec]
INFO - 16:25:31:     77%|███████▋  | 769/1000 [00:00<00:00, 8659.10 it/sec]
INFO - 16:25:31:     77%|███████▋  | 770/1000 [00:00<00:00, 8659.64 it/sec]
INFO - 16:25:31:     77%|███████▋  | 771/1000 [00:00<00:00, 8659.21 it/sec]
INFO - 16:25:31:     77%|███████▋  | 772/1000 [00:00<00:00, 8657.32 it/sec]
INFO - 16:25:31:     77%|███████▋  | 773/1000 [00:00<00:00, 8656.57 it/sec]
INFO - 16:25:31:     77%|███████▋  | 774/1000 [00:00<00:00, 8656.81 it/sec]
INFO - 16:25:31:     78%|███████▊  | 775/1000 [00:00<00:00, 8657.01 it/sec]
INFO - 16:25:31:     78%|███████▊  | 776/1000 [00:00<00:00, 8657.11 it/sec]
INFO - 16:25:31:     78%|███████▊  | 777/1000 [00:00<00:00, 8657.33 it/sec]
INFO - 16:25:31:     78%|███████▊  | 778/1000 [00:00<00:00, 8657.89 it/sec]
INFO - 16:25:31:     78%|███████▊  | 779/1000 [00:00<00:00, 8658.41 it/sec]
INFO - 16:25:31:     78%|███████▊  | 780/1000 [00:00<00:00, 8658.51 it/sec]
INFO - 16:25:31:     78%|███████▊  | 781/1000 [00:00<00:00, 8656.53 it/sec]
INFO - 16:25:31:     78%|███████▊  | 782/1000 [00:00<00:00, 8656.49 it/sec]
INFO - 16:25:31:     78%|███████▊  | 783/1000 [00:00<00:00, 8656.76 it/sec]
INFO - 16:25:31:     78%|███████▊  | 784/1000 [00:00<00:00, 8656.93 it/sec]
INFO - 16:25:31:     78%|███████▊  | 785/1000 [00:00<00:00, 8657.40 it/sec]
INFO - 16:25:31:     79%|███████▊  | 786/1000 [00:00<00:00, 8657.75 it/sec]
INFO - 16:25:31:     79%|███████▊  | 787/1000 [00:00<00:00, 8658.12 it/sec]
INFO - 16:25:31:     79%|███████▉  | 788/1000 [00:00<00:00, 8658.65 it/sec]
INFO - 16:25:31:     79%|███████▉  | 789/1000 [00:00<00:00, 8658.98 it/sec]
INFO - 16:25:31:     79%|███████▉  | 790/1000 [00:00<00:00, 8656.48 it/sec]
INFO - 16:25:31:     79%|███████▉  | 791/1000 [00:00<00:00, 8656.53 it/sec]
INFO - 16:25:31:     79%|███████▉  | 792/1000 [00:00<00:00, 8656.86 it/sec]
INFO - 16:25:31:     79%|███████▉  | 793/1000 [00:00<00:00, 8657.14 it/sec]
INFO - 16:25:31:     79%|███████▉  | 794/1000 [00:00<00:00, 8656.48 it/sec]
INFO - 16:25:31:     80%|███████▉  | 795/1000 [00:00<00:00, 8656.63 it/sec]
INFO - 16:25:31:     80%|███████▉  | 796/1000 [00:00<00:00, 8656.95 it/sec]
INFO - 16:25:31:     80%|███████▉  | 797/1000 [00:00<00:00, 8657.34 it/sec]
INFO - 16:25:31:     80%|███████▉  | 798/1000 [00:00<00:00, 8655.90 it/sec]
INFO - 16:25:31:     80%|███████▉  | 799/1000 [00:00<00:00, 8655.69 it/sec]
INFO - 16:25:31:     80%|████████  | 800/1000 [00:00<00:00, 8655.92 it/sec]
INFO - 16:25:31:     80%|████████  | 801/1000 [00:00<00:00, 8656.25 it/sec]
INFO - 16:25:31:     80%|████████  | 802/1000 [00:00<00:00, 8656.62 it/sec]
INFO - 16:25:31:     80%|████████  | 803/1000 [00:00<00:00, 8657.01 it/sec]
INFO - 16:25:31:     80%|████████  | 804/1000 [00:00<00:00, 8657.42 it/sec]
INFO - 16:25:31:     80%|████████  | 805/1000 [00:00<00:00, 8657.52 it/sec]
INFO - 16:25:31:     81%|████████  | 806/1000 [00:00<00:00, 8657.75 it/sec]
INFO - 16:25:31:     81%|████████  | 807/1000 [00:00<00:00, 8655.88 it/sec]
INFO - 16:25:31:     81%|████████  | 808/1000 [00:00<00:00, 8656.00 it/sec]
INFO - 16:25:31:     81%|████████  | 809/1000 [00:00<00:00, 8656.30 it/sec]
INFO - 16:25:31:     81%|████████  | 810/1000 [00:00<00:00, 8651.33 it/sec]
INFO - 16:25:31:     81%|████████  | 811/1000 [00:00<00:00, 8651.02 it/sec]
INFO - 16:25:31:     81%|████████  | 812/1000 [00:00<00:00, 8651.12 it/sec]
INFO - 16:25:31:     81%|████████▏ | 813/1000 [00:00<00:00, 8651.47 it/sec]
INFO - 16:25:31:     81%|████████▏ | 814/1000 [00:00<00:00, 8651.93 it/sec]
INFO - 16:25:31:     82%|████████▏ | 815/1000 [00:00<00:00, 8650.17 it/sec]
INFO - 16:25:31:     82%|████████▏ | 816/1000 [00:00<00:00, 8649.89 it/sec]
INFO - 16:25:31:     82%|████████▏ | 817/1000 [00:00<00:00, 8650.12 it/sec]
INFO - 16:25:31:     82%|████████▏ | 818/1000 [00:00<00:00, 8650.71 it/sec]
INFO - 16:25:31:     82%|████████▏ | 819/1000 [00:00<00:00, 8650.75 it/sec]
INFO - 16:25:31:     82%|████████▏ | 820/1000 [00:00<00:00, 8651.03 it/sec]
INFO - 16:25:31:     82%|████████▏ | 821/1000 [00:00<00:00, 8651.55 it/sec]
INFO - 16:25:31:     82%|████████▏ | 822/1000 [00:00<00:00, 8651.96 it/sec]
INFO - 16:25:31:     82%|████████▏ | 823/1000 [00:00<00:00, 8652.34 it/sec]
INFO - 16:25:31:     82%|████████▏ | 824/1000 [00:00<00:00, 8650.34 it/sec]
INFO - 16:25:31:     82%|████████▎ | 825/1000 [00:00<00:00, 8650.67 it/sec]
INFO - 16:25:31:     83%|████████▎ | 826/1000 [00:00<00:00, 8651.07 it/sec]
INFO - 16:25:31:     83%|████████▎ | 827/1000 [00:00<00:00, 8651.44 it/sec]
INFO - 16:25:31:     83%|████████▎ | 828/1000 [00:00<00:00, 8651.00 it/sec]
INFO - 16:25:31:     83%|████████▎ | 829/1000 [00:00<00:00, 8650.89 it/sec]
INFO - 16:25:31:     83%|████████▎ | 830/1000 [00:00<00:00, 8650.91 it/sec]
INFO - 16:25:31:     83%|████████▎ | 831/1000 [00:00<00:00, 8651.03 it/sec]
INFO - 16:25:31:     83%|████████▎ | 832/1000 [00:00<00:00, 8648.84 it/sec]
INFO - 16:25:31:     83%|████████▎ | 833/1000 [00:00<00:00, 8648.39 it/sec]
INFO - 16:25:31:     83%|████████▎ | 834/1000 [00:00<00:00, 8648.73 it/sec]
INFO - 16:25:31:     84%|████████▎ | 835/1000 [00:00<00:00, 8648.78 it/sec]
INFO - 16:25:31:     84%|████████▎ | 836/1000 [00:00<00:00, 8649.20 it/sec]
INFO - 16:25:31:     84%|████████▎ | 837/1000 [00:00<00:00, 8649.65 it/sec]
INFO - 16:25:31:     84%|████████▍ | 838/1000 [00:00<00:00, 8650.22 it/sec]
INFO - 16:25:31:     84%|████████▍ | 839/1000 [00:00<00:00, 8650.41 it/sec]
INFO - 16:25:31:     84%|████████▍ | 840/1000 [00:00<00:00, 8651.04 it/sec]
INFO - 16:25:31:     84%|████████▍ | 841/1000 [00:00<00:00, 8649.41 it/sec]
INFO - 16:25:31:     84%|████████▍ | 842/1000 [00:00<00:00, 8649.68 it/sec]
INFO - 16:25:31:     84%|████████▍ | 843/1000 [00:00<00:00, 8650.00 it/sec]
INFO - 16:25:31:     84%|████████▍ | 844/1000 [00:00<00:00, 8650.46 it/sec]
INFO - 16:25:31:     84%|████████▍ | 845/1000 [00:00<00:00, 8650.73 it/sec]
INFO - 16:25:31:     85%|████████▍ | 846/1000 [00:00<00:00, 8650.87 it/sec]
INFO - 16:25:31:     85%|████████▍ | 847/1000 [00:00<00:00, 8651.42 it/sec]
INFO - 16:25:31:     85%|████████▍ | 848/1000 [00:00<00:00, 8651.52 it/sec]
INFO - 16:25:31:     85%|████████▍ | 849/1000 [00:00<00:00, 8650.36 it/sec]
INFO - 16:25:31:     85%|████████▌ | 850/1000 [00:00<00:00, 8649.69 it/sec]
INFO - 16:25:31:     85%|████████▌ | 851/1000 [00:00<00:00, 8649.85 it/sec]
INFO - 16:25:31:     85%|████████▌ | 852/1000 [00:00<00:00, 8649.77 it/sec]
INFO - 16:25:31:     85%|████████▌ | 853/1000 [00:00<00:00, 8649.93 it/sec]
INFO - 16:25:31:     85%|████████▌ | 854/1000 [00:00<00:00, 8650.28 it/sec]
INFO - 16:25:31:     86%|████████▌ | 855/1000 [00:00<00:00, 8650.20 it/sec]
INFO - 16:25:31:     86%|████████▌ | 856/1000 [00:00<00:00, 8650.36 it/sec]
INFO - 16:25:31:     86%|████████▌ | 857/1000 [00:00<00:00, 8650.42 it/sec]
INFO - 16:25:31:     86%|████████▌ | 858/1000 [00:00<00:00, 8648.80 it/sec]
INFO - 16:25:31:     86%|████████▌ | 859/1000 [00:00<00:00, 8648.80 it/sec]
INFO - 16:25:31:     86%|████████▌ | 860/1000 [00:00<00:00, 8648.94 it/sec]
INFO - 16:25:31:     86%|████████▌ | 861/1000 [00:00<00:00, 8649.06 it/sec]
INFO - 16:25:31:     86%|████████▌ | 862/1000 [00:00<00:00, 8649.46 it/sec]
INFO - 16:25:31:     86%|████████▋ | 863/1000 [00:00<00:00, 8648.75 it/sec]
INFO - 16:25:31:     86%|████████▋ | 864/1000 [00:00<00:00, 8648.71 it/sec]
INFO - 16:25:31:     86%|████████▋ | 865/1000 [00:00<00:00, 8634.49 it/sec]
INFO - 16:25:31:     87%|████████▋ | 866/1000 [00:00<00:00, 8633.13 it/sec]
INFO - 16:25:31:     87%|████████▋ | 867/1000 [00:00<00:00, 8632.67 it/sec]
INFO - 16:25:31:     87%|████████▋ | 868/1000 [00:00<00:00, 8632.75 it/sec]
INFO - 16:25:31:     87%|████████▋ | 869/1000 [00:00<00:00, 8632.97 it/sec]
INFO - 16:25:31:     87%|████████▋ | 870/1000 [00:00<00:00, 8633.30 it/sec]
INFO - 16:25:31:     87%|████████▋ | 871/1000 [00:00<00:00, 8633.64 it/sec]
INFO - 16:25:31:     87%|████████▋ | 872/1000 [00:00<00:00, 8633.98 it/sec]
INFO - 16:25:31:     87%|████████▋ | 873/1000 [00:00<00:00, 8634.49 it/sec]
INFO - 16:25:31:     87%|████████▋ | 874/1000 [00:00<00:00, 8632.57 it/sec]
INFO - 16:25:31:     88%|████████▊ | 875/1000 [00:00<00:00, 8632.63 it/sec]
INFO - 16:25:31:     88%|████████▊ | 876/1000 [00:00<00:00, 8632.79 it/sec]
INFO - 16:25:31:     88%|████████▊ | 877/1000 [00:00<00:00, 8632.83 it/sec]
INFO - 16:25:31:     88%|████████▊ | 878/1000 [00:00<00:00, 8632.99 it/sec]
INFO - 16:25:31:     88%|████████▊ | 879/1000 [00:00<00:00, 8633.33 it/sec]
INFO - 16:25:31:     88%|████████▊ | 880/1000 [00:00<00:00, 8633.49 it/sec]
INFO - 16:25:31:     88%|████████▊ | 881/1000 [00:00<00:00, 8633.70 it/sec]
INFO - 16:25:31:     88%|████████▊ | 882/1000 [00:00<00:00, 8632.75 it/sec]
INFO - 16:25:31:     88%|████████▊ | 883/1000 [00:00<00:00, 8632.27 it/sec]
INFO - 16:25:31:     88%|████████▊ | 884/1000 [00:00<00:00, 8632.51 it/sec]
INFO - 16:25:31:     88%|████████▊ | 885/1000 [00:00<00:00, 8632.74 it/sec]
INFO - 16:25:31:     89%|████████▊ | 886/1000 [00:00<00:00, 8632.70 it/sec]
INFO - 16:25:31:     89%|████████▊ | 887/1000 [00:00<00:00, 8633.02 it/sec]
INFO - 16:25:31:     89%|████████▉ | 888/1000 [00:00<00:00, 8633.20 it/sec]
INFO - 16:25:31:     89%|████████▉ | 889/1000 [00:00<00:00, 8633.51 it/sec]
INFO - 16:25:31:     89%|████████▉ | 890/1000 [00:00<00:00, 8633.63 it/sec]
INFO - 16:25:31:     89%|████████▉ | 891/1000 [00:00<00:00, 8631.71 it/sec]
INFO - 16:25:31:     89%|████████▉ | 892/1000 [00:00<00:00, 8631.57 it/sec]
INFO - 16:25:31:     89%|████████▉ | 893/1000 [00:00<00:00, 8631.39 it/sec]
INFO - 16:25:31:     89%|████████▉ | 894/1000 [00:00<00:00, 8631.43 it/sec]
INFO - 16:25:31:     90%|████████▉ | 895/1000 [00:00<00:00, 8630.95 it/sec]
INFO - 16:25:31:     90%|████████▉ | 896/1000 [00:00<00:00, 8630.73 it/sec]
INFO - 16:25:31:     90%|████████▉ | 897/1000 [00:00<00:00, 8630.71 it/sec]
INFO - 16:25:31:     90%|████████▉ | 898/1000 [00:00<00:00, 8630.83 it/sec]
INFO - 16:25:31:     90%|████████▉ | 899/1000 [00:00<00:00, 8629.45 it/sec]
INFO - 16:25:31:     90%|█████████ | 900/1000 [00:00<00:00, 8628.82 it/sec]
INFO - 16:25:31:     90%|█████████ | 901/1000 [00:00<00:00, 8628.72 it/sec]
INFO - 16:25:31:     90%|█████████ | 902/1000 [00:00<00:00, 8628.80 it/sec]
INFO - 16:25:31:     90%|█████████ | 903/1000 [00:00<00:00, 8629.08 it/sec]
INFO - 16:25:31:     90%|█████████ | 904/1000 [00:00<00:00, 8629.35 it/sec]
INFO - 16:25:31:     90%|█████████ | 905/1000 [00:00<00:00, 8629.45 it/sec]
INFO - 16:25:31:     91%|█████████ | 906/1000 [00:00<00:00, 8629.57 it/sec]
INFO - 16:25:31:     91%|█████████ | 907/1000 [00:00<00:00, 8629.71 it/sec]
INFO - 16:25:31:     91%|█████████ | 908/1000 [00:00<00:00, 8627.83 it/sec]
INFO - 16:25:31:     91%|█████████ | 909/1000 [00:00<00:00, 8627.68 it/sec]
INFO - 16:25:31:     91%|█████████ | 910/1000 [00:00<00:00, 8627.95 it/sec]
INFO - 16:25:31:     91%|█████████ | 911/1000 [00:00<00:00, 8627.99 it/sec]
INFO - 16:25:31:     91%|█████████ | 912/1000 [00:00<00:00, 8627.98 it/sec]
INFO - 16:25:31:     91%|█████████▏| 913/1000 [00:00<00:00, 8628.17 it/sec]
INFO - 16:25:31:     91%|█████████▏| 914/1000 [00:00<00:00, 8628.53 it/sec]
INFO - 16:25:31:     92%|█████████▏| 915/1000 [00:00<00:00, 8628.74 it/sec]
INFO - 16:25:31:     92%|█████████▏| 916/1000 [00:00<00:00, 8627.62 it/sec]
INFO - 16:25:31:     92%|█████████▏| 917/1000 [00:00<00:00, 8627.33 it/sec]
INFO - 16:25:31:     92%|█████████▏| 918/1000 [00:00<00:00, 8627.57 it/sec]
INFO - 16:25:31:     92%|█████████▏| 919/1000 [00:00<00:00, 8627.74 it/sec]
INFO - 16:25:31:     92%|█████████▏| 920/1000 [00:00<00:00, 8628.29 it/sec]
INFO - 16:25:31:     92%|█████████▏| 921/1000 [00:00<00:00, 8628.69 it/sec]
INFO - 16:25:31:     92%|█████████▏| 922/1000 [00:00<00:00, 8629.31 it/sec]
INFO - 16:25:31:     92%|█████████▏| 923/1000 [00:00<00:00, 8628.97 it/sec]
INFO - 16:25:31:     92%|█████████▏| 924/1000 [00:00<00:00, 8629.22 it/sec]
INFO - 16:25:31:     92%|█████████▎| 925/1000 [00:00<00:00, 8627.53 it/sec]
INFO - 16:25:31:     93%|█████████▎| 926/1000 [00:00<00:00, 8627.53 it/sec]
INFO - 16:25:31:     93%|█████████▎| 927/1000 [00:00<00:00, 8627.75 it/sec]
INFO - 16:25:31:     93%|█████████▎| 928/1000 [00:00<00:00, 8627.88 it/sec]
INFO - 16:25:31:     93%|█████████▎| 929/1000 [00:00<00:00, 8627.62 it/sec]
INFO - 16:25:31:     93%|█████████▎| 930/1000 [00:00<00:00, 8627.12 it/sec]
INFO - 16:25:31:     93%|█████████▎| 931/1000 [00:00<00:00, 8627.20 it/sec]
INFO - 16:25:31:     93%|█████████▎| 932/1000 [00:00<00:00, 8627.40 it/sec]
INFO - 16:25:31:     93%|█████████▎| 933/1000 [00:00<00:00, 8626.26 it/sec]
INFO - 16:25:31:     93%|█████████▎| 934/1000 [00:00<00:00, 8625.85 it/sec]
INFO - 16:25:31:     94%|█████████▎| 935/1000 [00:00<00:00, 8625.81 it/sec]
INFO - 16:25:31:     94%|█████████▎| 936/1000 [00:00<00:00, 8625.93 it/sec]
INFO - 16:25:31:     94%|█████████▎| 937/1000 [00:00<00:00, 8626.22 it/sec]
INFO - 16:25:31:     94%|█████████▍| 938/1000 [00:00<00:00, 8626.11 it/sec]
INFO - 16:25:31:     94%|█████████▍| 939/1000 [00:00<00:00, 8625.98 it/sec]
INFO - 16:25:31:     94%|█████████▍| 940/1000 [00:00<00:00, 8625.55 it/sec]
INFO - 16:25:31:     94%|█████████▍| 941/1000 [00:00<00:00, 8625.33 it/sec]
INFO - 16:25:31:     94%|█████████▍| 942/1000 [00:00<00:00, 8623.46 it/sec]
INFO - 16:25:31:     94%|█████████▍| 943/1000 [00:00<00:00, 8623.41 it/sec]
INFO - 16:25:31:     94%|█████████▍| 944/1000 [00:00<00:00, 8623.56 it/sec]
INFO - 16:25:31:     94%|█████████▍| 945/1000 [00:00<00:00, 8623.66 it/sec]
INFO - 16:25:31:     95%|█████████▍| 946/1000 [00:00<00:00, 8623.92 it/sec]
INFO - 16:25:31:     95%|█████████▍| 947/1000 [00:00<00:00, 8624.20 it/sec]
INFO - 16:25:31:     95%|█████████▍| 948/1000 [00:00<00:00, 8624.49 it/sec]
INFO - 16:25:31:     95%|█████████▍| 949/1000 [00:00<00:00, 8624.66 it/sec]
INFO - 16:25:31:     95%|█████████▌| 950/1000 [00:00<00:00, 8623.64 it/sec]
INFO - 16:25:31:     95%|█████████▌| 951/1000 [00:00<00:00, 8623.17 it/sec]
INFO - 16:25:31:     95%|█████████▌| 952/1000 [00:00<00:00, 8623.40 it/sec]
INFO - 16:25:31:     95%|█████████▌| 953/1000 [00:00<00:00, 8623.52 it/sec]
INFO - 16:25:31:     95%|█████████▌| 954/1000 [00:00<00:00, 8623.54 it/sec]
INFO - 16:25:31:     96%|█████████▌| 955/1000 [00:00<00:00, 8623.79 it/sec]
INFO - 16:25:31:     96%|█████████▌| 956/1000 [00:00<00:00, 8623.93 it/sec]
INFO - 16:25:31:     96%|█████████▌| 957/1000 [00:00<00:00, 8624.23 it/sec]
INFO - 16:25:31:     96%|█████████▌| 958/1000 [00:00<00:00, 8624.51 it/sec]
INFO - 16:25:31:     96%|█████████▌| 959/1000 [00:00<00:00, 8616.39 it/sec]
INFO - 16:25:31:     96%|█████████▌| 960/1000 [00:00<00:00, 8615.87 it/sec]
INFO - 16:25:31:     96%|█████████▌| 961/1000 [00:00<00:00, 8615.92 it/sec]
INFO - 16:25:31:     96%|█████████▌| 962/1000 [00:00<00:00, 8614.65 it/sec]
INFO - 16:25:31:     96%|█████████▋| 963/1000 [00:00<00:00, 8614.02 it/sec]
INFO - 16:25:31:     96%|█████████▋| 964/1000 [00:00<00:00, 8614.06 it/sec]
INFO - 16:25:31:     96%|█████████▋| 965/1000 [00:00<00:00, 8614.02 it/sec]
INFO - 16:25:31:     97%|█████████▋| 966/1000 [00:00<00:00, 8612.68 it/sec]
INFO - 16:25:31:     97%|█████████▋| 967/1000 [00:00<00:00, 8612.19 it/sec]
INFO - 16:25:31:     97%|█████████▋| 968/1000 [00:00<00:00, 8612.00 it/sec]
INFO - 16:25:31:     97%|█████████▋| 969/1000 [00:00<00:00, 8611.69 it/sec]
INFO - 16:25:31:     97%|█████████▋| 970/1000 [00:00<00:00, 8611.33 it/sec]
INFO - 16:25:31:     97%|█████████▋| 971/1000 [00:00<00:00, 8611.46 it/sec]
INFO - 16:25:31:     97%|█████████▋| 972/1000 [00:00<00:00, 8611.42 it/sec]
INFO - 16:25:31:     97%|█████████▋| 973/1000 [00:00<00:00, 8611.35 it/sec]
INFO - 16:25:31:     97%|█████████▋| 974/1000 [00:00<00:00, 8611.64 it/sec]
INFO - 16:25:31:     98%|█████████▊| 975/1000 [00:00<00:00, 8610.00 it/sec]
INFO - 16:25:31:     98%|█████████▊| 976/1000 [00:00<00:00, 8609.94 it/sec]
INFO - 16:25:31:     98%|█████████▊| 977/1000 [00:00<00:00, 8610.13 it/sec]
INFO - 16:25:31:     98%|█████████▊| 978/1000 [00:00<00:00, 8610.24 it/sec]
INFO - 16:25:31:     98%|█████████▊| 979/1000 [00:00<00:00, 8610.35 it/sec]
INFO - 16:25:31:     98%|█████████▊| 980/1000 [00:00<00:00, 8610.41 it/sec]
INFO - 16:25:31:     98%|█████████▊| 981/1000 [00:00<00:00, 8610.61 it/sec]
INFO - 16:25:31:     98%|█████████▊| 982/1000 [00:00<00:00, 8610.77 it/sec]
INFO - 16:25:31:     98%|█████████▊| 983/1000 [00:00<00:00, 8609.78 it/sec]
INFO - 16:25:31:     98%|█████████▊| 984/1000 [00:00<00:00, 8609.50 it/sec]
INFO - 16:25:31:     98%|█████████▊| 985/1000 [00:00<00:00, 8609.64 it/sec]
INFO - 16:25:31:     99%|█████████▊| 986/1000 [00:00<00:00, 8609.79 it/sec]
INFO - 16:25:31:     99%|█████████▊| 987/1000 [00:00<00:00, 8610.06 it/sec]
INFO - 16:25:31:     99%|█████████▉| 988/1000 [00:00<00:00, 8607.47 it/sec]
INFO - 16:25:31:     99%|█████████▉| 989/1000 [00:00<00:00, 8606.19 it/sec]
INFO - 16:25:31:     99%|█████████▉| 990/1000 [00:00<00:00, 8605.38 it/sec]
INFO - 16:25:31:     99%|█████████▉| 991/1000 [00:00<00:00, 8603.53 it/sec]
INFO - 16:25:31:     99%|█████████▉| 992/1000 [00:00<00:00, 8602.78 it/sec]
INFO - 16:25:31:     99%|█████████▉| 993/1000 [00:00<00:00, 8602.73 it/sec]
INFO - 16:25:31:     99%|█████████▉| 994/1000 [00:00<00:00, 8602.46 it/sec]
INFO - 16:25:31:    100%|█████████▉| 995/1000 [00:00<00:00, 8602.04 it/sec]
INFO - 16:25:31:    100%|█████████▉| 996/1000 [00:00<00:00, 8601.95 it/sec]
INFO - 16:25:31:    100%|█████████▉| 997/1000 [00:00<00:00, 8602.15 it/sec]
INFO - 16:25:31:    100%|█████████▉| 998/1000 [00:00<00:00, 8602.29 it/sec]
INFO - 16:25:31:    100%|█████████▉| 999/1000 [00:00<00:00, 8601.33 it/sec]
INFO - 16:25:31:    100%|██████████| 1000/1000 [00:00<00:00, 8599.82 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:25:31: Evaluation problem:
INFO - 16:25:31:    Evaluate the functions: area
INFO - 16:25:31:    over the design space:
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | length |      0      |  None |      10     | float |
INFO - 16:25:31:       | width  |      0      |  None |      10     | float |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31: 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:25:31: *** Start MDOScenario execution ***
INFO - 16:25:31: MDOScenario
INFO - 16:25:31:    Disciplines: AreaDiscipline AreaIncreaser
INFO - 16:25:31:    MDO formulation: DisciplinaryOpt
INFO - 16:25:31: Optimization problem:
INFO - 16:25:31:    minimize final_area(length, width)
INFO - 16:25:31:    with respect to length, width
INFO - 16:25:31:    over the design space:
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31:       | length |      0      |  None |      10     | float |
INFO - 16:25:31:       | width  |      0      |  None |      10     | float |
INFO - 16:25:31:       +--------+-------------+-------+-------------+-------+
INFO - 16:25:31: Solving optimization problem with algorithm MC:
INFO - 16:25:31: Optimization result:
INFO - 16:25:31:    Optimizer info:
INFO - 16:25:31:       Status: None
INFO - 16:25:31:       Message: None
INFO - 16:25:31:    Solution:
INFO - 16:25:31:       Objective: 0.006453354446785439
INFO - 16:25:31:       Design space:
INFO - 16:25:31:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:25:31:          | Name   | Lower bound |        Value         | Upper bound | Type  |
INFO - 16:25:31:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:25:31:          | length |      0      |  3.359702633489273   |      10     | float |
INFO - 16:25:31:          | width  |      0      | 0.000960405599956804 |      10     | float |
INFO - 16:25:31:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:25:31: *** End MDOScenario execution (time: 0:00:00.013024) ***

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:25:31: *** Start MDOScenario execution ***
   INFO - 16:25:31: MDOScenario
   INFO - 16:25:31:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:25:31:    MDO formulation: MDF
   INFO - 16:25:31: Optimization problem:
   INFO - 16:25:31:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:25:31:    with respect to x_1, x_2, x_shared
   INFO - 16:25:31:    under the equality constraints
   INFO - 16:25:31:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:    over the design space:
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:25:31:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31: Solving optimization problem with algorithm MC:
   INFO - 16:25:31:      1%|          | 1/100 [00:00<00:01, 98.52 it/sec, feas=False, obj=191]
   INFO - 16:25:31:      2%|▏         | 2/100 [00:00<00:00, 145.44 it/sec, feas=False, obj=79.2]
   INFO - 16:25:31:      3%|▎         | 3/100 [00:00<00:00, 175.90 it/sec, feas=False, obj=69.1]
   INFO - 16:25:31:      4%|▍         | 4/100 [00:00<00:00, 197.40 it/sec, feas=False, obj=112]
   INFO - 16:25:31:      5%|▌         | 5/100 [00:00<00:00, 217.47 it/sec, feas=False, obj=62.9]
   INFO - 16:25:31:      6%|▌         | 6/100 [00:00<00:00, 227.56 it/sec, feas=False, obj=89.3]
   INFO - 16:25:31:      7%|▋         | 7/100 [00:00<00:00, 238.10 it/sec, feas=False, obj=162]
   INFO - 16:25:31:      8%|▊         | 8/100 [00:00<00:00, 244.79 it/sec, feas=False, obj=591]
   INFO - 16:25:31:      9%|▉         | 9/100 [00:00<00:00, 249.10 it/sec, feas=False, obj=127]
   INFO - 16:25:31:     10%|█         | 10/100 [00:00<00:00, 252.77 it/sec, feas=False, obj=80.9]
   INFO - 16:25:31:     11%|█         | 11/100 [00:00<00:00, 259.07 it/sec, feas=False, obj=131]
   INFO - 16:25:31:     12%|█▏        | 12/100 [00:00<00:00, 261.20 it/sec, feas=False, obj=119]
   INFO - 16:25:31:     13%|█▎        | 13/100 [00:00<00:00, 263.47 it/sec, feas=False, obj=98.4]
   INFO - 16:25:31:     14%|█▍        | 14/100 [00:00<00:00, 265.75 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:25:31:     15%|█▌        | 15/100 [00:00<00:00, 267.72 it/sec, feas=False, obj=220]
   INFO - 16:25:31:     16%|█▌        | 16/100 [00:00<00:00, 269.87 it/sec, feas=False, obj=30.3]
   INFO - 16:25:31:     17%|█▋        | 17/100 [00:00<00:00, 273.90 it/sec, feas=False, obj=130]
   INFO - 16:25:31:     18%|█▊        | 18/100 [00:00<00:00, 278.03 it/sec, feas=False, obj=274]
   INFO - 16:25:31:     19%|█▉        | 19/100 [00:00<00:00, 281.29 it/sec, feas=False, obj=111]
   INFO - 16:25:31:     20%|██        | 20/100 [00:00<00:00, 281.72 it/sec, feas=False, obj=194]
   INFO - 16:25:31:     21%|██        | 21/100 [00:00<00:00, 274.16 it/sec, feas=False, obj=87.1]
   INFO - 16:25:31:     22%|██▏       | 22/100 [00:00<00:00, 274.55 it/sec, feas=False, obj=121]
   INFO - 16:25:31:     23%|██▎       | 23/100 [00:00<00:00, 274.70 it/sec, feas=False, obj=44.7]
   INFO - 16:25:31:     24%|██▍       | 24/100 [00:00<00:00, 277.25 it/sec, feas=False, obj=49.7]
   INFO - 16:25:31:     25%|██▌       | 25/100 [00:00<00:00, 279.03 it/sec, feas=False, obj=62.2]
   INFO - 16:25:31:     26%|██▌       | 26/100 [00:00<00:00, 279.56 it/sec, feas=False, obj=131]
   INFO - 16:25:31:     27%|██▋       | 27/100 [00:00<00:00, 279.97 it/sec, feas=False, obj=89.7]
   INFO - 16:25:31:     28%|██▊       | 28/100 [00:00<00:00, 279.62 it/sec, feas=False, obj=142]
   INFO - 16:25:31:     29%|██▉       | 29/100 [00:00<00:00, 281.78 it/sec, feas=False, obj=85.4]
   INFO - 16:25:31:     30%|███       | 30/100 [00:00<00:00, 282.07 it/sec, feas=False, obj=54.1]
   INFO - 16:25:31:     31%|███       | 31/100 [00:00<00:00, 282.86 it/sec, feas=False, obj=138]
   INFO - 16:25:31:     32%|███▏      | 32/100 [00:00<00:00, 284.60 it/sec, feas=False, obj=107]
   INFO - 16:25:31:     33%|███▎      | 33/100 [00:00<00:00, 286.23 it/sec, feas=False, obj=45.6]
   INFO - 16:25:31:     34%|███▍      | 34/100 [00:00<00:00, 286.24 it/sec, feas=False, obj=211]
   INFO - 16:25:31:     35%|███▌      | 35/100 [00:00<00:00, 286.63 it/sec, feas=False, obj=149]
   INFO - 16:25:31:     36%|███▌      | 36/100 [00:00<00:00, 288.25 it/sec, feas=False, obj=89.2]
   INFO - 16:25:31:     37%|███▋      | 37/100 [00:00<00:00, 289.61 it/sec, feas=False, obj=125]
   INFO - 16:25:31:     38%|███▊      | 38/100 [00:00<00:00, 289.90 it/sec, feas=False, obj=125]
   INFO - 16:25:31:     39%|███▉      | 39/100 [00:00<00:00, 291.15 it/sec, feas=False, obj=156]
   INFO - 16:25:31:     40%|████      | 40/100 [00:00<00:00, 292.32 it/sec, feas=False, obj=65.3]
   INFO - 16:25:31:     41%|████      | 41/100 [00:00<00:00, 292.57 it/sec, feas=False, obj=134]
   INFO - 16:25:31:     42%|████▏     | 42/100 [00:00<00:00, 292.50 it/sec, feas=False, obj=63.5]
   INFO - 16:25:31:     43%|████▎     | 43/100 [00:00<00:00, 293.62 it/sec, feas=False, obj=137]
   INFO - 16:25:31:     44%|████▍     | 44/100 [00:00<00:00, 294.93 it/sec, feas=False, obj=77.2]
   INFO - 16:25:31:     45%|████▌     | 45/100 [00:00<00:00, 295.09 it/sec, feas=False, obj=116]
   INFO - 16:25:31:     46%|████▌     | 46/100 [00:00<00:00, 295.98 it/sec, feas=False, obj=134]
   INFO - 16:25:31:     47%|████▋     | 47/100 [00:00<00:00, 295.82 it/sec, feas=False, obj=110]
   INFO - 16:25:31:     48%|████▊     | 48/100 [00:00<00:00, 295.78 it/sec, feas=False, obj=165]
   INFO - 16:25:31:     49%|████▉     | 49/100 [00:00<00:00, 296.71 it/sec, feas=False, obj=189]
   INFO - 16:25:31:     50%|█████     | 50/100 [00:00<00:00, 297.63 it/sec, feas=False, obj=109]
   INFO - 16:25:31:     51%|█████     | 51/100 [00:00<00:00, 297.43 it/sec, feas=False, obj=95.5]
   INFO - 16:25:31:     52%|█████▏    | 52/100 [00:00<00:00, 298.10 it/sec, feas=False, obj=146]
   INFO - 16:25:31:     53%|█████▎    | 53/100 [00:00<00:00, 299.09 it/sec, feas=False, obj=165]
   INFO - 16:25:31:     54%|█████▍    | 54/100 [00:00<00:00, 300.20 it/sec, feas=False, obj=107]
   INFO - 16:25:31:     55%|█████▌    | 55/100 [00:00<00:00, 299.42 it/sec, feas=False, obj=25.3]
   INFO - 16:25:31:     56%|█████▌    | 56/100 [00:00<00:00, 300.33 it/sec, feas=False, obj=203]
   INFO - 16:25:31:     57%|█████▋    | 57/100 [00:00<00:00, 300.30 it/sec, feas=False, obj=305]
   INFO - 16:25:31:     58%|█████▊    | 58/100 [00:00<00:00, 301.27 it/sec, feas=False, obj=51.7]
   INFO - 16:25:31:     59%|█████▉    | 59/100 [00:00<00:00, 301.21 it/sec, feas=False, obj=212]
   INFO - 16:25:31:     60%|██████    | 60/100 [00:00<00:00, 301.59 it/sec, feas=False, obj=199]
   INFO - 16:25:31:     61%|██████    | 61/100 [00:00<00:00, 302.45 it/sec, feas=False, obj=93.1]
   INFO - 16:25:31:     62%|██████▏   | 62/100 [00:00<00:00, 303.27 it/sec, feas=False, obj=39.9]
   INFO - 16:25:31:     63%|██████▎   | 63/100 [00:00<00:00, 304.10 it/sec, feas=False, obj=112]
   INFO - 16:25:31:     64%|██████▍   | 64/100 [00:00<00:00, 305.00 it/sec, feas=False, obj=136]
   INFO - 16:25:31:     65%|██████▌   | 65/100 [00:00<00:00, 305.78 it/sec, feas=False, obj=40.7]
   INFO - 16:25:31:     66%|██████▌   | 66/100 [00:00<00:00, 305.56 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:25:31:     67%|██████▋   | 67/100 [00:00<00:00, 306.06 it/sec, feas=False, obj=160]
   INFO - 16:25:31:     68%|██████▊   | 68/100 [00:00<00:00, 306.80 it/sec, feas=False, obj=138]
   INFO - 16:25:31:     69%|██████▉   | 69/100 [00:00<00:00, 306.77 it/sec, feas=False, obj=899]
   INFO - 16:25:31:     70%|███████   | 70/100 [00:00<00:00, 307.31 it/sec, feas=False, obj=276]
   INFO - 16:25:31:     71%|███████   | 71/100 [00:00<00:00, 307.11 it/sec, feas=False, obj=44.1]
   INFO - 16:25:31:     72%|███████▏  | 72/100 [00:00<00:00, 304.51 it/sec, feas=False, obj=114]
   INFO - 16:25:31:     73%|███████▎  | 73/100 [00:00<00:00, 304.55 it/sec, feas=False, obj=596]
   INFO - 16:25:31:     74%|███████▍  | 74/100 [00:00<00:00, 304.57 it/sec, feas=False, obj=120]
   INFO - 16:25:31:     75%|███████▌  | 75/100 [00:00<00:00, 305.06 it/sec, feas=False, obj=407]
   INFO - 16:25:31:     76%|███████▌  | 76/100 [00:00<00:00, 305.18 it/sec, feas=False, obj=51.4]
   INFO - 16:25:31:     77%|███████▋  | 77/100 [00:00<00:00, 304.74 it/sec, feas=False, obj=148]
   INFO - 16:25:31:     78%|███████▊  | 78/100 [00:00<00:00, 304.72 it/sec, feas=False, obj=93.9]
   INFO - 16:25:31:     79%|███████▉  | 79/100 [00:00<00:00, 304.62 it/sec, feas=False, obj=72.1]
   INFO - 16:25:31:     80%|████████  | 80/100 [00:00<00:00, 305.14 it/sec, feas=False, obj=292]
   INFO - 16:25:31:     81%|████████  | 81/100 [00:00<00:00, 305.16 it/sec, feas=False, obj=98.6]
   INFO - 16:25:31:     82%|████████▏ | 82/100 [00:00<00:00, 304.61 it/sec, feas=False, obj=25]
   INFO - 16:25:31:     83%|████████▎ | 83/100 [00:00<00:00, 304.50 it/sec, feas=False, obj=33.1]
   INFO - 16:25:31:     84%|████████▍ | 84/100 [00:00<00:00, 304.40 it/sec, feas=False, obj=114]
   INFO - 16:25:31:     85%|████████▌ | 85/100 [00:00<00:00, 303.89 it/sec, feas=False, obj=115]
   INFO - 16:25:31:     86%|████████▌ | 86/100 [00:00<00:00, 304.30 it/sec, feas=False, obj=118]
   INFO - 16:25:31:     87%|████████▋ | 87/100 [00:00<00:00, 304.08 it/sec, feas=False, obj=67.1]
   INFO - 16:25:31:     88%|████████▊ | 88/100 [00:00<00:00, 304.54 it/sec, feas=False, obj=105]
   INFO - 16:25:31:     89%|████████▉ | 89/100 [00:00<00:00, 305.06 it/sec, feas=False, obj=92.6]
   INFO - 16:25:31:     90%|█████████ | 90/100 [00:00<00:00, 305.03 it/sec, feas=False, obj=98.1]
   INFO - 16:25:31:     91%|█████████ | 91/100 [00:00<00:00, 305.04 it/sec, feas=False, obj=133]
   INFO - 16:25:31:     92%|█████████▏| 92/100 [00:00<00:00, 305.43 it/sec, feas=False, obj=197]
   INFO - 16:25:31:     93%|█████████▎| 93/100 [00:00<00:00, 305.76 it/sec, feas=False, obj=82.6]
   INFO - 16:25:31:     94%|█████████▍| 94/100 [00:00<00:00, 305.75 it/sec, feas=False, obj=27.2]
   INFO - 16:25:31:     95%|█████████▌| 95/100 [00:00<00:00, 305.61 it/sec, feas=False, obj=126]
   INFO - 16:25:31:     96%|█████████▌| 96/100 [00:00<00:00, 305.47 it/sec, feas=False, obj=162]
   INFO - 16:25:31:     97%|█████████▋| 97/100 [00:00<00:00, 305.93 it/sec, feas=False, obj=45.7]
   INFO - 16:25:31:     98%|█████████▊| 98/100 [00:00<00:00, 305.85 it/sec, feas=False, obj=21.2]
   INFO - 16:25:31:     99%|█████████▉| 99/100 [00:00<00:00, 305.83 it/sec, feas=False, obj=342]
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:31:    100%|██████████| 100/100 [00:00<00:00, 303.89 it/sec, feas=False, obj=125]
   INFO - 16:25:31: Optimization result:
   INFO - 16:25:31:    Optimizer info:
   INFO - 16:25:31:       Status: None
   INFO - 16:25:31:       Message: None
   INFO - 16:25:31:    Solution:
WARNING - 16:25:31:       The solution is not feasible.
   INFO - 16:25:31:       Objective: 30.3484674529711
   INFO - 16:25:31:       Standardized constraints:
   INFO - 16:25:31:          c_1 = -12.474091450044018
   INFO - 16:25:31:          c_2 = -10.003409829769815
   INFO - 16:25:31:       Design space:
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:25:31:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:25:31:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:25:31:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31: *** End MDOScenario execution (time: 0:00:00.332008) ***
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:31: *** Start MDOScenario execution ***
   INFO - 16:25:31: MDOScenario
   INFO - 16:25:31:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:25:31:    MDO formulation: MDF
   INFO - 16:25:31: Optimization problem:
   INFO - 16:25:31:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:25:31:    with respect to x_1, x_2, x_shared
   INFO - 16:25:31:    under the equality constraints
   INFO - 16:25:31:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:    over the design space:
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:25:31:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31: Solving optimization problem with algorithm MC:
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:31: Optimization result:
   INFO - 16:25:31:    Optimizer info:
   INFO - 16:25:31:       Status: None
   INFO - 16:25:31:       Message: None
   INFO - 16:25:31:    Solution:
WARNING - 16:25:31:       The solution is not feasible.
   INFO - 16:25:31:       Objective: 30.348468138942017
   INFO - 16:25:31:       Standardized constraints:
   INFO - 16:25:31:          c_1 = [-12.47409214]
   INFO - 16:25:31:          c_2 = [-10.00340912]
   INFO - 16:25:31:       Design space:
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:25:31:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:25:31:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:25:31:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:25:31:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:31: *** End MDOScenario execution (time: 0:00:00.024068) ***
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:25:31: Optimization found no feasible point; the least infeasible point is selected.

check that the samples are equal:

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

and see a significant execution time reduction:

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

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

samples_ref, time_ref = solve_sellar(False, True)
samples, time = solve_sellar(True, True)
assert_frame_equal(samples, samples_ref, rtol=1e-3)
   INFO - 16:25:31: *** Start MDOScenario execution ***
   INFO - 16:25:31: MDOScenario
   INFO - 16:25:31:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:25:31:    MDO formulation: MDF
   INFO - 16:25:31: Optimization problem:
   INFO - 16:25:31:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:25:31:    with respect to x_1, x_2, x_shared
   INFO - 16:25:31:    under the equality constraints
   INFO - 16:25:31:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:25:31:    over the design space:
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:25:31:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:25:31:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:25:31:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:31: Solving optimization problem with algorithm MC:
   INFO - 16:25:31:      1%|          | 1/100 [00:00<00:01, 56.15 it/sec, feas=False, obj=191]
   INFO - 16:25:31:      2%|▏         | 2/100 [00:00<00:01, 71.32 it/sec, feas=False, obj=79.2]
   INFO - 16:25:31:      3%|▎         | 3/100 [00:00<00:01, 79.18 it/sec, feas=False, obj=69.1]
   INFO - 16:25:32:      4%|▍         | 4/100 [00:00<00:01, 83.74 it/sec, feas=False, obj=112]
   INFO - 16:25:32:      5%|▌         | 5/100 [00:00<00:01, 87.51 it/sec, feas=False, obj=62.9]
   INFO - 16:25:32:      6%|▌         | 6/100 [00:00<00:01, 89.62 it/sec, feas=False, obj=89.3]
   INFO - 16:25:32:      7%|▋         | 7/100 [00:00<00:01, 91.71 it/sec, feas=False, obj=162]
   INFO - 16:25:32:      8%|▊         | 8/100 [00:00<00:00, 92.53 it/sec, feas=False, obj=591]
   INFO - 16:25:32:      9%|▉         | 9/100 [00:00<00:00, 93.49 it/sec, feas=False, obj=127]
   INFO - 16:25:32:     10%|█         | 10/100 [00:00<00:00, 94.01 it/sec, feas=False, obj=80.9]
   INFO - 16:25:32:     11%|█         | 11/100 [00:00<00:00, 95.04 it/sec, feas=False, obj=131]
   INFO - 16:25:32:     12%|█▏        | 12/100 [00:00<00:00, 95.55 it/sec, feas=False, obj=119]
   INFO - 16:25:32:     13%|█▎        | 13/100 [00:00<00:00, 95.91 it/sec, feas=False, obj=98.4]
   INFO - 16:25:32:     14%|█▍        | 14/100 [00:00<00:00, 96.41 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:25:32:     15%|█▌        | 15/100 [00:00<00:00, 96.83 it/sec, feas=False, obj=220]
   INFO - 16:25:32:     16%|█▌        | 16/100 [00:00<00:00, 97.24 it/sec, feas=False, obj=30.3]
   INFO - 16:25:32:     17%|█▋        | 17/100 [00:00<00:00, 97.87 it/sec, feas=False, obj=130]
   INFO - 16:25:32:     18%|█▊        | 18/100 [00:00<00:00, 98.45 it/sec, feas=False, obj=274]
   INFO - 16:25:32:     19%|█▉        | 19/100 [00:00<00:00, 98.93 it/sec, feas=False, obj=111]
   INFO - 16:25:32:     20%|██        | 20/100 [00:00<00:00, 99.05 it/sec, feas=False, obj=194]
   INFO - 16:25:32:     21%|██        | 21/100 [00:00<00:00, 99.19 it/sec, feas=False, obj=87.1]
   INFO - 16:25:32:     22%|██▏       | 22/100 [00:00<00:00, 99.10 it/sec, feas=False, obj=121]
   INFO - 16:25:32:     23%|██▎       | 23/100 [00:00<00:00, 99.24 it/sec, feas=False, obj=44.7]
   INFO - 16:25:32:     24%|██▍       | 24/100 [00:00<00:00, 99.50 it/sec, feas=False, obj=49.7]
   INFO - 16:25:32:     25%|██▌       | 25/100 [00:00<00:00, 99.88 it/sec, feas=False, obj=62.2]
   INFO - 16:25:32:     26%|██▌       | 26/100 [00:00<00:00, 99.93 it/sec, feas=False, obj=131]
   INFO - 16:25:32:     27%|██▋       | 27/100 [00:00<00:00, 99.99 it/sec, feas=False, obj=89.7]
   INFO - 16:25:32:     28%|██▊       | 28/100 [00:00<00:00, 100.29 it/sec, feas=False, obj=142]
   INFO - 16:25:32:     29%|██▉       | 29/100 [00:00<00:00, 100.59 it/sec, feas=False, obj=85.4]
   INFO - 16:25:32:     30%|███       | 30/100 [00:00<00:00, 100.72 it/sec, feas=False, obj=54.1]
   INFO - 16:25:32:     31%|███       | 31/100 [00:00<00:00, 100.88 it/sec, feas=False, obj=138]
   INFO - 16:25:32:     32%|███▏      | 32/100 [00:00<00:00, 100.99 it/sec, feas=False, obj=107]
   INFO - 16:25:32:     33%|███▎      | 33/100 [00:00<00:00, 101.17 it/sec, feas=False, obj=45.6]
   INFO - 16:25:32:     34%|███▍      | 34/100 [00:00<00:00, 101.22 it/sec, feas=False, obj=211]
   INFO - 16:25:32:     35%|███▌      | 35/100 [00:00<00:00, 101.27 it/sec, feas=False, obj=149]
   INFO - 16:25:32:     36%|███▌      | 36/100 [00:00<00:00, 101.47 it/sec, feas=False, obj=89.2]
   INFO - 16:25:32:     37%|███▋      | 37/100 [00:00<00:00, 101.63 it/sec, feas=False, obj=125]
   INFO - 16:25:32:     38%|███▊      | 38/100 [00:00<00:00, 101.64 it/sec, feas=False, obj=125]
   INFO - 16:25:32:     39%|███▉      | 39/100 [00:00<00:00, 101.78 it/sec, feas=False, obj=156]
   INFO - 16:25:32:     40%|████      | 40/100 [00:00<00:00, 101.92 it/sec, feas=False, obj=65.3]
   INFO - 16:25:32:     41%|████      | 41/100 [00:00<00:00, 101.98 it/sec, feas=False, obj=134]
   INFO - 16:25:32:     42%|████▏     | 42/100 [00:00<00:00, 102.03 it/sec, feas=False, obj=63.5]
   INFO - 16:25:32:     43%|████▎     | 43/100 [00:00<00:00, 102.23 it/sec, feas=False, obj=137]
   INFO - 16:25:32:     44%|████▍     | 44/100 [00:00<00:00, 102.41 it/sec, feas=False, obj=77.2]
   INFO - 16:25:32:     45%|████▌     | 45/100 [00:00<00:00, 102.45 it/sec, feas=False, obj=116]
   INFO - 16:25:32:     46%|████▌     | 46/100 [00:00<00:00, 102.62 it/sec, feas=False, obj=134]
   INFO - 16:25:32:     47%|████▋     | 47/100 [00:00<00:00, 102.63 it/sec, feas=False, obj=110]
   INFO - 16:25:32:     48%|████▊     | 48/100 [00:00<00:00, 102.62 it/sec, feas=False, obj=165]
   INFO - 16:25:32:     49%|████▉     | 49/100 [00:00<00:00, 102.73 it/sec, feas=False, obj=189]
   INFO - 16:25:32:     50%|█████     | 50/100 [00:00<00:00, 102.85 it/sec, feas=False, obj=109]
   INFO - 16:25:32:     51%|█████     | 51/100 [00:00<00:00, 102.77 it/sec, feas=False, obj=95.5]
   INFO - 16:25:32:     52%|█████▏    | 52/100 [00:00<00:00, 102.85 it/sec, feas=False, obj=146]
   INFO - 16:25:32:     53%|█████▎    | 53/100 [00:00<00:00, 102.97 it/sec, feas=False, obj=165]
   INFO - 16:25:32:     54%|█████▍    | 54/100 [00:00<00:00, 103.11 it/sec, feas=False, obj=107]
   INFO - 16:25:32:     55%|█████▌    | 55/100 [00:00<00:00, 103.15 it/sec, feas=False, obj=25.3]
   INFO - 16:25:32:     56%|█████▌    | 56/100 [00:00<00:00, 103.28 it/sec, feas=False, obj=203]
   INFO - 16:25:32:     57%|█████▋    | 57/100 [00:00<00:00, 103.30 it/sec, feas=False, obj=305]
   INFO - 16:25:32:     58%|█████▊    | 58/100 [00:00<00:00, 103.42 it/sec, feas=False, obj=51.7]
   INFO - 16:25:32:     59%|█████▉    | 59/100 [00:00<00:00, 103.41 it/sec, feas=False, obj=212]
   INFO - 16:25:32:     60%|██████    | 60/100 [00:00<00:00, 103.49 it/sec, feas=False, obj=199]
   INFO - 16:25:32:     61%|██████    | 61/100 [00:00<00:00, 103.61 it/sec, feas=False, obj=93.1]
   INFO - 16:25:32:     62%|██████▏   | 62/100 [00:00<00:00, 103.72 it/sec, feas=False, obj=39.9]
   INFO - 16:25:32:     63%|██████▎   | 63/100 [00:00<00:00, 103.83 it/sec, feas=False, obj=112]
   INFO - 16:25:32:     64%|██████▍   | 64/100 [00:00<00:00, 103.95 it/sec, feas=False, obj=136]
   INFO - 16:25:32:     65%|██████▌   | 65/100 [00:00<00:00, 104.04 it/sec, feas=False, obj=40.7]
   INFO - 16:25:32:     66%|██████▌   | 66/100 [00:00<00:00, 104.00 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:25:32:     67%|██████▋   | 67/100 [00:00<00:00, 104.08 it/sec, feas=False, obj=160]
   INFO - 16:25:32:     68%|██████▊   | 68/100 [00:00<00:00, 104.14 it/sec, feas=False, obj=138]
   INFO - 16:25:32:     69%|██████▉   | 69/100 [00:00<00:00, 104.12 it/sec, feas=False, obj=899]
   INFO - 16:25:32:     70%|███████   | 70/100 [00:00<00:00, 104.20 it/sec, feas=False, obj=276]
   INFO - 16:25:32:     71%|███████   | 71/100 [00:00<00:00, 104.20 it/sec, feas=False, obj=44.1]
   INFO - 16:25:32:     72%|███████▏  | 72/100 [00:00<00:00, 103.91 it/sec, feas=False, obj=114]
   INFO - 16:25:32:     73%|███████▎  | 73/100 [00:00<00:00, 103.98 it/sec, feas=False, obj=596]
   INFO - 16:25:32:     74%|███████▍  | 74/100 [00:00<00:00, 103.97 it/sec, feas=False, obj=120]
   INFO - 16:25:32:     75%|███████▌  | 75/100 [00:00<00:00, 104.06 it/sec, feas=False, obj=407]
   INFO - 16:25:32:     76%|███████▌  | 76/100 [00:00<00:00, 104.08 it/sec, feas=False, obj=51.4]
   INFO - 16:25:32:     77%|███████▋  | 77/100 [00:00<00:00, 104.10 it/sec, feas=False, obj=148]
   INFO - 16:25:32:     78%|███████▊  | 78/100 [00:00<00:00, 104.09 it/sec, feas=False, obj=93.9]
   INFO - 16:25:32:     79%|███████▉  | 79/100 [00:00<00:00, 104.06 it/sec, feas=False, obj=72.1]
   INFO - 16:25:32:     80%|████████  | 80/100 [00:00<00:00, 104.14 it/sec, feas=False, obj=292]
   INFO - 16:25:32:     81%|████████  | 81/100 [00:00<00:00, 104.14 it/sec, feas=False, obj=98.6]
   INFO - 16:25:32:     82%|████████▏ | 82/100 [00:00<00:00, 104.13 it/sec, feas=False, obj=25]
   INFO - 16:25:32:     83%|████████▎ | 83/100 [00:00<00:00, 104.10 it/sec, feas=False, obj=33.1]
   INFO - 16:25:32:     84%|████████▍ | 84/100 [00:00<00:00, 104.10 it/sec, feas=False, obj=114]
   INFO - 16:25:32:     85%|████████▌ | 85/100 [00:00<00:00, 104.11 it/sec, feas=False, obj=115]
   INFO - 16:25:32:     86%|████████▌ | 86/100 [00:00<00:00, 104.16 it/sec, feas=False, obj=118]
   INFO - 16:25:32:     87%|████████▋ | 87/100 [00:00<00:00, 104.14 it/sec, feas=False, obj=67.1]
   INFO - 16:25:32:     88%|████████▊ | 88/100 [00:00<00:00, 103.96 it/sec, feas=False, obj=105]
   INFO - 16:25:32:     89%|████████▉ | 89/100 [00:00<00:00, 104.01 it/sec, feas=False, obj=92.6]
   INFO - 16:25:32:     90%|█████████ | 90/100 [00:00<00:00, 103.96 it/sec, feas=False, obj=98.1]
   INFO - 16:25:32:     91%|█████████ | 91/100 [00:00<00:00, 103.96 it/sec, feas=False, obj=133]
   INFO - 16:25:32:     92%|█████████▏| 92/100 [00:00<00:00, 104.01 it/sec, feas=False, obj=197]
   INFO - 16:25:32:     93%|█████████▎| 93/100 [00:00<00:00, 104.04 it/sec, feas=False, obj=82.6]
   INFO - 16:25:32:     94%|█████████▍| 94/100 [00:00<00:00, 104.04 it/sec, feas=False, obj=27.2]
   INFO - 16:25:32:     95%|█████████▌| 95/100 [00:00<00:00, 104.04 it/sec, feas=False, obj=126]
   INFO - 16:25:32:     96%|█████████▌| 96/100 [00:00<00:00, 104.03 it/sec, feas=False, obj=162]
   INFO - 16:25:32:     97%|█████████▋| 97/100 [00:00<00:00, 104.07 it/sec, feas=False, obj=45.7]
   INFO - 16:25:32:     98%|█████████▊| 98/100 [00:00<00:00, 104.06 it/sec, feas=False, obj=21.2]
   INFO - 16:25:32:     99%|█████████▉| 99/100 [00:00<00:00, 104.04 it/sec, feas=False, obj=342]
WARNING - 16:25:32: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:32:    100%|██████████| 100/100 [00:00<00:00, 103.80 it/sec, feas=False, obj=125]
   INFO - 16:25:32: Optimization result:
   INFO - 16:25:32:    Optimizer info:
   INFO - 16:25:32:       Status: None
   INFO - 16:25:32:       Message: None
   INFO - 16:25:32:    Solution:
WARNING - 16:25:32:       The solution is not feasible.
   INFO - 16:25:32:       Objective: 30.3484674529711
   INFO - 16:25:32:       Standardized constraints:
   INFO - 16:25:32:          c_1 = -12.474091450044018
   INFO - 16:25:32:          c_2 = -10.003409829769815
   INFO - 16:25:32:       Design space:
   INFO - 16:25:32:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:32:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:25:32:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:32:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:25:32:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:25:32:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:25:32:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:25:32:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:32: *** End MDOScenario execution (time: 0:00:00.966426) ***
WARNING - 16:25:32: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:25:32: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:32: *** Start MDOScenario execution ***
   INFO - 16:25:32: MDOScenario
   INFO - 16:25:32:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:25:32:    MDO formulation: MDF
   INFO - 16:25:32: Optimization problem:
   INFO - 16:25:32:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:25:32:    with respect to x_1, x_2, x_shared
   INFO - 16:25:32:    under the equality constraints
   INFO - 16:25:32:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:25:32:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:25:32:    over the design space:
   INFO - 16:25:32:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:32:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:25:32:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:32:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:25:32:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:25:32:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:25:32:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:25:32:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:25:32: Solving optimization problem with algorithm MC:
WARNING - 16:25:33: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:25:33: Optimization result:
   INFO - 16:25:33:    Optimizer info:
   INFO - 16:25:33:       Status: None
   INFO - 16:25:33:       Message: None
   INFO - 16:25:33:    Solution:
WARNING - 16:25:33:       The solution is not feasible.
   INFO - 16:25:33:       Objective: 30.348468138942017
   INFO - 16:25:33:       Standardized constraints:
   INFO - 16:25:33:          c_1 = [-12.47409214]
   INFO - 16:25:33:          c_2 = [-10.00340912]
   INFO - 16:25:33:       Design space:
   INFO - 16:25:33:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:33:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:25:33:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:33:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:25:33:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:25:33:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:25:33:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:25:33:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:25:33: *** End MDOScenario execution (time: 0:00:00.306587) ***
WARNING - 16:25:33: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:25:33: 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)} %"
'68 %'

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

Gallery generated by Sphinx-Gallery