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:14:51: Evaluation problem:
INFO - 16:14:51:    Evaluate the functions: area
INFO - 16:14:51:    over the design space:
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | length |      0      |  None |      10     | float |
INFO - 16:14:51:       | width  |      0      |  None |      10     | float |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51: Running the algorithm MC:
INFO - 16:14:51:      1%|          | 6/1000 [00:00<00:00, 12006.60 it/sec]
INFO - 16:14:51:      1%|          | 7/1000 [00:00<00:00, 10672.53 it/sec]
INFO - 16:14:51:      1%|          | 8/1000 [00:00<00:00, 10192.72 it/sec]
INFO - 16:14:51:      1%|          | 9/1000 [00:00<00:00, 9900.01 it/sec]
INFO - 16:14:51:      1%|          | 10/1000 [00:00<00:00, 9457.28 it/sec]
INFO - 16:14:51:      1%|          | 11/1000 [00:00<00:00, 9352.80 it/sec]
INFO - 16:14:51:      1%|          | 12/1000 [00:00<00:00, 9300.01 it/sec]
INFO - 16:14:51:      1%|▏         | 13/1000 [00:00<00:00, 9208.91 it/sec]
INFO - 16:14:51:      1%|▏         | 14/1000 [00:00<00:00, 9136.50 it/sec]
INFO - 16:14:51:      2%|▏         | 15/1000 [00:00<00:00, 9125.99 it/sec]
INFO - 16:14:51:      2%|▏         | 16/1000 [00:00<00:00, 9103.21 it/sec]
INFO - 16:14:51:      2%|▏         | 17/1000 [00:00<00:00, 9070.50 it/sec]
INFO - 16:14:51:      2%|▏         | 18/1000 [00:00<00:00, 8933.55 it/sec]
INFO - 16:14:51:      2%|▏         | 19/1000 [00:00<00:00, 8909.09 it/sec]
INFO - 16:14:51:      2%|▏         | 20/1000 [00:00<00:00, 8919.31 it/sec]
INFO - 16:14:51:      2%|▏         | 21/1000 [00:00<00:00, 8937.63 it/sec]
INFO - 16:14:51:      2%|▏         | 22/1000 [00:00<00:00, 8937.88 it/sec]
INFO - 16:14:51:      2%|▏         | 23/1000 [00:00<00:00, 8941.42 it/sec]
INFO - 16:14:51:      2%|▏         | 24/1000 [00:00<00:00, 8943.87 it/sec]
INFO - 16:14:51:      2%|▎         | 25/1000 [00:00<00:00, 8949.95 it/sec]
INFO - 16:14:51:      3%|▎         | 26/1000 [00:00<00:00, 8951.89 it/sec]
INFO - 16:14:51:      3%|▎         | 27/1000 [00:00<00:00, 8888.33 it/sec]
INFO - 16:14:51:      3%|▎         | 28/1000 [00:00<00:00, 8892.97 it/sec]
INFO - 16:14:51:      3%|▎         | 29/1000 [00:00<00:00, 8902.50 it/sec]
INFO - 16:14:51:      3%|▎         | 30/1000 [00:00<00:00, 8919.62 it/sec]
INFO - 16:14:51:      3%|▎         | 31/1000 [00:00<00:00, 8934.48 it/sec]
INFO - 16:14:51:      3%|▎         | 32/1000 [00:00<00:00, 8928.21 it/sec]
INFO - 16:14:51:      3%|▎         | 33/1000 [00:00<00:00, 8809.32 it/sec]
INFO - 16:14:51:      3%|▎         | 34/1000 [00:00<00:00, 8794.17 it/sec]
INFO - 16:14:51:      4%|▎         | 35/1000 [00:00<00:00, 8752.72 it/sec]
INFO - 16:14:51:      4%|▎         | 36/1000 [00:00<00:00, 8752.32 it/sec]
INFO - 16:14:51:      4%|▎         | 37/1000 [00:00<00:00, 8690.18 it/sec]
INFO - 16:14:51:      4%|▍         | 38/1000 [00:00<00:00, 8698.08 it/sec]
INFO - 16:14:51:      4%|▍         | 39/1000 [00:00<00:00, 8698.64 it/sec]
INFO - 16:14:51:      4%|▍         | 40/1000 [00:00<00:00, 8645.82 it/sec]
INFO - 16:14:51:      4%|▍         | 41/1000 [00:00<00:00, 8649.79 it/sec]
INFO - 16:14:51:      4%|▍         | 42/1000 [00:00<00:00, 8605.38 it/sec]
INFO - 16:14:51:      4%|▍         | 43/1000 [00:00<00:00, 8570.79 it/sec]
INFO - 16:14:51:      4%|▍         | 44/1000 [00:00<00:00, 8581.70 it/sec]
INFO - 16:14:51:      4%|▍         | 45/1000 [00:00<00:00, 8543.14 it/sec]
INFO - 16:14:51:      5%|▍         | 46/1000 [00:00<00:00, 8551.08 it/sec]
INFO - 16:14:51:      5%|▍         | 47/1000 [00:00<00:00, 8504.78 it/sec]
INFO - 16:14:51:      5%|▍         | 48/1000 [00:00<00:00, 8516.71 it/sec]
INFO - 16:14:51:      5%|▍         | 49/1000 [00:00<00:00, 8537.05 it/sec]
INFO - 16:14:51:      5%|▌         | 50/1000 [00:00<00:00, 8554.57 it/sec]
INFO - 16:14:51:      5%|▌         | 51/1000 [00:00<00:00, 8548.17 it/sec]
INFO - 16:14:51:      5%|▌         | 52/1000 [00:00<00:00, 8553.09 it/sec]
INFO - 16:14:51:      5%|▌         | 53/1000 [00:00<00:00, 8521.09 it/sec]
INFO - 16:14:51:      5%|▌         | 54/1000 [00:00<00:00, 8531.75 it/sec]
INFO - 16:14:51:      6%|▌         | 55/1000 [00:00<00:00, 8551.55 it/sec]
INFO - 16:14:51:      6%|▌         | 56/1000 [00:00<00:00, 8571.05 it/sec]
INFO - 16:14:51:      6%|▌         | 57/1000 [00:00<00:00, 8590.56 it/sec]
INFO - 16:14:51:      6%|▌         | 58/1000 [00:00<00:00, 8605.53 it/sec]
INFO - 16:14:51:      6%|▌         | 59/1000 [00:00<00:00, 8577.31 it/sec]
INFO - 16:14:51:      6%|▌         | 60/1000 [00:00<00:00, 8555.73 it/sec]
INFO - 16:14:51:      6%|▌         | 61/1000 [00:00<00:00, 8562.10 it/sec]
INFO - 16:14:51:      6%|▌         | 62/1000 [00:00<00:00, 8572.78 it/sec]
INFO - 16:14:51:      6%|▋         | 63/1000 [00:00<00:00, 8581.21 it/sec]
INFO - 16:14:51:      6%|▋         | 64/1000 [00:00<00:00, 8548.90 it/sec]
INFO - 16:14:51:      6%|▋         | 65/1000 [00:00<00:00, 8554.16 it/sec]
INFO - 16:14:51:      7%|▋         | 66/1000 [00:00<00:00, 8557.16 it/sec]
INFO - 16:14:51:      7%|▋         | 67/1000 [00:00<00:00, 8567.63 it/sec]
INFO - 16:14:51:      7%|▋         | 68/1000 [00:00<00:00, 8525.01 it/sec]
INFO - 16:14:51:      7%|▋         | 69/1000 [00:00<00:00, 8521.49 it/sec]
INFO - 16:14:51:      7%|▋         | 70/1000 [00:00<00:00, 8494.67 it/sec]
INFO - 16:14:51:      7%|▋         | 71/1000 [00:00<00:00, 8496.79 it/sec]
INFO - 16:14:51:      7%|▋         | 72/1000 [00:00<00:00, 8466.21 it/sec]
INFO - 16:14:51:      7%|▋         | 73/1000 [00:00<00:00, 8470.76 it/sec]
INFO - 16:14:51:      7%|▋         | 74/1000 [00:00<00:00, 8443.61 it/sec]
INFO - 16:14:51:      8%|▊         | 75/1000 [00:00<00:00, 8451.03 it/sec]
INFO - 16:14:51:      8%|▊         | 76/1000 [00:00<00:00, 8441.93 it/sec]
INFO - 16:14:51:      8%|▊         | 77/1000 [00:00<00:00, 8418.78 it/sec]
INFO - 16:14:51:      8%|▊         | 78/1000 [00:00<00:00, 8428.59 it/sec]
INFO - 16:14:51:      8%|▊         | 79/1000 [00:00<00:00, 8441.39 it/sec]
INFO - 16:14:51:      8%|▊         | 80/1000 [00:00<00:00, 8439.03 it/sec]
INFO - 16:14:51:      8%|▊         | 81/1000 [00:00<00:00, 8417.91 it/sec]
INFO - 16:14:51:      8%|▊         | 82/1000 [00:00<00:00, 8397.62 it/sec]
INFO - 16:14:51:      8%|▊         | 83/1000 [00:00<00:00, 8404.61 it/sec]
INFO - 16:14:51:      8%|▊         | 84/1000 [00:00<00:00, 8394.00 it/sec]
INFO - 16:14:51:      8%|▊         | 85/1000 [00:00<00:00, 8402.65 it/sec]
INFO - 16:14:51:      9%|▊         | 86/1000 [00:00<00:00, 8408.16 it/sec]
INFO - 16:14:51:      9%|▊         | 87/1000 [00:00<00:00, 8417.44 it/sec]
INFO - 16:14:51:      9%|▉         | 88/1000 [00:00<00:00, 8424.22 it/sec]
INFO - 16:14:51:      9%|▉         | 89/1000 [00:00<00:00, 8434.48 it/sec]
INFO - 16:14:51:      9%|▉         | 90/1000 [00:00<00:00, 8436.41 it/sec]
INFO - 16:14:51:      9%|▉         | 91/1000 [00:00<00:00, 8447.09 it/sec]
INFO - 16:14:51:      9%|▉         | 92/1000 [00:00<00:00, 8457.18 it/sec]
INFO - 16:14:51:      9%|▉         | 93/1000 [00:00<00:00, 8451.86 it/sec]
INFO - 16:14:51:      9%|▉         | 94/1000 [00:00<00:00, 8458.44 it/sec]
INFO - 16:14:51:     10%|▉         | 95/1000 [00:00<00:00, 8467.94 it/sec]
INFO - 16:14:51:     10%|▉         | 96/1000 [00:00<00:00, 8474.05 it/sec]
INFO - 16:14:51:     10%|▉         | 97/1000 [00:00<00:00, 8481.29 it/sec]
INFO - 16:14:51:     10%|▉         | 98/1000 [00:00<00:00, 8488.92 it/sec]
INFO - 16:14:51:     10%|▉         | 99/1000 [00:00<00:00, 8497.79 it/sec]
INFO - 16:14:51:     10%|█         | 100/1000 [00:00<00:00, 8507.03 it/sec]
INFO - 16:14:51:     10%|█         | 101/1000 [00:00<00:00, 8517.12 it/sec]
INFO - 16:14:51:     10%|█         | 102/1000 [00:00<00:00, 8512.63 it/sec]
INFO - 16:14:51:     10%|█         | 103/1000 [00:00<00:00, 8515.26 it/sec]
INFO - 16:14:51:     10%|█         | 104/1000 [00:00<00:00, 8521.84 it/sec]
INFO - 16:14:51:     10%|█         | 105/1000 [00:00<00:00, 8529.80 it/sec]
INFO - 16:14:51:     11%|█         | 106/1000 [00:00<00:00, 8536.63 it/sec]
INFO - 16:14:51:     11%|█         | 107/1000 [00:00<00:00, 8545.95 it/sec]
INFO - 16:14:51:     11%|█         | 108/1000 [00:00<00:00, 8554.47 it/sec]
INFO - 16:14:51:     11%|█         | 109/1000 [00:00<00:00, 8562.21 it/sec]
INFO - 16:14:51:     11%|█         | 110/1000 [00:00<00:00, 8568.39 it/sec]
INFO - 16:14:51:     11%|█         | 111/1000 [00:00<00:00, 8563.90 it/sec]
INFO - 16:14:51:     11%|█         | 112/1000 [00:00<00:00, 8563.86 it/sec]
INFO - 16:14:51:     11%|█▏        | 113/1000 [00:00<00:00, 8568.32 it/sec]
INFO - 16:14:51:     11%|█▏        | 114/1000 [00:00<00:00, 8572.54 it/sec]
INFO - 16:14:51:     12%|█▏        | 115/1000 [00:00<00:00, 8574.56 it/sec]
INFO - 16:14:51:     12%|█▏        | 116/1000 [00:00<00:00, 8576.40 it/sec]
INFO - 16:14:51:     12%|█▏        | 117/1000 [00:00<00:00, 8581.51 it/sec]
INFO - 16:14:51:     12%|█▏        | 118/1000 [00:00<00:00, 8585.49 it/sec]
INFO - 16:14:51:     12%|█▏        | 119/1000 [00:00<00:00, 8591.93 it/sec]
INFO - 16:14:51:     12%|█▏        | 120/1000 [00:00<00:00, 8587.99 it/sec]
INFO - 16:14:51:     12%|█▏        | 121/1000 [00:00<00:00, 8588.92 it/sec]
INFO - 16:14:51:     12%|█▏        | 122/1000 [00:00<00:00, 8593.87 it/sec]
INFO - 16:14:51:     12%|█▏        | 123/1000 [00:00<00:00, 8597.75 it/sec]
INFO - 16:14:51:     12%|█▏        | 124/1000 [00:00<00:00, 8602.85 it/sec]
INFO - 16:14:51:     12%|█▎        | 125/1000 [00:00<00:00, 8606.45 it/sec]
INFO - 16:14:51:     13%|█▎        | 126/1000 [00:00<00:00, 8610.99 it/sec]
INFO - 16:14:51:     13%|█▎        | 127/1000 [00:00<00:00, 8616.85 it/sec]
INFO - 16:14:51:     13%|█▎        | 128/1000 [00:00<00:00, 8623.19 it/sec]
INFO - 16:14:51:     13%|█▎        | 129/1000 [00:00<00:00, 8616.37 it/sec]
INFO - 16:14:51:     13%|█▎        | 130/1000 [00:00<00:00, 8615.53 it/sec]
INFO - 16:14:51:     13%|█▎        | 131/1000 [00:00<00:00, 8556.34 it/sec]
INFO - 16:14:51:     13%|█▎        | 132/1000 [00:00<00:00, 8555.57 it/sec]
INFO - 16:14:51:     13%|█▎        | 133/1000 [00:00<00:00, 8554.42 it/sec]
INFO - 16:14:51:     13%|█▎        | 134/1000 [00:00<00:00, 8555.37 it/sec]
INFO - 16:14:51:     14%|█▎        | 135/1000 [00:00<00:00, 8560.06 it/sec]
INFO - 16:14:51:     14%|█▎        | 136/1000 [00:00<00:00, 8563.66 it/sec]
INFO - 16:14:51:     14%|█▎        | 137/1000 [00:00<00:00, 8557.89 it/sec]
INFO - 16:14:51:     14%|█▍        | 138/1000 [00:00<00:00, 8558.66 it/sec]
INFO - 16:14:51:     14%|█▍        | 139/1000 [00:00<00:00, 8563.58 it/sec]
INFO - 16:14:51:     14%|█▍        | 140/1000 [00:00<00:00, 8570.17 it/sec]
INFO - 16:14:51:     14%|█▍        | 141/1000 [00:00<00:00, 8578.06 it/sec]
INFO - 16:14:51:     14%|█▍        | 142/1000 [00:00<00:00, 8584.85 it/sec]
INFO - 16:14:51:     14%|█▍        | 143/1000 [00:00<00:00, 8589.72 it/sec]
INFO - 16:14:51:     14%|█▍        | 144/1000 [00:00<00:00, 8594.64 it/sec]
INFO - 16:14:51:     14%|█▍        | 145/1000 [00:00<00:00, 8599.50 it/sec]
INFO - 16:14:51:     15%|█▍        | 146/1000 [00:00<00:00, 8595.01 it/sec]
INFO - 16:14:51:     15%|█▍        | 147/1000 [00:00<00:00, 8594.17 it/sec]
INFO - 16:14:51:     15%|█▍        | 148/1000 [00:00<00:00, 8596.55 it/sec]
INFO - 16:14:51:     15%|█▍        | 149/1000 [00:00<00:00, 8599.02 it/sec]
INFO - 16:14:51:     15%|█▌        | 150/1000 [00:00<00:00, 8596.53 it/sec]
INFO - 16:14:51:     15%|█▌        | 151/1000 [00:00<00:00, 8597.92 it/sec]
INFO - 16:14:51:     15%|█▌        | 152/1000 [00:00<00:00, 8580.89 it/sec]
INFO - 16:14:51:     15%|█▌        | 153/1000 [00:00<00:00, 8571.92 it/sec]
INFO - 16:14:51:     15%|█▌        | 154/1000 [00:00<00:00, 8550.17 it/sec]
INFO - 16:14:51:     16%|█▌        | 155/1000 [00:00<00:00, 8549.67 it/sec]
INFO - 16:14:51:     16%|█▌        | 156/1000 [00:00<00:00, 8545.83 it/sec]
INFO - 16:14:51:     16%|█▌        | 157/1000 [00:00<00:00, 8541.71 it/sec]
INFO - 16:14:51:     16%|█▌        | 158/1000 [00:00<00:00, 8539.84 it/sec]
INFO - 16:14:51:     16%|█▌        | 159/1000 [00:00<00:00, 8534.06 it/sec]
INFO - 16:14:51:     16%|█▌        | 160/1000 [00:00<00:00, 8531.19 it/sec]
INFO - 16:14:51:     16%|█▌        | 161/1000 [00:00<00:00, 8526.08 it/sec]
INFO - 16:14:51:     16%|█▌        | 162/1000 [00:00<00:00, 8512.62 it/sec]
INFO - 16:14:51:     16%|█▋        | 163/1000 [00:00<00:00, 8503.59 it/sec]
INFO - 16:14:51:     16%|█▋        | 164/1000 [00:00<00:00, 8497.73 it/sec]
INFO - 16:14:51:     16%|█▋        | 165/1000 [00:00<00:00, 8491.33 it/sec]
INFO - 16:14:51:     17%|█▋        | 166/1000 [00:00<00:00, 8486.87 it/sec]
INFO - 16:14:51:     17%|█▋        | 167/1000 [00:00<00:00, 8479.70 it/sec]
INFO - 16:14:51:     17%|█▋        | 168/1000 [00:00<00:00, 8477.73 it/sec]
INFO - 16:14:51:     17%|█▋        | 169/1000 [00:00<00:00, 8462.62 it/sec]
INFO - 16:14:51:     17%|█▋        | 170/1000 [00:00<00:00, 8461.88 it/sec]
INFO - 16:14:51:     17%|█▋        | 171/1000 [00:00<00:00, 8458.15 it/sec]
INFO - 16:14:51:     17%|█▋        | 172/1000 [00:00<00:00, 8454.47 it/sec]
INFO - 16:14:51:     17%|█▋        | 173/1000 [00:00<00:00, 8451.14 it/sec]
INFO - 16:14:51:     17%|█▋        | 174/1000 [00:00<00:00, 8450.97 it/sec]
INFO - 16:14:51:     18%|█▊        | 175/1000 [00:00<00:00, 8449.83 it/sec]
INFO - 16:14:51:     18%|█▊        | 176/1000 [00:00<00:00, 8448.71 it/sec]
INFO - 16:14:51:     18%|█▊        | 177/1000 [00:00<00:00, 8433.59 it/sec]
INFO - 16:14:51:     18%|█▊        | 178/1000 [00:00<00:00, 8414.61 it/sec]
INFO - 16:14:51:     18%|█▊        | 179/1000 [00:00<00:00, 8407.87 it/sec]
INFO - 16:14:51:     18%|█▊        | 180/1000 [00:00<00:00, 8387.40 it/sec]
INFO - 16:14:51:     18%|█▊        | 181/1000 [00:00<00:00, 8380.92 it/sec]
INFO - 16:14:51:     18%|█▊        | 182/1000 [00:00<00:00, 8366.18 it/sec]
INFO - 16:14:51:     18%|█▊        | 183/1000 [00:00<00:00, 8361.19 it/sec]
INFO - 16:14:51:     18%|█▊        | 184/1000 [00:00<00:00, 8339.66 it/sec]
INFO - 16:14:51:     18%|█▊        | 185/1000 [00:00<00:00, 8339.65 it/sec]
INFO - 16:14:51:     19%|█▊        | 186/1000 [00:00<00:00, 8335.73 it/sec]
INFO - 16:14:51:     19%|█▊        | 187/1000 [00:00<00:00, 8331.49 it/sec]
INFO - 16:14:51:     19%|█▉        | 188/1000 [00:00<00:00, 8329.77 it/sec]
INFO - 16:14:51:     19%|█▉        | 189/1000 [00:00<00:00, 8327.19 it/sec]
INFO - 16:14:51:     19%|█▉        | 190/1000 [00:00<00:00, 8323.25 it/sec]
INFO - 16:14:51:     19%|█▉        | 191/1000 [00:00<00:00, 8300.30 it/sec]
INFO - 16:14:51:     19%|█▉        | 192/1000 [00:00<00:00, 8300.16 it/sec]
INFO - 16:14:51:     19%|█▉        | 193/1000 [00:00<00:00, 8297.38 it/sec]
INFO - 16:14:51:     19%|█▉        | 194/1000 [00:00<00:00, 8295.81 it/sec]
INFO - 16:14:51:     20%|█▉        | 195/1000 [00:00<00:00, 8292.58 it/sec]
INFO - 16:14:51:     20%|█▉        | 196/1000 [00:00<00:00, 8292.06 it/sec]
INFO - 16:14:51:     20%|█▉        | 197/1000 [00:00<00:00, 8289.80 it/sec]
INFO - 16:14:51:     20%|█▉        | 198/1000 [00:00<00:00, 8288.89 it/sec]
INFO - 16:14:51:     20%|█▉        | 199/1000 [00:00<00:00, 8279.44 it/sec]
INFO - 16:14:51:     20%|██        | 200/1000 [00:00<00:00, 8276.87 it/sec]
INFO - 16:14:51:     20%|██        | 201/1000 [00:00<00:00, 8274.58 it/sec]
INFO - 16:14:51:     20%|██        | 202/1000 [00:00<00:00, 8275.13 it/sec]
INFO - 16:14:51:     20%|██        | 203/1000 [00:00<00:00, 8274.64 it/sec]
INFO - 16:14:51:     20%|██        | 204/1000 [00:00<00:00, 8273.51 it/sec]
INFO - 16:14:51:     20%|██        | 205/1000 [00:00<00:00, 8272.39 it/sec]
INFO - 16:14:51:     21%|██        | 206/1000 [00:00<00:00, 8272.71 it/sec]
INFO - 16:14:51:     21%|██        | 207/1000 [00:00<00:00, 8264.44 it/sec]
INFO - 16:14:51:     21%|██        | 208/1000 [00:00<00:00, 8263.46 it/sec]
INFO - 16:14:51:     21%|██        | 209/1000 [00:00<00:00, 8262.26 it/sec]
INFO - 16:14:51:     21%|██        | 210/1000 [00:00<00:00, 8254.96 it/sec]
INFO - 16:14:51:     21%|██        | 211/1000 [00:00<00:00, 8241.28 it/sec]
INFO - 16:14:51:     21%|██        | 212/1000 [00:00<00:00, 8237.61 it/sec]
INFO - 16:14:51:     21%|██▏       | 213/1000 [00:00<00:00, 8227.23 it/sec]
INFO - 16:14:51:     21%|██▏       | 214/1000 [00:00<00:00, 8221.41 it/sec]
INFO - 16:14:51:     22%|██▏       | 215/1000 [00:00<00:00, 8218.05 it/sec]
INFO - 16:14:51:     22%|██▏       | 216/1000 [00:00<00:00, 8216.89 it/sec]
INFO - 16:14:51:     22%|██▏       | 217/1000 [00:00<00:00, 8212.48 it/sec]
INFO - 16:14:51:     22%|██▏       | 218/1000 [00:00<00:00, 8202.14 it/sec]
INFO - 16:14:51:     22%|██▏       | 219/1000 [00:00<00:00, 8200.56 it/sec]
INFO - 16:14:51:     22%|██▏       | 220/1000 [00:00<00:00, 8191.78 it/sec]
INFO - 16:14:51:     22%|██▏       | 221/1000 [00:00<00:00, 8183.47 it/sec]
INFO - 16:14:51:     22%|██▏       | 222/1000 [00:00<00:00, 8173.23 it/sec]
INFO - 16:14:51:     22%|██▏       | 223/1000 [00:00<00:00, 8175.96 it/sec]
INFO - 16:14:51:     22%|██▏       | 224/1000 [00:00<00:00, 8176.17 it/sec]
INFO - 16:14:51:     22%|██▎       | 225/1000 [00:00<00:00, 8176.03 it/sec]
INFO - 16:14:51:     23%|██▎       | 226/1000 [00:00<00:00, 8176.45 it/sec]
INFO - 16:14:51:     23%|██▎       | 227/1000 [00:00<00:00, 8175.96 it/sec]
INFO - 16:14:51:     23%|██▎       | 228/1000 [00:00<00:00, 8174.98 it/sec]
INFO - 16:14:51:     23%|██▎       | 229/1000 [00:00<00:00, 8159.08 it/sec]
INFO - 16:14:51:     23%|██▎       | 230/1000 [00:00<00:00, 8156.81 it/sec]
INFO - 16:14:51:     23%|██▎       | 231/1000 [00:00<00:00, 8148.18 it/sec]
INFO - 16:14:51:     23%|██▎       | 232/1000 [00:00<00:00, 8146.46 it/sec]
INFO - 16:14:51:     23%|██▎       | 233/1000 [00:00<00:00, 8137.09 it/sec]
INFO - 16:14:51:     23%|██▎       | 234/1000 [00:00<00:00, 8135.37 it/sec]
INFO - 16:14:51:     24%|██▎       | 235/1000 [00:00<00:00, 8126.15 it/sec]
INFO - 16:14:51:     24%|██▎       | 236/1000 [00:00<00:00, 8117.03 it/sec]
INFO - 16:14:51:     24%|██▎       | 237/1000 [00:00<00:00, 8106.09 it/sec]
INFO - 16:14:51:     24%|██▍       | 238/1000 [00:00<00:00, 8103.29 it/sec]
INFO - 16:14:51:     24%|██▍       | 239/1000 [00:00<00:00, 8091.62 it/sec]
INFO - 16:14:51:     24%|██▍       | 240/1000 [00:00<00:00, 8090.28 it/sec]
INFO - 16:14:51:     24%|██▍       | 241/1000 [00:00<00:00, 8082.87 it/sec]
INFO - 16:14:51:     24%|██▍       | 242/1000 [00:00<00:00, 8075.79 it/sec]
INFO - 16:14:51:     24%|██▍       | 243/1000 [00:00<00:00, 8068.40 it/sec]
INFO - 16:14:51:     24%|██▍       | 244/1000 [00:00<00:00, 8067.56 it/sec]
INFO - 16:14:51:     24%|██▍       | 245/1000 [00:00<00:00, 8059.96 it/sec]
INFO - 16:14:51:     25%|██▍       | 246/1000 [00:00<00:00, 8058.28 it/sec]
INFO - 16:14:51:     25%|██▍       | 247/1000 [00:00<00:00, 8049.61 it/sec]
INFO - 16:14:51:     25%|██▍       | 248/1000 [00:00<00:00, 8048.31 it/sec]
INFO - 16:14:51:     25%|██▍       | 249/1000 [00:00<00:00, 8051.17 it/sec]
INFO - 16:14:51:     25%|██▌       | 250/1000 [00:00<00:00, 8049.31 it/sec]
INFO - 16:14:51:     25%|██▌       | 251/1000 [00:00<00:00, 8053.57 it/sec]
INFO - 16:14:51:     25%|██▌       | 252/1000 [00:00<00:00, 8058.10 it/sec]
INFO - 16:14:51:     25%|██▌       | 253/1000 [00:00<00:00, 8062.72 it/sec]
INFO - 16:14:51:     25%|██▌       | 254/1000 [00:00<00:00, 8066.95 it/sec]
INFO - 16:14:51:     26%|██▌       | 255/1000 [00:00<00:00, 8071.45 it/sec]
INFO - 16:14:51:     26%|██▌       | 256/1000 [00:00<00:00, 8074.83 it/sec]
INFO - 16:14:51:     26%|██▌       | 257/1000 [00:00<00:00, 8079.21 it/sec]
INFO - 16:14:51:     26%|██▌       | 258/1000 [00:00<00:00, 8083.56 it/sec]
INFO - 16:14:51:     26%|██▌       | 259/1000 [00:00<00:00, 8081.21 it/sec]
INFO - 16:14:51:     26%|██▌       | 260/1000 [00:00<00:00, 8084.81 it/sec]
INFO - 16:14:51:     26%|██▌       | 261/1000 [00:00<00:00, 8088.74 it/sec]
INFO - 16:14:51:     26%|██▌       | 262/1000 [00:00<00:00, 8092.82 it/sec]
INFO - 16:14:51:     26%|██▋       | 263/1000 [00:00<00:00, 8093.67 it/sec]
INFO - 16:14:51:     26%|██▋       | 264/1000 [00:00<00:00, 8097.53 it/sec]
INFO - 16:14:51:     26%|██▋       | 265/1000 [00:00<00:00, 8102.25 it/sec]
INFO - 16:14:51:     27%|██▋       | 266/1000 [00:00<00:00, 8106.70 it/sec]
INFO - 16:14:51:     27%|██▋       | 267/1000 [00:00<00:00, 8109.48 it/sec]
INFO - 16:14:51:     27%|██▋       | 268/1000 [00:00<00:00, 8105.81 it/sec]
INFO - 16:14:51:     27%|██▋       | 269/1000 [00:00<00:00, 8107.76 it/sec]
INFO - 16:14:51:     27%|██▋       | 270/1000 [00:00<00:00, 8111.84 it/sec]
INFO - 16:14:51:     27%|██▋       | 271/1000 [00:00<00:00, 8115.90 it/sec]
INFO - 16:14:51:     27%|██▋       | 272/1000 [00:00<00:00, 8116.18 it/sec]
INFO - 16:14:51:     27%|██▋       | 273/1000 [00:00<00:00, 8119.27 it/sec]
INFO - 16:14:51:     27%|██▋       | 274/1000 [00:00<00:00, 8122.69 it/sec]
INFO - 16:14:51:     28%|██▊       | 275/1000 [00:00<00:00, 8126.72 it/sec]
INFO - 16:14:51:     28%|██▊       | 276/1000 [00:00<00:00, 8092.75 it/sec]
INFO - 16:14:51:     28%|██▊       | 277/1000 [00:00<00:00, 8091.81 it/sec]
INFO - 16:14:51:     28%|██▊       | 278/1000 [00:00<00:00, 8095.09 it/sec]
INFO - 16:14:51:     28%|██▊       | 279/1000 [00:00<00:00, 8099.13 it/sec]
INFO - 16:14:51:     28%|██▊       | 280/1000 [00:00<00:00, 8103.20 it/sec]
INFO - 16:14:51:     28%|██▊       | 281/1000 [00:00<00:00, 8105.91 it/sec]
INFO - 16:14:51:     28%|██▊       | 282/1000 [00:00<00:00, 8109.49 it/sec]
INFO - 16:14:51:     28%|██▊       | 283/1000 [00:00<00:00, 8113.00 it/sec]
INFO - 16:14:51:     28%|██▊       | 284/1000 [00:00<00:00, 8112.33 it/sec]
INFO - 16:14:51:     28%|██▊       | 285/1000 [00:00<00:00, 8114.04 it/sec]
INFO - 16:14:51:     29%|██▊       | 286/1000 [00:00<00:00, 8117.88 it/sec]
INFO - 16:14:51:     29%|██▊       | 287/1000 [00:00<00:00, 8122.13 it/sec]
INFO - 16:14:51:     29%|██▉       | 288/1000 [00:00<00:00, 8126.69 it/sec]
INFO - 16:14:51:     29%|██▉       | 289/1000 [00:00<00:00, 8131.44 it/sec]
INFO - 16:14:51:     29%|██▉       | 290/1000 [00:00<00:00, 8134.53 it/sec]
INFO - 16:14:51:     29%|██▉       | 291/1000 [00:00<00:00, 8137.00 it/sec]
INFO - 16:14:51:     29%|██▉       | 292/1000 [00:00<00:00, 8139.90 it/sec]
INFO - 16:14:51:     29%|██▉       | 293/1000 [00:00<00:00, 8137.86 it/sec]
INFO - 16:14:51:     29%|██▉       | 294/1000 [00:00<00:00, 8140.57 it/sec]
INFO - 16:14:51:     30%|██▉       | 295/1000 [00:00<00:00, 8143.21 it/sec]
INFO - 16:14:51:     30%|██▉       | 296/1000 [00:00<00:00, 8147.01 it/sec]
INFO - 16:14:51:     30%|██▉       | 297/1000 [00:00<00:00, 8151.10 it/sec]
INFO - 16:14:51:     30%|██▉       | 298/1000 [00:00<00:00, 8155.07 it/sec]
INFO - 16:14:51:     30%|██▉       | 299/1000 [00:00<00:00, 8157.84 it/sec]
INFO - 16:14:51:     30%|███       | 300/1000 [00:00<00:00, 8162.19 it/sec]
INFO - 16:14:51:     30%|███       | 301/1000 [00:00<00:00, 8166.09 it/sec]
INFO - 16:14:51:     30%|███       | 302/1000 [00:00<00:00, 8165.28 it/sec]
INFO - 16:14:51:     30%|███       | 303/1000 [00:00<00:00, 8166.78 it/sec]
INFO - 16:14:51:     30%|███       | 304/1000 [00:00<00:00, 8170.37 it/sec]
INFO - 16:14:51:     30%|███       | 305/1000 [00:00<00:00, 8174.20 it/sec]
INFO - 16:14:51:     31%|███       | 306/1000 [00:00<00:00, 8176.29 it/sec]
INFO - 16:14:51:     31%|███       | 307/1000 [00:00<00:00, 8179.56 it/sec]
INFO - 16:14:51:     31%|███       | 308/1000 [00:00<00:00, 8183.49 it/sec]
INFO - 16:14:51:     31%|███       | 309/1000 [00:00<00:00, 8186.00 it/sec]
INFO - 16:14:51:     31%|███       | 310/1000 [00:00<00:00, 8189.01 it/sec]
INFO - 16:14:51:     31%|███       | 311/1000 [00:00<00:00, 8188.04 it/sec]
INFO - 16:14:51:     31%|███       | 312/1000 [00:00<00:00, 8188.67 it/sec]
INFO - 16:14:51:     31%|███▏      | 313/1000 [00:00<00:00, 8190.21 it/sec]
INFO - 16:14:51:     31%|███▏      | 314/1000 [00:00<00:00, 8192.92 it/sec]
INFO - 16:14:51:     32%|███▏      | 315/1000 [00:00<00:00, 8195.71 it/sec]
INFO - 16:14:51:     32%|███▏      | 316/1000 [00:00<00:00, 8198.79 it/sec]
INFO - 16:14:51:     32%|███▏      | 317/1000 [00:00<00:00, 8202.21 it/sec]
INFO - 16:14:51:     32%|███▏      | 318/1000 [00:00<00:00, 8205.00 it/sec]
INFO - 16:14:51:     32%|███▏      | 319/1000 [00:00<00:00, 8207.63 it/sec]
INFO - 16:14:51:     32%|███▏      | 320/1000 [00:00<00:00, 8206.27 it/sec]
INFO - 16:14:51:     32%|███▏      | 321/1000 [00:00<00:00, 8207.73 it/sec]
INFO - 16:14:51:     32%|███▏      | 322/1000 [00:00<00:00, 8209.83 it/sec]
INFO - 16:14:51:     32%|███▏      | 323/1000 [00:00<00:00, 8212.36 it/sec]
INFO - 16:14:51:     32%|███▏      | 324/1000 [00:00<00:00, 8215.62 it/sec]
INFO - 16:14:51:     32%|███▎      | 325/1000 [00:00<00:00, 8218.18 it/sec]
INFO - 16:14:51:     33%|███▎      | 326/1000 [00:00<00:00, 8220.96 it/sec]
INFO - 16:14:51:     33%|███▎      | 327/1000 [00:00<00:00, 8224.32 it/sec]
INFO - 16:14:51:     33%|███▎      | 328/1000 [00:00<00:00, 8227.96 it/sec]
INFO - 16:14:51:     33%|███▎      | 329/1000 [00:00<00:00, 8226.92 it/sec]
INFO - 16:14:51:     33%|███▎      | 330/1000 [00:00<00:00, 8227.01 it/sec]
INFO - 16:14:51:     33%|███▎      | 331/1000 [00:00<00:00, 8229.44 it/sec]
INFO - 16:14:51:     33%|███▎      | 332/1000 [00:00<00:00, 8231.95 it/sec]
INFO - 16:14:51:     33%|███▎      | 333/1000 [00:00<00:00, 8233.97 it/sec]
INFO - 16:14:51:     33%|███▎      | 334/1000 [00:00<00:00, 8236.75 it/sec]
INFO - 16:14:51:     34%|███▎      | 335/1000 [00:00<00:00, 8239.94 it/sec]
INFO - 16:14:51:     34%|███▎      | 336/1000 [00:00<00:00, 8242.55 it/sec]
INFO - 16:14:51:     34%|███▎      | 337/1000 [00:00<00:00, 8244.90 it/sec]
INFO - 16:14:51:     34%|███▍      | 338/1000 [00:00<00:00, 8244.21 it/sec]
INFO - 16:14:51:     34%|███▍      | 339/1000 [00:00<00:00, 8245.06 it/sec]
INFO - 16:14:51:     34%|███▍      | 340/1000 [00:00<00:00, 8248.34 it/sec]
INFO - 16:14:51:     34%|███▍      | 341/1000 [00:00<00:00, 8251.84 it/sec]
INFO - 16:14:51:     34%|███▍      | 342/1000 [00:00<00:00, 8252.04 it/sec]
INFO - 16:14:51:     34%|███▍      | 343/1000 [00:00<00:00, 8254.61 it/sec]
INFO - 16:14:51:     34%|███▍      | 344/1000 [00:00<00:00, 8256.98 it/sec]
INFO - 16:14:51:     34%|███▍      | 345/1000 [00:00<00:00, 8260.23 it/sec]
INFO - 16:14:51:     35%|███▍      | 346/1000 [00:00<00:00, 8263.41 it/sec]
INFO - 16:14:51:     35%|███▍      | 347/1000 [00:00<00:00, 8261.52 it/sec]
INFO - 16:14:51:     35%|███▍      | 348/1000 [00:00<00:00, 8263.09 it/sec]
INFO - 16:14:51:     35%|███▍      | 349/1000 [00:00<00:00, 8266.39 it/sec]
INFO - 16:14:51:     35%|███▌      | 350/1000 [00:00<00:00, 8268.92 it/sec]
INFO - 16:14:51:     35%|███▌      | 351/1000 [00:00<00:00, 8271.49 it/sec]
INFO - 16:14:51:     35%|███▌      | 352/1000 [00:00<00:00, 8274.64 it/sec]
INFO - 16:14:51:     35%|███▌      | 353/1000 [00:00<00:00, 8277.41 it/sec]
INFO - 16:14:51:     35%|███▌      | 354/1000 [00:00<00:00, 8280.12 it/sec]
INFO - 16:14:51:     36%|███▌      | 355/1000 [00:00<00:00, 8282.54 it/sec]
INFO - 16:14:51:     36%|███▌      | 356/1000 [00:00<00:00, 8281.83 it/sec]
INFO - 16:14:51:     36%|███▌      | 357/1000 [00:00<00:00, 8284.00 it/sec]
INFO - 16:14:51:     36%|███▌      | 358/1000 [00:00<00:00, 8285.62 it/sec]
INFO - 16:14:51:     36%|███▌      | 359/1000 [00:00<00:00, 8288.23 it/sec]
INFO - 16:14:51:     36%|███▌      | 360/1000 [00:00<00:00, 8291.37 it/sec]
INFO - 16:14:51:     36%|███▌      | 361/1000 [00:00<00:00, 8294.59 it/sec]
INFO - 16:14:51:     36%|███▌      | 362/1000 [00:00<00:00, 8297.02 it/sec]
INFO - 16:14:51:     36%|███▋      | 363/1000 [00:00<00:00, 8300.03 it/sec]
INFO - 16:14:51:     36%|███▋      | 364/1000 [00:00<00:00, 8302.84 it/sec]
INFO - 16:14:51:     36%|███▋      | 365/1000 [00:00<00:00, 8302.98 it/sec]
INFO - 16:14:51:     37%|███▋      | 366/1000 [00:00<00:00, 8303.22 it/sec]
INFO - 16:14:51:     37%|███▋      | 367/1000 [00:00<00:00, 8306.00 it/sec]
INFO - 16:14:51:     37%|███▋      | 368/1000 [00:00<00:00, 8308.59 it/sec]
INFO - 16:14:51:     37%|███▋      | 369/1000 [00:00<00:00, 8310.32 it/sec]
INFO - 16:14:51:     37%|███▋      | 370/1000 [00:00<00:00, 8312.00 it/sec]
INFO - 16:14:51:     37%|███▋      | 371/1000 [00:00<00:00, 8313.72 it/sec]
INFO - 16:14:51:     37%|███▋      | 372/1000 [00:00<00:00, 8315.87 it/sec]
INFO - 16:14:51:     37%|███▋      | 373/1000 [00:00<00:00, 8317.43 it/sec]
INFO - 16:14:51:     37%|███▋      | 374/1000 [00:00<00:00, 8317.35 it/sec]
INFO - 16:14:51:     38%|███▊      | 375/1000 [00:00<00:00, 8317.63 it/sec]
INFO - 16:14:51:     38%|███▊      | 376/1000 [00:00<00:00, 8319.88 it/sec]
INFO - 16:14:51:     38%|███▊      | 377/1000 [00:00<00:00, 8322.78 it/sec]
INFO - 16:14:51:     38%|███▊      | 378/1000 [00:00<00:00, 8324.70 it/sec]
INFO - 16:14:51:     38%|███▊      | 379/1000 [00:00<00:00, 8326.61 it/sec]
INFO - 16:14:51:     38%|███▊      | 380/1000 [00:00<00:00, 8329.34 it/sec]
INFO - 16:14:51:     38%|███▊      | 381/1000 [00:00<00:00, 8331.32 it/sec]
INFO - 16:14:51:     38%|███▊      | 382/1000 [00:00<00:00, 8332.98 it/sec]
INFO - 16:14:51:     38%|███▊      | 383/1000 [00:00<00:00, 8330.97 it/sec]
INFO - 16:14:51:     38%|███▊      | 384/1000 [00:00<00:00, 8330.99 it/sec]
INFO - 16:14:51:     38%|███▊      | 385/1000 [00:00<00:00, 8332.34 it/sec]
INFO - 16:14:51:     39%|███▊      | 386/1000 [00:00<00:00, 8334.16 it/sec]
INFO - 16:14:51:     39%|███▊      | 387/1000 [00:00<00:00, 8336.56 it/sec]
INFO - 16:14:51:     39%|███▉      | 388/1000 [00:00<00:00, 8339.39 it/sec]
INFO - 16:14:51:     39%|███▉      | 389/1000 [00:00<00:00, 8341.77 it/sec]
INFO - 16:14:51:     39%|███▉      | 390/1000 [00:00<00:00, 8344.11 it/sec]
INFO - 16:14:51:     39%|███▉      | 391/1000 [00:00<00:00, 8346.89 it/sec]
INFO - 16:14:51:     39%|███▉      | 392/1000 [00:00<00:00, 8345.05 it/sec]
INFO - 16:14:51:     39%|███▉      | 393/1000 [00:00<00:00, 8345.37 it/sec]
INFO - 16:14:51:     39%|███▉      | 394/1000 [00:00<00:00, 8347.55 it/sec]
INFO - 16:14:51:     40%|███▉      | 395/1000 [00:00<00:00, 8350.13 it/sec]
INFO - 16:14:51:     40%|███▉      | 396/1000 [00:00<00:00, 8351.36 it/sec]
INFO - 16:14:51:     40%|███▉      | 397/1000 [00:00<00:00, 8352.88 it/sec]
INFO - 16:14:51:     40%|███▉      | 398/1000 [00:00<00:00, 8355.27 it/sec]
INFO - 16:14:51:     40%|███▉      | 399/1000 [00:00<00:00, 8357.82 it/sec]
INFO - 16:14:51:     40%|████      | 400/1000 [00:00<00:00, 8360.52 it/sec]
INFO - 16:14:51:     40%|████      | 401/1000 [00:00<00:00, 8360.59 it/sec]
INFO - 16:14:51:     40%|████      | 402/1000 [00:00<00:00, 8362.19 it/sec]
INFO - 16:14:51:     40%|████      | 403/1000 [00:00<00:00, 8363.79 it/sec]
INFO - 16:14:51:     40%|████      | 404/1000 [00:00<00:00, 8365.75 it/sec]
INFO - 16:14:51:     40%|████      | 405/1000 [00:00<00:00, 8368.36 it/sec]
INFO - 16:14:51:     41%|████      | 406/1000 [00:00<00:00, 8370.18 it/sec]
INFO - 16:14:51:     41%|████      | 407/1000 [00:00<00:00, 8371.91 it/sec]
INFO - 16:14:51:     41%|████      | 408/1000 [00:00<00:00, 8373.91 it/sec]
INFO - 16:14:51:     41%|████      | 409/1000 [00:00<00:00, 8375.71 it/sec]
INFO - 16:14:51:     41%|████      | 410/1000 [00:00<00:00, 8375.00 it/sec]
INFO - 16:14:51:     41%|████      | 411/1000 [00:00<00:00, 8375.53 it/sec]
INFO - 16:14:51:     41%|████      | 412/1000 [00:00<00:00, 8376.69 it/sec]
INFO - 16:14:51:     41%|████▏     | 413/1000 [00:00<00:00, 8377.09 it/sec]
INFO - 16:14:51:     41%|████▏     | 414/1000 [00:00<00:00, 8378.17 it/sec]
INFO - 16:14:51:     42%|████▏     | 415/1000 [00:00<00:00, 8379.80 it/sec]
INFO - 16:14:51:     42%|████▏     | 416/1000 [00:00<00:00, 8381.92 it/sec]
INFO - 16:14:51:     42%|████▏     | 417/1000 [00:00<00:00, 8383.54 it/sec]
INFO - 16:14:51:     42%|████▏     | 418/1000 [00:00<00:00, 8386.00 it/sec]
INFO - 16:14:51:     42%|████▏     | 419/1000 [00:00<00:00, 8384.97 it/sec]
INFO - 16:14:51:     42%|████▏     | 420/1000 [00:00<00:00, 8386.17 it/sec]
INFO - 16:14:51:     42%|████▏     | 421/1000 [00:00<00:00, 8387.97 it/sec]
INFO - 16:14:51:     42%|████▏     | 422/1000 [00:00<00:00, 8389.48 it/sec]
INFO - 16:14:51:     42%|████▏     | 423/1000 [00:00<00:00, 8390.47 it/sec]
INFO - 16:14:51:     42%|████▏     | 424/1000 [00:00<00:00, 8371.39 it/sec]
INFO - 16:14:51:     42%|████▎     | 425/1000 [00:00<00:00, 8372.49 it/sec]
INFO - 16:14:51:     43%|████▎     | 426/1000 [00:00<00:00, 8374.02 it/sec]
INFO - 16:14:51:     43%|████▎     | 427/1000 [00:00<00:00, 8372.02 it/sec]
INFO - 16:14:51:     43%|████▎     | 428/1000 [00:00<00:00, 8372.68 it/sec]
INFO - 16:14:51:     43%|████▎     | 429/1000 [00:00<00:00, 8374.12 it/sec]
INFO - 16:14:51:     43%|████▎     | 430/1000 [00:00<00:00, 8376.57 it/sec]
INFO - 16:14:51:     43%|████▎     | 431/1000 [00:00<00:00, 8377.99 it/sec]
INFO - 16:14:51:     43%|████▎     | 432/1000 [00:00<00:00, 8380.07 it/sec]
INFO - 16:14:51:     43%|████▎     | 433/1000 [00:00<00:00, 8381.99 it/sec]
INFO - 16:14:51:     43%|████▎     | 434/1000 [00:00<00:00, 8384.71 it/sec]
INFO - 16:14:51:     44%|████▎     | 435/1000 [00:00<00:00, 8386.83 it/sec]
INFO - 16:14:51:     44%|████▎     | 436/1000 [00:00<00:00, 8385.80 it/sec]
INFO - 16:14:51:     44%|████▎     | 437/1000 [00:00<00:00, 8387.23 it/sec]
INFO - 16:14:51:     44%|████▍     | 438/1000 [00:00<00:00, 8389.68 it/sec]
INFO - 16:14:51:     44%|████▍     | 439/1000 [00:00<00:00, 8392.32 it/sec]
INFO - 16:14:51:     44%|████▍     | 440/1000 [00:00<00:00, 8394.98 it/sec]
INFO - 16:14:51:     44%|████▍     | 441/1000 [00:00<00:00, 8397.02 it/sec]
INFO - 16:14:51:     44%|████▍     | 442/1000 [00:00<00:00, 8398.79 it/sec]
INFO - 16:14:51:     44%|████▍     | 443/1000 [00:00<00:00, 8401.16 it/sec]
INFO - 16:14:51:     44%|████▍     | 444/1000 [00:00<00:00, 8403.18 it/sec]
INFO - 16:14:51:     44%|████▍     | 445/1000 [00:00<00:00, 8401.75 it/sec]
INFO - 16:14:51:     45%|████▍     | 446/1000 [00:00<00:00, 8402.32 it/sec]
INFO - 16:14:51:     45%|████▍     | 447/1000 [00:00<00:00, 8403.31 it/sec]
INFO - 16:14:51:     45%|████▍     | 448/1000 [00:00<00:00, 8404.52 it/sec]
INFO - 16:14:51:     45%|████▍     | 449/1000 [00:00<00:00, 8405.12 it/sec]
INFO - 16:14:51:     45%|████▌     | 450/1000 [00:00<00:00, 8406.20 it/sec]
INFO - 16:14:51:     45%|████▌     | 451/1000 [00:00<00:00, 8407.81 it/sec]
INFO - 16:14:51:     45%|████▌     | 452/1000 [00:00<00:00, 8409.74 it/sec]
INFO - 16:14:51:     45%|████▌     | 453/1000 [00:00<00:00, 8411.41 it/sec]
INFO - 16:14:51:     45%|████▌     | 454/1000 [00:00<00:00, 8409.43 it/sec]
INFO - 16:14:51:     46%|████▌     | 455/1000 [00:00<00:00, 8409.46 it/sec]
INFO - 16:14:51:     46%|████▌     | 456/1000 [00:00<00:00, 8410.08 it/sec]
INFO - 16:14:51:     46%|████▌     | 457/1000 [00:00<00:00, 8411.39 it/sec]
INFO - 16:14:51:     46%|████▌     | 458/1000 [00:00<00:00, 8413.04 it/sec]
INFO - 16:14:51:     46%|████▌     | 459/1000 [00:00<00:00, 8414.09 it/sec]
INFO - 16:14:51:     46%|████▌     | 460/1000 [00:00<00:00, 8414.62 it/sec]
INFO - 16:14:51:     46%|████▌     | 461/1000 [00:00<00:00, 8415.66 it/sec]
INFO - 16:14:51:     46%|████▌     | 462/1000 [00:00<00:00, 8416.85 it/sec]
INFO - 16:14:51:     46%|████▋     | 463/1000 [00:00<00:00, 8415.11 it/sec]
INFO - 16:14:51:     46%|████▋     | 464/1000 [00:00<00:00, 8416.14 it/sec]
INFO - 16:14:51:     46%|████▋     | 465/1000 [00:00<00:00, 8417.54 it/sec]
INFO - 16:14:51:     47%|████▋     | 466/1000 [00:00<00:00, 8418.56 it/sec]
INFO - 16:14:51:     47%|████▋     | 467/1000 [00:00<00:00, 8419.80 it/sec]
INFO - 16:14:51:     47%|████▋     | 468/1000 [00:00<00:00, 8421.14 it/sec]
INFO - 16:14:51:     47%|████▋     | 469/1000 [00:00<00:00, 8422.66 it/sec]
INFO - 16:14:51:     47%|████▋     | 470/1000 [00:00<00:00, 8423.23 it/sec]
INFO - 16:14:51:     47%|████▋     | 471/1000 [00:00<00:00, 8424.20 it/sec]
INFO - 16:14:51:     47%|████▋     | 472/1000 [00:00<00:00, 8421.97 it/sec]
INFO - 16:14:51:     47%|████▋     | 473/1000 [00:00<00:00, 8423.30 it/sec]
INFO - 16:14:51:     47%|████▋     | 474/1000 [00:00<00:00, 8424.33 it/sec]
INFO - 16:14:51:     48%|████▊     | 475/1000 [00:00<00:00, 8425.89 it/sec]
INFO - 16:14:51:     48%|████▊     | 476/1000 [00:00<00:00, 8427.10 it/sec]
INFO - 16:14:51:     48%|████▊     | 477/1000 [00:00<00:00, 8428.68 it/sec]
INFO - 16:14:51:     48%|████▊     | 478/1000 [00:00<00:00, 8429.88 it/sec]
INFO - 16:14:51:     48%|████▊     | 479/1000 [00:00<00:00, 8431.63 it/sec]
INFO - 16:14:51:     48%|████▊     | 480/1000 [00:00<00:00, 8432.95 it/sec]
INFO - 16:14:51:     48%|████▊     | 481/1000 [00:00<00:00, 8430.96 it/sec]
INFO - 16:14:51:     48%|████▊     | 482/1000 [00:00<00:00, 8432.10 it/sec]
INFO - 16:14:51:     48%|████▊     | 483/1000 [00:00<00:00, 8433.73 it/sec]
INFO - 16:14:51:     48%|████▊     | 484/1000 [00:00<00:00, 8434.44 it/sec]
INFO - 16:14:51:     48%|████▊     | 485/1000 [00:00<00:00, 8434.07 it/sec]
INFO - 16:14:51:     49%|████▊     | 486/1000 [00:00<00:00, 8435.19 it/sec]
INFO - 16:14:51:     49%|████▊     | 487/1000 [00:00<00:00, 8436.70 it/sec]
INFO - 16:14:51:     49%|████▉     | 488/1000 [00:00<00:00, 8437.43 it/sec]
INFO - 16:14:51:     49%|████▉     | 489/1000 [00:00<00:00, 8436.81 it/sec]
INFO - 16:14:51:     49%|████▉     | 490/1000 [00:00<00:00, 8436.82 it/sec]
INFO - 16:14:51:     49%|████▉     | 491/1000 [00:00<00:00, 8437.55 it/sec]
INFO - 16:14:51:     49%|████▉     | 492/1000 [00:00<00:00, 8438.86 it/sec]
INFO - 16:14:51:     49%|████▉     | 493/1000 [00:00<00:00, 8440.41 it/sec]
INFO - 16:14:51:     49%|████▉     | 494/1000 [00:00<00:00, 8441.82 it/sec]
INFO - 16:14:51:     50%|████▉     | 495/1000 [00:00<00:00, 8443.53 it/sec]
INFO - 16:14:51:     50%|████▉     | 496/1000 [00:00<00:00, 8444.62 it/sec]
INFO - 16:14:51:     50%|████▉     | 497/1000 [00:00<00:00, 8446.39 it/sec]
INFO - 16:14:51:     50%|████▉     | 498/1000 [00:00<00:00, 8444.77 it/sec]
INFO - 16:14:51:     50%|████▉     | 499/1000 [00:00<00:00, 8445.61 it/sec]
INFO - 16:14:51:     50%|█████     | 500/1000 [00:00<00:00, 8446.35 it/sec]
INFO - 16:14:51:     50%|█████     | 501/1000 [00:00<00:00, 8447.49 it/sec]
INFO - 16:14:51:     50%|█████     | 502/1000 [00:00<00:00, 8448.39 it/sec]
INFO - 16:14:51:     50%|█████     | 503/1000 [00:00<00:00, 8449.82 it/sec]
INFO - 16:14:51:     50%|█████     | 504/1000 [00:00<00:00, 8451.02 it/sec]
INFO - 16:14:51:     50%|█████     | 505/1000 [00:00<00:00, 8452.58 it/sec]
INFO - 16:14:51:     51%|█████     | 506/1000 [00:00<00:00, 8453.97 it/sec]
INFO - 16:14:51:     51%|█████     | 507/1000 [00:00<00:00, 8452.86 it/sec]
INFO - 16:14:51:     51%|█████     | 508/1000 [00:00<00:00, 8453.44 it/sec]
INFO - 16:14:51:     51%|█████     | 509/1000 [00:00<00:00, 8454.95 it/sec]
INFO - 16:14:51:     51%|█████     | 510/1000 [00:00<00:00, 8456.56 it/sec]
INFO - 16:14:51:     51%|█████     | 511/1000 [00:00<00:00, 8457.33 it/sec]
INFO - 16:14:51:     51%|█████     | 512/1000 [00:00<00:00, 8457.86 it/sec]
INFO - 16:14:51:     51%|█████▏    | 513/1000 [00:00<00:00, 8459.18 it/sec]
INFO - 16:14:51:     51%|█████▏    | 514/1000 [00:00<00:00, 8460.74 it/sec]
INFO - 16:14:51:     52%|█████▏    | 515/1000 [00:00<00:00, 8461.99 it/sec]
INFO - 16:14:51:     52%|█████▏    | 516/1000 [00:00<00:00, 8459.93 it/sec]
INFO - 16:14:51:     52%|█████▏    | 517/1000 [00:00<00:00, 8459.66 it/sec]
INFO - 16:14:51:     52%|█████▏    | 518/1000 [00:00<00:00, 8460.51 it/sec]
INFO - 16:14:51:     52%|█████▏    | 519/1000 [00:00<00:00, 8462.31 it/sec]
INFO - 16:14:51:     52%|█████▏    | 520/1000 [00:00<00:00, 8463.05 it/sec]
INFO - 16:14:51:     52%|█████▏    | 521/1000 [00:00<00:00, 8464.32 it/sec]
INFO - 16:14:51:     52%|█████▏    | 522/1000 [00:00<00:00, 8465.67 it/sec]
INFO - 16:14:51:     52%|█████▏    | 523/1000 [00:00<00:00, 8467.00 it/sec]
INFO - 16:14:51:     52%|█████▏    | 524/1000 [00:00<00:00, 8468.18 it/sec]
INFO - 16:14:51:     52%|█████▎    | 525/1000 [00:00<00:00, 8466.76 it/sec]
INFO - 16:14:51:     53%|█████▎    | 526/1000 [00:00<00:00, 8467.78 it/sec]
INFO - 16:14:51:     53%|█████▎    | 527/1000 [00:00<00:00, 8469.41 it/sec]
INFO - 16:14:51:     53%|█████▎    | 528/1000 [00:00<00:00, 8470.88 it/sec]
INFO - 16:14:51:     53%|█████▎    | 529/1000 [00:00<00:00, 8471.69 it/sec]
INFO - 16:14:51:     53%|█████▎    | 530/1000 [00:00<00:00, 8472.63 it/sec]
INFO - 16:14:51:     53%|█████▎    | 531/1000 [00:00<00:00, 8473.31 it/sec]
INFO - 16:14:51:     53%|█████▎    | 532/1000 [00:00<00:00, 8474.40 it/sec]
INFO - 16:14:51:     53%|█████▎    | 533/1000 [00:00<00:00, 8475.69 it/sec]
INFO - 16:14:51:     53%|█████▎    | 534/1000 [00:00<00:00, 8474.21 it/sec]
INFO - 16:14:51:     54%|█████▎    | 535/1000 [00:00<00:00, 8475.04 it/sec]
INFO - 16:14:51:     54%|█████▎    | 536/1000 [00:00<00:00, 8475.67 it/sec]
INFO - 16:14:51:     54%|█████▎    | 537/1000 [00:00<00:00, 8476.82 it/sec]
INFO - 16:14:51:     54%|█████▍    | 538/1000 [00:00<00:00, 8477.86 it/sec]
INFO - 16:14:51:     54%|█████▍    | 539/1000 [00:00<00:00, 8479.16 it/sec]
INFO - 16:14:51:     54%|█████▍    | 540/1000 [00:00<00:00, 8479.65 it/sec]
INFO - 16:14:51:     54%|█████▍    | 541/1000 [00:00<00:00, 8481.07 it/sec]
INFO - 16:14:51:     54%|█████▍    | 542/1000 [00:00<00:00, 8482.00 it/sec]
INFO - 16:14:51:     54%|█████▍    | 543/1000 [00:00<00:00, 8479.97 it/sec]
INFO - 16:14:51:     54%|█████▍    | 544/1000 [00:00<00:00, 8480.96 it/sec]
INFO - 16:14:51:     55%|█████▍    | 545/1000 [00:00<00:00, 8482.40 it/sec]
INFO - 16:14:51:     55%|█████▍    | 546/1000 [00:00<00:00, 8482.91 it/sec]
INFO - 16:14:51:     55%|█████▍    | 547/1000 [00:00<00:00, 8484.18 it/sec]
INFO - 16:14:51:     55%|█████▍    | 548/1000 [00:00<00:00, 8485.57 it/sec]
INFO - 16:14:51:     55%|█████▍    | 549/1000 [00:00<00:00, 8487.24 it/sec]
INFO - 16:14:51:     55%|█████▌    | 550/1000 [00:00<00:00, 8488.84 it/sec]
INFO - 16:14:51:     55%|█████▌    | 551/1000 [00:00<00:00, 8489.71 it/sec]
INFO - 16:14:51:     55%|█████▌    | 552/1000 [00:00<00:00, 8488.03 it/sec]
INFO - 16:14:51:     55%|█████▌    | 553/1000 [00:00<00:00, 8489.06 it/sec]
INFO - 16:14:51:     55%|█████▌    | 554/1000 [00:00<00:00, 8490.03 it/sec]
INFO - 16:14:51:     56%|█████▌    | 555/1000 [00:00<00:00, 8491.49 it/sec]
INFO - 16:14:51:     56%|█████▌    | 556/1000 [00:00<00:00, 8490.56 it/sec]
INFO - 16:14:51:     56%|█████▌    | 557/1000 [00:00<00:00, 8491.60 it/sec]
INFO - 16:14:51:     56%|█████▌    | 558/1000 [00:00<00:00, 8492.34 it/sec]
INFO - 16:14:51:     56%|█████▌    | 559/1000 [00:00<00:00, 8493.54 it/sec]
INFO - 16:14:51:     56%|█████▌    | 560/1000 [00:00<00:00, 8494.45 it/sec]
INFO - 16:14:51:     56%|█████▌    | 561/1000 [00:00<00:00, 8492.70 it/sec]
INFO - 16:14:51:     56%|█████▌    | 562/1000 [00:00<00:00, 8493.61 it/sec]
INFO - 16:14:51:     56%|█████▋    | 563/1000 [00:00<00:00, 8494.40 it/sec]
INFO - 16:14:51:     56%|█████▋    | 564/1000 [00:00<00:00, 8495.13 it/sec]
INFO - 16:14:51:     56%|█████▋    | 565/1000 [00:00<00:00, 8496.25 it/sec]
INFO - 16:14:51:     57%|█████▋    | 566/1000 [00:00<00:00, 8496.66 it/sec]
INFO - 16:14:51:     57%|█████▋    | 567/1000 [00:00<00:00, 8497.87 it/sec]
INFO - 16:14:51:     57%|█████▋    | 568/1000 [00:00<00:00, 8498.82 it/sec]
INFO - 16:14:51:     57%|█████▋    | 569/1000 [00:00<00:00, 8498.26 it/sec]
INFO - 16:14:51:     57%|█████▋    | 570/1000 [00:00<00:00, 8497.89 it/sec]
INFO - 16:14:51:     57%|█████▋    | 571/1000 [00:00<00:00, 8498.57 it/sec]
INFO - 16:14:51:     57%|█████▋    | 572/1000 [00:00<00:00, 8498.95 it/sec]
INFO - 16:14:51:     57%|█████▋    | 573/1000 [00:00<00:00, 8484.56 it/sec]
INFO - 16:14:51:     57%|█████▋    | 574/1000 [00:00<00:00, 8485.20 it/sec]
INFO - 16:14:51:     57%|█████▊    | 575/1000 [00:00<00:00, 8485.62 it/sec]
INFO - 16:14:51:     58%|█████▊    | 576/1000 [00:00<00:00, 8485.96 it/sec]
INFO - 16:14:51:     58%|█████▊    | 577/1000 [00:00<00:00, 8484.21 it/sec]
INFO - 16:14:51:     58%|█████▊    | 578/1000 [00:00<00:00, 8484.76 it/sec]
INFO - 16:14:51:     58%|█████▊    | 579/1000 [00:00<00:00, 8485.66 it/sec]
INFO - 16:14:51:     58%|█████▊    | 580/1000 [00:00<00:00, 8486.38 it/sec]
INFO - 16:14:51:     58%|█████▊    | 581/1000 [00:00<00:00, 8487.51 it/sec]
INFO - 16:14:51:     58%|█████▊    | 582/1000 [00:00<00:00, 8488.49 it/sec]
INFO - 16:14:51:     58%|█████▊    | 583/1000 [00:00<00:00, 8489.64 it/sec]
INFO - 16:14:51:     58%|█████▊    | 584/1000 [00:00<00:00, 8491.05 it/sec]
INFO - 16:14:51:     58%|█████▊    | 585/1000 [00:00<00:00, 8492.17 it/sec]
INFO - 16:14:51:     59%|█████▊    | 586/1000 [00:00<00:00, 8490.26 it/sec]
INFO - 16:14:51:     59%|█████▊    | 587/1000 [00:00<00:00, 8490.99 it/sec]
INFO - 16:14:51:     59%|█████▉    | 588/1000 [00:00<00:00, 8491.34 it/sec]
INFO - 16:14:51:     59%|█████▉    | 589/1000 [00:00<00:00, 8492.30 it/sec]
INFO - 16:14:51:     59%|█████▉    | 590/1000 [00:00<00:00, 8491.95 it/sec]
INFO - 16:14:51:     59%|█████▉    | 591/1000 [00:00<00:00, 8492.85 it/sec]
INFO - 16:14:51:     59%|█████▉    | 592/1000 [00:00<00:00, 8493.51 it/sec]
INFO - 16:14:51:     59%|█████▉    | 593/1000 [00:00<00:00, 8494.90 it/sec]
INFO - 16:14:51:     59%|█████▉    | 594/1000 [00:00<00:00, 8495.85 it/sec]
INFO - 16:14:51:     60%|█████▉    | 595/1000 [00:00<00:00, 8493.44 it/sec]
INFO - 16:14:51:     60%|█████▉    | 596/1000 [00:00<00:00, 8494.07 it/sec]
INFO - 16:14:51:     60%|█████▉    | 597/1000 [00:00<00:00, 8494.84 it/sec]
INFO - 16:14:51:     60%|█████▉    | 598/1000 [00:00<00:00, 8495.67 it/sec]
INFO - 16:14:51:     60%|█████▉    | 599/1000 [00:00<00:00, 8496.98 it/sec]
INFO - 16:14:51:     60%|██████    | 600/1000 [00:00<00:00, 8497.49 it/sec]
INFO - 16:14:51:     60%|██████    | 601/1000 [00:00<00:00, 8498.42 it/sec]
INFO - 16:14:51:     60%|██████    | 602/1000 [00:00<00:00, 8499.10 it/sec]
INFO - 16:14:51:     60%|██████    | 603/1000 [00:00<00:00, 8498.08 it/sec]
INFO - 16:14:51:     60%|██████    | 604/1000 [00:00<00:00, 8497.53 it/sec]
INFO - 16:14:51:     60%|██████    | 605/1000 [00:00<00:00, 8498.20 it/sec]
INFO - 16:14:51:     61%|██████    | 606/1000 [00:00<00:00, 8498.81 it/sec]
INFO - 16:14:51:     61%|██████    | 607/1000 [00:00<00:00, 8499.79 it/sec]
INFO - 16:14:51:     61%|██████    | 608/1000 [00:00<00:00, 8500.31 it/sec]
INFO - 16:14:51:     61%|██████    | 609/1000 [00:00<00:00, 8501.43 it/sec]
INFO - 16:14:51:     61%|██████    | 610/1000 [00:00<00:00, 8502.26 it/sec]
INFO - 16:14:51:     61%|██████    | 611/1000 [00:00<00:00, 8503.48 it/sec]
INFO - 16:14:51:     61%|██████    | 612/1000 [00:00<00:00, 8501.83 it/sec]
INFO - 16:14:51:     61%|██████▏   | 613/1000 [00:00<00:00, 8501.98 it/sec]
INFO - 16:14:51:     61%|██████▏   | 614/1000 [00:00<00:00, 8502.55 it/sec]
INFO - 16:14:51:     62%|██████▏   | 615/1000 [00:00<00:00, 8503.73 it/sec]
INFO - 16:14:51:     62%|██████▏   | 616/1000 [00:00<00:00, 8504.66 it/sec]
INFO - 16:14:51:     62%|██████▏   | 617/1000 [00:00<00:00, 8505.73 it/sec]
INFO - 16:14:51:     62%|██████▏   | 618/1000 [00:00<00:00, 8506.40 it/sec]
INFO - 16:14:51:     62%|██████▏   | 619/1000 [00:00<00:00, 8507.47 it/sec]
INFO - 16:14:51:     62%|██████▏   | 620/1000 [00:00<00:00, 8508.52 it/sec]
INFO - 16:14:51:     62%|██████▏   | 621/1000 [00:00<00:00, 8507.24 it/sec]
INFO - 16:14:51:     62%|██████▏   | 622/1000 [00:00<00:00, 8507.72 it/sec]
INFO - 16:14:51:     62%|██████▏   | 623/1000 [00:00<00:00, 8508.21 it/sec]
INFO - 16:14:51:     62%|██████▏   | 624/1000 [00:00<00:00, 8509.10 it/sec]
INFO - 16:14:51:     62%|██████▎   | 625/1000 [00:00<00:00, 8509.29 it/sec]
INFO - 16:14:51:     63%|██████▎   | 626/1000 [00:00<00:00, 8509.65 it/sec]
INFO - 16:14:51:     63%|██████▎   | 627/1000 [00:00<00:00, 8510.63 it/sec]
INFO - 16:14:51:     63%|██████▎   | 628/1000 [00:00<00:00, 8511.29 it/sec]
INFO - 16:14:51:     63%|██████▎   | 629/1000 [00:00<00:00, 8511.78 it/sec]
INFO - 16:14:51:     63%|██████▎   | 630/1000 [00:00<00:00, 8510.32 it/sec]
INFO - 16:14:51:     63%|██████▎   | 631/1000 [00:00<00:00, 8511.08 it/sec]
INFO - 16:14:51:     63%|██████▎   | 632/1000 [00:00<00:00, 8511.65 it/sec]
INFO - 16:14:51:     63%|██████▎   | 633/1000 [00:00<00:00, 8512.54 it/sec]
INFO - 16:14:51:     63%|██████▎   | 634/1000 [00:00<00:00, 8513.03 it/sec]
INFO - 16:14:51:     64%|██████▎   | 635/1000 [00:00<00:00, 8513.40 it/sec]
INFO - 16:14:51:     64%|██████▎   | 636/1000 [00:00<00:00, 8513.88 it/sec]
INFO - 16:14:51:     64%|██████▎   | 637/1000 [00:00<00:00, 8515.09 it/sec]
INFO - 16:14:51:     64%|██████▍   | 638/1000 [00:00<00:00, 8515.62 it/sec]
INFO - 16:14:51:     64%|██████▍   | 639/1000 [00:00<00:00, 8513.82 it/sec]
INFO - 16:14:51:     64%|██████▍   | 640/1000 [00:00<00:00, 8514.76 it/sec]
INFO - 16:14:51:     64%|██████▍   | 641/1000 [00:00<00:00, 8515.67 it/sec]
INFO - 16:14:51:     64%|██████▍   | 642/1000 [00:00<00:00, 8516.35 it/sec]
INFO - 16:14:51:     64%|██████▍   | 643/1000 [00:00<00:00, 8517.39 it/sec]
INFO - 16:14:51:     64%|██████▍   | 644/1000 [00:00<00:00, 8517.94 it/sec]
INFO - 16:14:51:     64%|██████▍   | 645/1000 [00:00<00:00, 8518.78 it/sec]
INFO - 16:14:51:     65%|██████▍   | 646/1000 [00:00<00:00, 8519.75 it/sec]
INFO - 16:14:51:     65%|██████▍   | 647/1000 [00:00<00:00, 8517.17 it/sec]
INFO - 16:14:51:     65%|██████▍   | 648/1000 [00:00<00:00, 8516.99 it/sec]
INFO - 16:14:51:     65%|██████▍   | 649/1000 [00:00<00:00, 8517.65 it/sec]
INFO - 16:14:51:     65%|██████▌   | 650/1000 [00:00<00:00, 8518.54 it/sec]
INFO - 16:14:51:     65%|██████▌   | 651/1000 [00:00<00:00, 8519.02 it/sec]
INFO - 16:14:51:     65%|██████▌   | 652/1000 [00:00<00:00, 8519.75 it/sec]
INFO - 16:14:51:     65%|██████▌   | 653/1000 [00:00<00:00, 8520.00 it/sec]
INFO - 16:14:51:     65%|██████▌   | 654/1000 [00:00<00:00, 8520.72 it/sec]
INFO - 16:14:51:     66%|██████▌   | 655/1000 [00:00<00:00, 8521.25 it/sec]
INFO - 16:14:51:     66%|██████▌   | 656/1000 [00:00<00:00, 8520.12 it/sec]
INFO - 16:14:51:     66%|██████▌   | 657/1000 [00:00<00:00, 8520.45 it/sec]
INFO - 16:14:51:     66%|██████▌   | 658/1000 [00:00<00:00, 8521.77 it/sec]
INFO - 16:14:51:     66%|██████▌   | 659/1000 [00:00<00:00, 8522.83 it/sec]
INFO - 16:14:51:     66%|██████▌   | 660/1000 [00:00<00:00, 8522.54 it/sec]
INFO - 16:14:51:     66%|██████▌   | 661/1000 [00:00<00:00, 8522.99 it/sec]
INFO - 16:14:51:     66%|██████▌   | 662/1000 [00:00<00:00, 8523.83 it/sec]
INFO - 16:14:51:     66%|██████▋   | 663/1000 [00:00<00:00, 8524.83 it/sec]
INFO - 16:14:51:     66%|██████▋   | 664/1000 [00:00<00:00, 8525.48 it/sec]
INFO - 16:14:51:     66%|██████▋   | 665/1000 [00:00<00:00, 8524.02 it/sec]
INFO - 16:14:51:     67%|██████▋   | 666/1000 [00:00<00:00, 8524.49 it/sec]
INFO - 16:14:51:     67%|██████▋   | 667/1000 [00:00<00:00, 8525.35 it/sec]
INFO - 16:14:51:     67%|██████▋   | 668/1000 [00:00<00:00, 8526.51 it/sec]
INFO - 16:14:51:     67%|██████▋   | 669/1000 [00:00<00:00, 8527.21 it/sec]
INFO - 16:14:51:     67%|██████▋   | 670/1000 [00:00<00:00, 8528.14 it/sec]
INFO - 16:14:51:     67%|██████▋   | 671/1000 [00:00<00:00, 8528.50 it/sec]
INFO - 16:14:51:     67%|██████▋   | 672/1000 [00:00<00:00, 8529.37 it/sec]
INFO - 16:14:51:     67%|██████▋   | 673/1000 [00:00<00:00, 8529.80 it/sec]
INFO - 16:14:51:     67%|██████▋   | 674/1000 [00:00<00:00, 8528.25 it/sec]
INFO - 16:14:51:     68%|██████▊   | 675/1000 [00:00<00:00, 8528.89 it/sec]
INFO - 16:14:51:     68%|██████▊   | 676/1000 [00:00<00:00, 8529.75 it/sec]
INFO - 16:14:51:     68%|██████▊   | 677/1000 [00:00<00:00, 8530.23 it/sec]
INFO - 16:14:51:     68%|██████▊   | 678/1000 [00:00<00:00, 8531.38 it/sec]
INFO - 16:14:51:     68%|██████▊   | 679/1000 [00:00<00:00, 8532.11 it/sec]
INFO - 16:14:51:     68%|██████▊   | 680/1000 [00:00<00:00, 8532.94 it/sec]
INFO - 16:14:51:     68%|██████▊   | 681/1000 [00:00<00:00, 8533.54 it/sec]
INFO - 16:14:51:     68%|██████▊   | 682/1000 [00:00<00:00, 8534.67 it/sec]
INFO - 16:14:51:     68%|██████▊   | 683/1000 [00:00<00:00, 8531.89 it/sec]
INFO - 16:14:51:     68%|██████▊   | 684/1000 [00:00<00:00, 8532.28 it/sec]
INFO - 16:14:51:     68%|██████▊   | 685/1000 [00:00<00:00, 8532.93 it/sec]
INFO - 16:14:51:     69%|██████▊   | 686/1000 [00:00<00:00, 8533.91 it/sec]
INFO - 16:14:51:     69%|██████▊   | 687/1000 [00:00<00:00, 8535.01 it/sec]
INFO - 16:14:51:     69%|██████▉   | 688/1000 [00:00<00:00, 8535.67 it/sec]
INFO - 16:14:51:     69%|██████▉   | 689/1000 [00:00<00:00, 8536.42 it/sec]
INFO - 16:14:51:     69%|██████▉   | 690/1000 [00:00<00:00, 8536.98 it/sec]
INFO - 16:14:51:     69%|██████▉   | 691/1000 [00:00<00:00, 8536.53 it/sec]
INFO - 16:14:51:     69%|██████▉   | 692/1000 [00:00<00:00, 8536.24 it/sec]
INFO - 16:14:51:     69%|██████▉   | 693/1000 [00:00<00:00, 8536.65 it/sec]
INFO - 16:14:51:     69%|██████▉   | 694/1000 [00:00<00:00, 8537.69 it/sec]
INFO - 16:14:51:     70%|██████▉   | 695/1000 [00:00<00:00, 8538.79 it/sec]
INFO - 16:14:51:     70%|██████▉   | 696/1000 [00:00<00:00, 8538.65 it/sec]
INFO - 16:14:51:     70%|██████▉   | 697/1000 [00:00<00:00, 8539.25 it/sec]
INFO - 16:14:51:     70%|██████▉   | 698/1000 [00:00<00:00, 8540.23 it/sec]
INFO - 16:14:51:     70%|██████▉   | 699/1000 [00:00<00:00, 8541.52 it/sec]
INFO - 16:14:51:     70%|███████   | 700/1000 [00:00<00:00, 8540.88 it/sec]
INFO - 16:14:51:     70%|███████   | 701/1000 [00:00<00:00, 8540.86 it/sec]
INFO - 16:14:51:     70%|███████   | 702/1000 [00:00<00:00, 8541.73 it/sec]
INFO - 16:14:51:     70%|███████   | 703/1000 [00:00<00:00, 8542.57 it/sec]
INFO - 16:14:51:     70%|███████   | 704/1000 [00:00<00:00, 8543.53 it/sec]
INFO - 16:14:51:     70%|███████   | 705/1000 [00:00<00:00, 8544.05 it/sec]
INFO - 16:14:51:     71%|███████   | 706/1000 [00:00<00:00, 8544.96 it/sec]
INFO - 16:14:51:     71%|███████   | 707/1000 [00:00<00:00, 8545.47 it/sec]
INFO - 16:14:51:     71%|███████   | 708/1000 [00:00<00:00, 8546.38 it/sec]
INFO - 16:14:51:     71%|███████   | 709/1000 [00:00<00:00, 8545.19 it/sec]
INFO - 16:14:51:     71%|███████   | 710/1000 [00:00<00:00, 8544.99 it/sec]
INFO - 16:14:51:     71%|███████   | 711/1000 [00:00<00:00, 8545.48 it/sec]
INFO - 16:14:51:     71%|███████   | 712/1000 [00:00<00:00, 8545.50 it/sec]
INFO - 16:14:51:     71%|███████▏  | 713/1000 [00:00<00:00, 8546.11 it/sec]
INFO - 16:14:51:     71%|███████▏  | 714/1000 [00:00<00:00, 8546.20 it/sec]
INFO - 16:14:51:     72%|███████▏  | 715/1000 [00:00<00:00, 8546.87 it/sec]
INFO - 16:14:51:     72%|███████▏  | 716/1000 [00:00<00:00, 8547.43 it/sec]
INFO - 16:14:51:     72%|███████▏  | 717/1000 [00:00<00:00, 8547.81 it/sec]
INFO - 16:14:51:     72%|███████▏  | 718/1000 [00:00<00:00, 8546.52 it/sec]
INFO - 16:14:51:     72%|███████▏  | 719/1000 [00:00<00:00, 8546.99 it/sec]
INFO - 16:14:51:     72%|███████▏  | 720/1000 [00:00<00:00, 8547.76 it/sec]
INFO - 16:14:51:     72%|███████▏  | 721/1000 [00:00<00:00, 8548.17 it/sec]
INFO - 16:14:51:     72%|███████▏  | 722/1000 [00:00<00:00, 8535.70 it/sec]
INFO - 16:14:51:     72%|███████▏  | 723/1000 [00:00<00:00, 8535.78 it/sec]
INFO - 16:14:51:     72%|███████▏  | 724/1000 [00:00<00:00, 8535.96 it/sec]
INFO - 16:14:51:     72%|███████▎  | 725/1000 [00:00<00:00, 8536.40 it/sec]
INFO - 16:14:51:     73%|███████▎  | 726/1000 [00:00<00:00, 8534.28 it/sec]
INFO - 16:14:51:     73%|███████▎  | 727/1000 [00:00<00:00, 8534.82 it/sec]
INFO - 16:14:51:     73%|███████▎  | 728/1000 [00:00<00:00, 8535.66 it/sec]
INFO - 16:14:51:     73%|███████▎  | 729/1000 [00:00<00:00, 8535.26 it/sec]
INFO - 16:14:51:     73%|███████▎  | 730/1000 [00:00<00:00, 8535.58 it/sec]
INFO - 16:14:51:     73%|███████▎  | 731/1000 [00:00<00:00, 8535.88 it/sec]
INFO - 16:14:51:     73%|███████▎  | 732/1000 [00:00<00:00, 8536.24 it/sec]
INFO - 16:14:51:     73%|███████▎  | 733/1000 [00:00<00:00, 8536.80 it/sec]
INFO - 16:14:51:     73%|███████▎  | 734/1000 [00:00<00:00, 8535.57 it/sec]
INFO - 16:14:51:     74%|███████▎  | 735/1000 [00:00<00:00, 8535.42 it/sec]
INFO - 16:14:51:     74%|███████▎  | 736/1000 [00:00<00:00, 8535.59 it/sec]
INFO - 16:14:51:     74%|███████▎  | 737/1000 [00:00<00:00, 8536.07 it/sec]
INFO - 16:14:51:     74%|███████▍  | 738/1000 [00:00<00:00, 8536.90 it/sec]
INFO - 16:14:51:     74%|███████▍  | 739/1000 [00:00<00:00, 8537.19 it/sec]
INFO - 16:14:51:     74%|███████▍  | 740/1000 [00:00<00:00, 8537.93 it/sec]
INFO - 16:14:51:     74%|███████▍  | 741/1000 [00:00<00:00, 8538.24 it/sec]
INFO - 16:14:51:     74%|███████▍  | 742/1000 [00:00<00:00, 8539.21 it/sec]
INFO - 16:14:51:     74%|███████▍  | 743/1000 [00:00<00:00, 8537.48 it/sec]
INFO - 16:14:51:     74%|███████▍  | 744/1000 [00:00<00:00, 8538.02 it/sec]
INFO - 16:14:51:     74%|███████▍  | 745/1000 [00:00<00:00, 8538.36 it/sec]
INFO - 16:14:51:     75%|███████▍  | 746/1000 [00:00<00:00, 8539.11 it/sec]
INFO - 16:14:51:     75%|███████▍  | 747/1000 [00:00<00:00, 8539.44 it/sec]
INFO - 16:14:51:     75%|███████▍  | 748/1000 [00:00<00:00, 8540.09 it/sec]
INFO - 16:14:51:     75%|███████▍  | 749/1000 [00:00<00:00, 8540.28 it/sec]
INFO - 16:14:51:     75%|███████▌  | 750/1000 [00:00<00:00, 8540.93 it/sec]
INFO - 16:14:51:     75%|███████▌  | 751/1000 [00:00<00:00, 8541.33 it/sec]
INFO - 16:14:51:     75%|███████▌  | 752/1000 [00:00<00:00, 8539.69 it/sec]
INFO - 16:14:51:     75%|███████▌  | 753/1000 [00:00<00:00, 8539.07 it/sec]
INFO - 16:14:51:     75%|███████▌  | 754/1000 [00:00<00:00, 8539.51 it/sec]
INFO - 16:14:51:     76%|███████▌  | 755/1000 [00:00<00:00, 8539.65 it/sec]
INFO - 16:14:51:     76%|███████▌  | 756/1000 [00:00<00:00, 8540.14 it/sec]
INFO - 16:14:51:     76%|███████▌  | 757/1000 [00:00<00:00, 8540.79 it/sec]
INFO - 16:14:51:     76%|███████▌  | 758/1000 [00:00<00:00, 8541.25 it/sec]
INFO - 16:14:51:     76%|███████▌  | 759/1000 [00:00<00:00, 8541.59 it/sec]
INFO - 16:14:51:     76%|███████▌  | 760/1000 [00:00<00:00, 8540.20 it/sec]
INFO - 16:14:51:     76%|███████▌  | 761/1000 [00:00<00:00, 8540.15 it/sec]
INFO - 16:14:51:     76%|███████▌  | 762/1000 [00:00<00:00, 8540.73 it/sec]
INFO - 16:14:51:     76%|███████▋  | 763/1000 [00:00<00:00, 8541.50 it/sec]
INFO - 16:14:51:     76%|███████▋  | 764/1000 [00:00<00:00, 8541.39 it/sec]
INFO - 16:14:51:     76%|███████▋  | 765/1000 [00:00<00:00, 8541.64 it/sec]
INFO - 16:14:51:     77%|███████▋  | 766/1000 [00:00<00:00, 8541.60 it/sec]
INFO - 16:14:51:     77%|███████▋  | 767/1000 [00:00<00:00, 8541.67 it/sec]
INFO - 16:14:51:     77%|███████▋  | 768/1000 [00:00<00:00, 8542.51 it/sec]
INFO - 16:14:51:     77%|███████▋  | 769/1000 [00:00<00:00, 8540.97 it/sec]
INFO - 16:14:51:     77%|███████▋  | 770/1000 [00:00<00:00, 8540.95 it/sec]
INFO - 16:14:51:     77%|███████▋  | 771/1000 [00:00<00:00, 8541.33 it/sec]
INFO - 16:14:51:     77%|███████▋  | 772/1000 [00:00<00:00, 8541.83 it/sec]
INFO - 16:14:51:     77%|███████▋  | 773/1000 [00:00<00:00, 8542.69 it/sec]
INFO - 16:14:51:     77%|███████▋  | 774/1000 [00:00<00:00, 8543.40 it/sec]
INFO - 16:14:51:     78%|███████▊  | 775/1000 [00:00<00:00, 8543.58 it/sec]
INFO - 16:14:51:     78%|███████▊  | 776/1000 [00:00<00:00, 8544.07 it/sec]
INFO - 16:14:51:     78%|███████▊  | 777/1000 [00:00<00:00, 8542.93 it/sec]
INFO - 16:14:51:     78%|███████▊  | 778/1000 [00:00<00:00, 8542.93 it/sec]
INFO - 16:14:51:     78%|███████▊  | 779/1000 [00:00<00:00, 8543.53 it/sec]
INFO - 16:14:51:     78%|███████▊  | 780/1000 [00:00<00:00, 8544.22 it/sec]
INFO - 16:14:51:     78%|███████▊  | 781/1000 [00:00<00:00, 8544.58 it/sec]
INFO - 16:14:51:     78%|███████▊  | 782/1000 [00:00<00:00, 8545.40 it/sec]
INFO - 16:14:51:     78%|███████▊  | 783/1000 [00:00<00:00, 8546.04 it/sec]
INFO - 16:14:51:     78%|███████▊  | 784/1000 [00:00<00:00, 8546.88 it/sec]
INFO - 16:14:51:     78%|███████▊  | 785/1000 [00:00<00:00, 8547.49 it/sec]
INFO - 16:14:51:     79%|███████▊  | 786/1000 [00:00<00:00, 8546.67 it/sec]
INFO - 16:14:51:     79%|███████▊  | 787/1000 [00:00<00:00, 8546.48 it/sec]
INFO - 16:14:51:     79%|███████▉  | 788/1000 [00:00<00:00, 8546.26 it/sec]
INFO - 16:14:51:     79%|███████▉  | 789/1000 [00:00<00:00, 8546.76 it/sec]
INFO - 16:14:51:     79%|███████▉  | 790/1000 [00:00<00:00, 8547.46 it/sec]
INFO - 16:14:51:     79%|███████▉  | 791/1000 [00:00<00:00, 8547.83 it/sec]
INFO - 16:14:51:     79%|███████▉  | 792/1000 [00:00<00:00, 8548.59 it/sec]
INFO - 16:14:51:     79%|███████▉  | 793/1000 [00:00<00:00, 8549.02 it/sec]
INFO - 16:14:51:     79%|███████▉  | 794/1000 [00:00<00:00, 8549.78 it/sec]
INFO - 16:14:51:     80%|███████▉  | 795/1000 [00:00<00:00, 8548.66 it/sec]
INFO - 16:14:51:     80%|███████▉  | 796/1000 [00:00<00:00, 8548.98 it/sec]
INFO - 16:14:51:     80%|███████▉  | 797/1000 [00:00<00:00, 8549.51 it/sec]
INFO - 16:14:51:     80%|███████▉  | 798/1000 [00:00<00:00, 8549.92 it/sec]
INFO - 16:14:51:     80%|███████▉  | 799/1000 [00:00<00:00, 8549.72 it/sec]
INFO - 16:14:51:     80%|████████  | 800/1000 [00:00<00:00, 8550.47 it/sec]
INFO - 16:14:51:     80%|████████  | 801/1000 [00:00<00:00, 8551.11 it/sec]
INFO - 16:14:51:     80%|████████  | 802/1000 [00:00<00:00, 8551.64 it/sec]
INFO - 16:14:51:     80%|████████  | 803/1000 [00:00<00:00, 8552.59 it/sec]
INFO - 16:14:51:     80%|████████  | 804/1000 [00:00<00:00, 8551.38 it/sec]
INFO - 16:14:51:     80%|████████  | 805/1000 [00:00<00:00, 8551.65 it/sec]
INFO - 16:14:51:     81%|████████  | 806/1000 [00:00<00:00, 8551.88 it/sec]
INFO - 16:14:51:     81%|████████  | 807/1000 [00:00<00:00, 8552.67 it/sec]
INFO - 16:14:51:     81%|████████  | 808/1000 [00:00<00:00, 8553.54 it/sec]
INFO - 16:14:51:     81%|████████  | 809/1000 [00:00<00:00, 8553.85 it/sec]
INFO - 16:14:51:     81%|████████  | 810/1000 [00:00<00:00, 8553.75 it/sec]
INFO - 16:14:51:     81%|████████  | 811/1000 [00:00<00:00, 8554.14 it/sec]
INFO - 16:14:51:     81%|████████  | 812/1000 [00:00<00:00, 8554.30 it/sec]
INFO - 16:14:51:     81%|████████▏ | 813/1000 [00:00<00:00, 8552.53 it/sec]
INFO - 16:14:51:     81%|████████▏ | 814/1000 [00:00<00:00, 8552.84 it/sec]
INFO - 16:14:51:     82%|████████▏ | 815/1000 [00:00<00:00, 8553.21 it/sec]
INFO - 16:14:51:     82%|████████▏ | 816/1000 [00:00<00:00, 8553.77 it/sec]
INFO - 16:14:51:     82%|████████▏ | 817/1000 [00:00<00:00, 8553.97 it/sec]
INFO - 16:14:51:     82%|████████▏ | 818/1000 [00:00<00:00, 8554.47 it/sec]
INFO - 16:14:51:     82%|████████▏ | 819/1000 [00:00<00:00, 8554.86 it/sec]
INFO - 16:14:51:     82%|████████▏ | 820/1000 [00:00<00:00, 8555.12 it/sec]
INFO - 16:14:51:     82%|████████▏ | 821/1000 [00:00<00:00, 8554.04 it/sec]
INFO - 16:14:51:     82%|████████▏ | 822/1000 [00:00<00:00, 8553.94 it/sec]
INFO - 16:14:51:     82%|████████▏ | 823/1000 [00:00<00:00, 8554.12 it/sec]
INFO - 16:14:51:     82%|████████▏ | 824/1000 [00:00<00:00, 8554.63 it/sec]
INFO - 16:14:51:     82%|████████▎ | 825/1000 [00:00<00:00, 8555.08 it/sec]
INFO - 16:14:51:     83%|████████▎ | 826/1000 [00:00<00:00, 8555.77 it/sec]
INFO - 16:14:51:     83%|████████▎ | 827/1000 [00:00<00:00, 8555.90 it/sec]
INFO - 16:14:51:     83%|████████▎ | 828/1000 [00:00<00:00, 8556.37 it/sec]
INFO - 16:14:51:     83%|████████▎ | 829/1000 [00:00<00:00, 8556.90 it/sec]
INFO - 16:14:51:     83%|████████▎ | 830/1000 [00:00<00:00, 8555.60 it/sec]
INFO - 16:14:51:     83%|████████▎ | 831/1000 [00:00<00:00, 8555.56 it/sec]
INFO - 16:14:51:     83%|████████▎ | 832/1000 [00:00<00:00, 8556.09 it/sec]
INFO - 16:14:51:     83%|████████▎ | 833/1000 [00:00<00:00, 8556.26 it/sec]
INFO - 16:14:51:     83%|████████▎ | 834/1000 [00:00<00:00, 8556.29 it/sec]
INFO - 16:14:51:     84%|████████▎ | 835/1000 [00:00<00:00, 8556.48 it/sec]
INFO - 16:14:51:     84%|████████▎ | 836/1000 [00:00<00:00, 8557.07 it/sec]
INFO - 16:14:51:     84%|████████▎ | 837/1000 [00:00<00:00, 8557.45 it/sec]
INFO - 16:14:51:     84%|████████▍ | 838/1000 [00:00<00:00, 8558.28 it/sec]
INFO - 16:14:51:     84%|████████▍ | 839/1000 [00:00<00:00, 8556.95 it/sec]
INFO - 16:14:51:     84%|████████▍ | 840/1000 [00:00<00:00, 8557.58 it/sec]
INFO - 16:14:51:     84%|████████▍ | 841/1000 [00:00<00:00, 8558.43 it/sec]
INFO - 16:14:51:     84%|████████▍ | 842/1000 [00:00<00:00, 8559.24 it/sec]
INFO - 16:14:51:     84%|████████▍ | 843/1000 [00:00<00:00, 8559.85 it/sec]
INFO - 16:14:51:     84%|████████▍ | 844/1000 [00:00<00:00, 8560.24 it/sec]
INFO - 16:14:51:     84%|████████▍ | 845/1000 [00:00<00:00, 8560.90 it/sec]
INFO - 16:14:51:     85%|████████▍ | 846/1000 [00:00<00:00, 8561.15 it/sec]
INFO - 16:14:51:     85%|████████▍ | 847/1000 [00:00<00:00, 8559.93 it/sec]
INFO - 16:14:51:     85%|████████▍ | 848/1000 [00:00<00:00, 8559.58 it/sec]
INFO - 16:14:51:     85%|████████▍ | 849/1000 [00:00<00:00, 8560.03 it/sec]
INFO - 16:14:51:     85%|████████▌ | 850/1000 [00:00<00:00, 8560.44 it/sec]
INFO - 16:14:51:     85%|████████▌ | 851/1000 [00:00<00:00, 8560.54 it/sec]
INFO - 16:14:51:     85%|████████▌ | 852/1000 [00:00<00:00, 8560.71 it/sec]
INFO - 16:14:51:     85%|████████▌ | 853/1000 [00:00<00:00, 8561.42 it/sec]
INFO - 16:14:51:     85%|████████▌ | 854/1000 [00:00<00:00, 8562.14 it/sec]
INFO - 16:14:51:     86%|████████▌ | 855/1000 [00:00<00:00, 8562.77 it/sec]
INFO - 16:14:51:     86%|████████▌ | 856/1000 [00:00<00:00, 8561.82 it/sec]
INFO - 16:14:51:     86%|████████▌ | 857/1000 [00:00<00:00, 8561.72 it/sec]
INFO - 16:14:51:     86%|████████▌ | 858/1000 [00:00<00:00, 8562.37 it/sec]
INFO - 16:14:51:     86%|████████▌ | 859/1000 [00:00<00:00, 8563.08 it/sec]
INFO - 16:14:51:     86%|████████▌ | 860/1000 [00:00<00:00, 8563.30 it/sec]
INFO - 16:14:51:     86%|████████▌ | 861/1000 [00:00<00:00, 8563.95 it/sec]
INFO - 16:14:51:     86%|████████▌ | 862/1000 [00:00<00:00, 8564.67 it/sec]
INFO - 16:14:51:     86%|████████▋ | 863/1000 [00:00<00:00, 8565.48 it/sec]
INFO - 16:14:51:     86%|████████▋ | 864/1000 [00:00<00:00, 8565.77 it/sec]
INFO - 16:14:51:     86%|████████▋ | 865/1000 [00:00<00:00, 8563.97 it/sec]
INFO - 16:14:51:     87%|████████▋ | 866/1000 [00:00<00:00, 8564.14 it/sec]
INFO - 16:14:51:     87%|████████▋ | 867/1000 [00:00<00:00, 8563.96 it/sec]
INFO - 16:14:51:     87%|████████▋ | 868/1000 [00:00<00:00, 8564.03 it/sec]
INFO - 16:14:51:     87%|████████▋ | 869/1000 [00:00<00:00, 8563.85 it/sec]
INFO - 16:14:51:     87%|████████▋ | 870/1000 [00:00<00:00, 8564.47 it/sec]
INFO - 16:14:51:     87%|████████▋ | 871/1000 [00:00<00:00, 8554.05 it/sec]
INFO - 16:14:51:     87%|████████▋ | 872/1000 [00:00<00:00, 8552.02 it/sec]
INFO - 16:14:51:     87%|████████▋ | 873/1000 [00:00<00:00, 8551.25 it/sec]
INFO - 16:14:51:     87%|████████▋ | 874/1000 [00:00<00:00, 8550.88 it/sec]
INFO - 16:14:51:     88%|████████▊ | 875/1000 [00:00<00:00, 8551.07 it/sec]
INFO - 16:14:51:     88%|████████▊ | 876/1000 [00:00<00:00, 8551.40 it/sec]
INFO - 16:14:51:     88%|████████▊ | 877/1000 [00:00<00:00, 8551.84 it/sec]
INFO - 16:14:51:     88%|████████▊ | 878/1000 [00:00<00:00, 8552.33 it/sec]
INFO - 16:14:51:     88%|████████▊ | 879/1000 [00:00<00:00, 8552.87 it/sec]
INFO - 16:14:51:     88%|████████▊ | 880/1000 [00:00<00:00, 8553.46 it/sec]
INFO - 16:14:51:     88%|████████▊ | 881/1000 [00:00<00:00, 8551.54 it/sec]
INFO - 16:14:51:     88%|████████▊ | 882/1000 [00:00<00:00, 8551.22 it/sec]
INFO - 16:14:51:     88%|████████▊ | 883/1000 [00:00<00:00, 8550.93 it/sec]
INFO - 16:14:51:     88%|████████▊ | 884/1000 [00:00<00:00, 8551.14 it/sec]
INFO - 16:14:51:     88%|████████▊ | 885/1000 [00:00<00:00, 8551.64 it/sec]
INFO - 16:14:51:     89%|████████▊ | 886/1000 [00:00<00:00, 8552.02 it/sec]
INFO - 16:14:51:     89%|████████▊ | 887/1000 [00:00<00:00, 8552.66 it/sec]
INFO - 16:14:51:     89%|████████▉ | 888/1000 [00:00<00:00, 8553.28 it/sec]
INFO - 16:14:51:     89%|████████▉ | 889/1000 [00:00<00:00, 8552.38 it/sec]
INFO - 16:14:51:     89%|████████▉ | 890/1000 [00:00<00:00, 8551.82 it/sec]
INFO - 16:14:51:     89%|████████▉ | 891/1000 [00:00<00:00, 8552.26 it/sec]
INFO - 16:14:51:     89%|████████▉ | 892/1000 [00:00<00:00, 8553.01 it/sec]
INFO - 16:14:51:     89%|████████▉ | 893/1000 [00:00<00:00, 8553.20 it/sec]
INFO - 16:14:51:     89%|████████▉ | 894/1000 [00:00<00:00, 8553.59 it/sec]
INFO - 16:14:51:     90%|████████▉ | 895/1000 [00:00<00:00, 8553.84 it/sec]
INFO - 16:14:51:     90%|████████▉ | 896/1000 [00:00<00:00, 8554.23 it/sec]
INFO - 16:14:51:     90%|████████▉ | 897/1000 [00:00<00:00, 8554.63 it/sec]
INFO - 16:14:51:     90%|████████▉ | 898/1000 [00:00<00:00, 8553.47 it/sec]
INFO - 16:14:51:     90%|████████▉ | 899/1000 [00:00<00:00, 8553.32 it/sec]
INFO - 16:14:51:     90%|█████████ | 900/1000 [00:00<00:00, 8553.56 it/sec]
INFO - 16:14:51:     90%|█████████ | 901/1000 [00:00<00:00, 8553.88 it/sec]
INFO - 16:14:51:     90%|█████████ | 902/1000 [00:00<00:00, 8553.59 it/sec]
INFO - 16:14:51:     90%|█████████ | 903/1000 [00:00<00:00, 8553.52 it/sec]
INFO - 16:14:51:     90%|█████████ | 904/1000 [00:00<00:00, 8554.03 it/sec]
INFO - 16:14:51:     90%|█████████ | 905/1000 [00:00<00:00, 8554.65 it/sec]
INFO - 16:14:51:     91%|█████████ | 906/1000 [00:00<00:00, 8555.33 it/sec]
INFO - 16:14:51:     91%|█████████ | 907/1000 [00:00<00:00, 8554.03 it/sec]
INFO - 16:14:51:     91%|█████████ | 908/1000 [00:00<00:00, 8554.09 it/sec]
INFO - 16:14:51:     91%|█████████ | 909/1000 [00:00<00:00, 8554.64 it/sec]
INFO - 16:14:51:     91%|█████████ | 910/1000 [00:00<00:00, 8555.30 it/sec]
INFO - 16:14:51:     91%|█████████ | 911/1000 [00:00<00:00, 8555.42 it/sec]
INFO - 16:14:51:     91%|█████████ | 912/1000 [00:00<00:00, 8555.88 it/sec]
INFO - 16:14:51:     91%|█████████▏| 913/1000 [00:00<00:00, 8556.28 it/sec]
INFO - 16:14:51:     91%|█████████▏| 914/1000 [00:00<00:00, 8556.58 it/sec]
INFO - 16:14:51:     92%|█████████▏| 915/1000 [00:00<00:00, 8555.34 it/sec]
INFO - 16:14:51:     92%|█████████▏| 916/1000 [00:00<00:00, 8554.73 it/sec]
INFO - 16:14:51:     92%|█████████▏| 917/1000 [00:00<00:00, 8554.89 it/sec]
INFO - 16:14:51:     92%|█████████▏| 918/1000 [00:00<00:00, 8555.35 it/sec]
INFO - 16:14:51:     92%|█████████▏| 919/1000 [00:00<00:00, 8555.28 it/sec]
INFO - 16:14:51:     92%|█████████▏| 920/1000 [00:00<00:00, 8555.65 it/sec]
INFO - 16:14:51:     92%|█████████▏| 921/1000 [00:00<00:00, 8556.14 it/sec]
INFO - 16:14:51:     92%|█████████▏| 922/1000 [00:00<00:00, 8556.68 it/sec]
INFO - 16:14:51:     92%|█████████▏| 923/1000 [00:00<00:00, 8556.87 it/sec]
INFO - 16:14:51:     92%|█████████▏| 924/1000 [00:00<00:00, 8555.82 it/sec]
INFO - 16:14:51:     92%|█████████▎| 925/1000 [00:00<00:00, 8555.73 it/sec]
INFO - 16:14:51:     93%|█████████▎| 926/1000 [00:00<00:00, 8556.24 it/sec]
INFO - 16:14:51:     93%|█████████▎| 927/1000 [00:00<00:00, 8556.38 it/sec]
INFO - 16:14:51:     93%|█████████▎| 928/1000 [00:00<00:00, 8556.85 it/sec]
INFO - 16:14:51:     93%|█████████▎| 929/1000 [00:00<00:00, 8557.45 it/sec]
INFO - 16:14:51:     93%|█████████▎| 930/1000 [00:00<00:00, 8557.59 it/sec]
INFO - 16:14:51:     93%|█████████▎| 931/1000 [00:00<00:00, 8557.63 it/sec]
INFO - 16:14:51:     93%|█████████▎| 932/1000 [00:00<00:00, 8558.15 it/sec]
INFO - 16:14:51:     93%|█████████▎| 933/1000 [00:00<00:00, 8556.88 it/sec]
INFO - 16:14:51:     93%|█████████▎| 934/1000 [00:00<00:00, 8557.35 it/sec]
INFO - 16:14:51:     94%|█████████▎| 935/1000 [00:00<00:00, 8557.41 it/sec]
INFO - 16:14:51:     94%|█████████▎| 936/1000 [00:00<00:00, 8557.64 it/sec]
INFO - 16:14:51:     94%|█████████▎| 937/1000 [00:00<00:00, 8557.27 it/sec]
INFO - 16:14:51:     94%|█████████▍| 938/1000 [00:00<00:00, 8557.57 it/sec]
INFO - 16:14:51:     94%|█████████▍| 939/1000 [00:00<00:00, 8557.67 it/sec]
INFO - 16:14:51:     94%|█████████▍| 940/1000 [00:00<00:00, 8558.11 it/sec]
INFO - 16:14:51:     94%|█████████▍| 941/1000 [00:00<00:00, 8556.98 it/sec]
INFO - 16:14:51:     94%|█████████▍| 942/1000 [00:00<00:00, 8556.58 it/sec]
INFO - 16:14:51:     94%|█████████▍| 943/1000 [00:00<00:00, 8556.84 it/sec]
INFO - 16:14:51:     94%|█████████▍| 944/1000 [00:00<00:00, 8557.16 it/sec]
INFO - 16:14:51:     94%|█████████▍| 945/1000 [00:00<00:00, 8557.53 it/sec]
INFO - 16:14:51:     95%|█████████▍| 946/1000 [00:00<00:00, 8557.74 it/sec]
INFO - 16:14:51:     95%|█████████▍| 947/1000 [00:00<00:00, 8558.09 it/sec]
INFO - 16:14:51:     95%|█████████▍| 948/1000 [00:00<00:00, 8558.51 it/sec]
INFO - 16:14:51:     95%|█████████▍| 949/1000 [00:00<00:00, 8558.96 it/sec]
INFO - 16:14:51:     95%|█████████▌| 950/1000 [00:00<00:00, 8557.75 it/sec]
INFO - 16:14:51:     95%|█████████▌| 951/1000 [00:00<00:00, 8557.58 it/sec]
INFO - 16:14:51:     95%|█████████▌| 952/1000 [00:00<00:00, 8558.02 it/sec]
INFO - 16:14:51:     95%|█████████▌| 953/1000 [00:00<00:00, 8558.32 it/sec]
INFO - 16:14:51:     95%|█████████▌| 954/1000 [00:00<00:00, 8558.71 it/sec]
INFO - 16:14:51:     96%|█████████▌| 955/1000 [00:00<00:00, 8559.11 it/sec]
INFO - 16:14:51:     96%|█████████▌| 956/1000 [00:00<00:00, 8559.48 it/sec]
INFO - 16:14:51:     96%|█████████▌| 957/1000 [00:00<00:00, 8559.57 it/sec]
INFO - 16:14:51:     96%|█████████▌| 958/1000 [00:00<00:00, 8559.97 it/sec]
INFO - 16:14:51:     96%|█████████▌| 959/1000 [00:00<00:00, 8558.47 it/sec]
INFO - 16:14:51:     96%|█████████▌| 960/1000 [00:00<00:00, 8558.84 it/sec]
INFO - 16:14:51:     96%|█████████▌| 961/1000 [00:00<00:00, 8559.19 it/sec]
INFO - 16:14:51:     96%|█████████▌| 962/1000 [00:00<00:00, 8559.68 it/sec]
INFO - 16:14:51:     96%|█████████▋| 963/1000 [00:00<00:00, 8560.22 it/sec]
INFO - 16:14:51:     96%|█████████▋| 964/1000 [00:00<00:00, 8560.71 it/sec]
INFO - 16:14:51:     96%|█████████▋| 965/1000 [00:00<00:00, 8560.78 it/sec]
INFO - 16:14:51:     97%|█████████▋| 966/1000 [00:00<00:00, 8561.31 it/sec]
INFO - 16:14:51:     97%|█████████▋| 967/1000 [00:00<00:00, 8560.62 it/sec]
INFO - 16:14:51:     97%|█████████▋| 968/1000 [00:00<00:00, 8560.47 it/sec]
INFO - 16:14:51:     97%|█████████▋| 969/1000 [00:00<00:00, 8560.54 it/sec]
INFO - 16:14:51:     97%|█████████▋| 970/1000 [00:00<00:00, 8561.03 it/sec]
INFO - 16:14:51:     97%|█████████▋| 971/1000 [00:00<00:00, 8561.17 it/sec]
INFO - 16:14:51:     97%|█████████▋| 972/1000 [00:00<00:00, 8561.46 it/sec]
INFO - 16:14:51:     97%|█████████▋| 973/1000 [00:00<00:00, 8561.87 it/sec]
INFO - 16:14:51:     97%|█████████▋| 974/1000 [00:00<00:00, 8562.30 it/sec]
INFO - 16:14:51:     98%|█████████▊| 975/1000 [00:00<00:00, 8562.89 it/sec]
INFO - 16:14:51:     98%|█████████▊| 976/1000 [00:00<00:00, 8561.83 it/sec]
INFO - 16:14:51:     98%|█████████▊| 977/1000 [00:00<00:00, 8561.88 it/sec]
INFO - 16:14:51:     98%|█████████▊| 978/1000 [00:00<00:00, 8562.20 it/sec]
INFO - 16:14:51:     98%|█████████▊| 979/1000 [00:00<00:00, 8562.59 it/sec]
INFO - 16:14:51:     98%|█████████▊| 980/1000 [00:00<00:00, 8562.73 it/sec]
INFO - 16:14:51:     98%|█████████▊| 981/1000 [00:00<00:00, 8563.24 it/sec]
INFO - 16:14:51:     98%|█████████▊| 982/1000 [00:00<00:00, 8563.79 it/sec]
INFO - 16:14:51:     98%|█████████▊| 983/1000 [00:00<00:00, 8564.21 it/sec]
INFO - 16:14:51:     98%|█████████▊| 984/1000 [00:00<00:00, 8564.71 it/sec]
INFO - 16:14:51:     98%|█████████▊| 985/1000 [00:00<00:00, 8563.51 it/sec]
INFO - 16:14:51:     99%|█████████▊| 986/1000 [00:00<00:00, 8563.74 it/sec]
INFO - 16:14:51:     99%|█████████▊| 987/1000 [00:00<00:00, 8564.25 it/sec]
INFO - 16:14:51:     99%|█████████▉| 988/1000 [00:00<00:00, 8564.47 it/sec]
INFO - 16:14:51:     99%|█████████▉| 989/1000 [00:00<00:00, 8564.79 it/sec]
INFO - 16:14:51:     99%|█████████▉| 990/1000 [00:00<00:00, 8565.26 it/sec]
INFO - 16:14:51:     99%|█████████▉| 991/1000 [00:00<00:00, 8565.66 it/sec]
INFO - 16:14:51:     99%|█████████▉| 992/1000 [00:00<00:00, 8566.13 it/sec]
INFO - 16:14:51:     99%|█████████▉| 993/1000 [00:00<00:00, 8566.60 it/sec]
INFO - 16:14:51:     99%|█████████▉| 994/1000 [00:00<00:00, 8565.27 it/sec]
INFO - 16:14:51:    100%|█████████▉| 995/1000 [00:00<00:00, 8565.76 it/sec]
INFO - 16:14:51:    100%|█████████▉| 996/1000 [00:00<00:00, 8566.09 it/sec]
INFO - 16:14:51:    100%|█████████▉| 997/1000 [00:00<00:00, 8566.68 it/sec]
INFO - 16:14:51:    100%|█████████▉| 998/1000 [00:00<00:00, 8567.25 it/sec]
INFO - 16:14:51:    100%|█████████▉| 999/1000 [00:00<00:00, 8567.80 it/sec]
INFO - 16:14:51:    100%|██████████| 1000/1000 [00:00<00:00, 8567.69 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:14:51: Evaluation problem:
INFO - 16:14:51:    Evaluate the functions: area
INFO - 16:14:51:    over the design space:
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | length |      0      |  None |      10     | float |
INFO - 16:14:51:       | width  |      0      |  None |      10     | float |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51: 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:14:51: *** Start MDOScenario execution ***
INFO - 16:14:51: MDOScenario
INFO - 16:14:51:    Disciplines: AreaDiscipline AreaIncreaser
INFO - 16:14:51:    MDO formulation: DisciplinaryOpt
INFO - 16:14:51: Optimization problem:
INFO - 16:14:51:    minimize final_area(length, width)
INFO - 16:14:51:    with respect to length, width
INFO - 16:14:51:    over the design space:
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | Name   | Lower bound | Value | Upper bound | Type  |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51:       | length |      0      |  None |      10     | float |
INFO - 16:14:51:       | width  |      0      |  None |      10     | float |
INFO - 16:14:51:       +--------+-------------+-------+-------------+-------+
INFO - 16:14:51: Solving optimization problem with algorithm MC:
INFO - 16:14:51: Optimization result:
INFO - 16:14:51:    Optimizer info:
INFO - 16:14:51:       Status: None
INFO - 16:14:51:       Message: None
INFO - 16:14:51:    Solution:
INFO - 16:14:51:       Objective: 0.006453354446785439
INFO - 16:14:51:       Design space:
INFO - 16:14:51:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:14:51:          | Name   | Lower bound |        Value         | Upper bound | Type  |
INFO - 16:14:51:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:14:51:          | length |      0      |  3.359702633489273   |      10     | float |
INFO - 16:14:51:          | width  |      0      | 0.000960405599956804 |      10     | float |
INFO - 16:14:51:          +--------+-------------+----------------------+-------------+-------+
INFO - 16:14:51: *** End MDOScenario execution ***

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

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

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

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

MDF formulation#

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

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

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

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

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

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

    return scenario.to_dataset(), timer.elapsed_time

solve it with both sampling modes:

samples_ref, time_ref = solve_sellar(False, False)
samples, time = solve_sellar(True, False)
   INFO - 16:14:52: *** Start MDOScenario execution ***
   INFO - 16:14:52: MDOScenario
   INFO - 16:14:52:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:14:52:    MDO formulation: MDF
   INFO - 16:14:52: Optimization problem:
   INFO - 16:14:52:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:14:52:    with respect to x_1, x_2, x_shared
   INFO - 16:14:52:    under the equality constraints
   INFO - 16:14:52:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:    over the design space:
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:14:52:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52: Solving optimization problem with algorithm MC:
   INFO - 16:14:52:      1%|          | 1/100 [00:00<00:00, 106.03 it/sec, feas=False, obj=191]
   INFO - 16:14:52:      2%|▏         | 2/100 [00:00<00:00, 156.39 it/sec, feas=False, obj=79.2]
   INFO - 16:14:52:      3%|▎         | 3/100 [00:00<00:00, 184.24 it/sec, feas=False, obj=69.1]
   INFO - 16:14:52:      4%|▍         | 4/100 [00:00<00:00, 203.72 it/sec, feas=False, obj=112]
   INFO - 16:14:52:      5%|▌         | 5/100 [00:00<00:00, 219.25 it/sec, feas=False, obj=62.9]
   INFO - 16:14:52:      6%|▌         | 6/100 [00:00<00:00, 231.56 it/sec, feas=False, obj=89.3]
   INFO - 16:14:52:      7%|▋         | 7/100 [00:00<00:00, 243.56 it/sec, feas=False, obj=162]
   INFO - 16:14:52:      8%|▊         | 8/100 [00:00<00:00, 249.05 it/sec, feas=False, obj=591]
   INFO - 16:14:52:      9%|▉         | 9/100 [00:00<00:00, 255.03 it/sec, feas=False, obj=127]
   INFO - 16:14:52:     10%|█         | 10/100 [00:00<00:00, 259.16 it/sec, feas=False, obj=80.9]
   INFO - 16:14:52:     11%|█         | 11/100 [00:00<00:00, 265.76 it/sec, feas=False, obj=131]
   INFO - 16:14:52:     12%|█▏        | 12/100 [00:00<00:00, 269.11 it/sec, feas=False, obj=119]
   INFO - 16:14:52:     13%|█▎        | 13/100 [00:00<00:00, 272.85 it/sec, feas=False, obj=98.4]
   INFO - 16:14:52:     14%|█▍        | 14/100 [00:00<00:00, 276.49 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:14:52:     15%|█▌        | 15/100 [00:00<00:00, 279.09 it/sec, feas=False, obj=220]
   INFO - 16:14:52:     16%|█▌        | 16/100 [00:00<00:00, 281.28 it/sec, feas=False, obj=30.3]
   INFO - 16:14:52:     17%|█▋        | 17/100 [00:00<00:00, 286.05 it/sec, feas=False, obj=130]
   INFO - 16:14:52:     18%|█▊        | 18/100 [00:00<00:00, 290.52 it/sec, feas=False, obj=274]
   INFO - 16:14:52:     19%|█▉        | 19/100 [00:00<00:00, 292.89 it/sec, feas=False, obj=111]
   INFO - 16:14:52:     20%|██        | 20/100 [00:00<00:00, 292.94 it/sec, feas=False, obj=194]
   INFO - 16:14:52:     21%|██        | 21/100 [00:00<00:00, 293.45 it/sec, feas=False, obj=87.1]
   INFO - 16:14:52:     22%|██▏       | 22/100 [00:00<00:00, 293.58 it/sec, feas=False, obj=121]
   INFO - 16:14:52:     23%|██▎       | 23/100 [00:00<00:00, 294.54 it/sec, feas=False, obj=44.7]
   INFO - 16:14:52:     24%|██▍       | 24/100 [00:00<00:00, 297.03 it/sec, feas=False, obj=49.7]
   INFO - 16:14:52:     25%|██▌       | 25/100 [00:00<00:00, 298.97 it/sec, feas=False, obj=62.2]
   INFO - 16:14:52:     26%|██▌       | 26/100 [00:00<00:00, 299.53 it/sec, feas=False, obj=131]
   INFO - 16:14:52:     27%|██▋       | 27/100 [00:00<00:00, 299.07 it/sec, feas=False, obj=89.7]
   INFO - 16:14:52:     28%|██▊       | 28/100 [00:00<00:00, 301.04 it/sec, feas=False, obj=142]
   INFO - 16:14:52:     29%|██▉       | 29/100 [00:00<00:00, 302.82 it/sec, feas=False, obj=85.4]
   INFO - 16:14:52:     30%|███       | 30/100 [00:00<00:00, 303.04 it/sec, feas=False, obj=54.1]
   INFO - 16:14:52:     31%|███       | 31/100 [00:00<00:00, 302.60 it/sec, feas=False, obj=138]
   INFO - 16:14:52:     32%|███▏      | 32/100 [00:00<00:00, 304.77 it/sec, feas=False, obj=107]
   INFO - 16:14:52:     33%|███▎      | 33/100 [00:00<00:00, 306.30 it/sec, feas=False, obj=45.6]
   INFO - 16:14:52:     34%|███▍      | 34/100 [00:00<00:00, 306.71 it/sec, feas=False, obj=211]
   INFO - 16:14:52:     35%|███▌      | 35/100 [00:00<00:00, 306.30 it/sec, feas=False, obj=149]
   INFO - 16:14:52:     36%|███▌      | 36/100 [00:00<00:00, 307.35 it/sec, feas=False, obj=89.2]
   INFO - 16:14:52:     37%|███▋      | 37/100 [00:00<00:00, 308.53 it/sec, feas=False, obj=125]
   INFO - 16:14:52:     38%|███▊      | 38/100 [00:00<00:00, 308.33 it/sec, feas=False, obj=125]
   INFO - 16:14:52:     39%|███▉      | 39/100 [00:00<00:00, 309.67 it/sec, feas=False, obj=156]
   INFO - 16:14:52:     40%|████      | 40/100 [00:00<00:00, 310.85 it/sec, feas=False, obj=65.3]
   INFO - 16:14:52:     41%|████      | 41/100 [00:00<00:00, 309.86 it/sec, feas=False, obj=134]
   INFO - 16:14:52:     42%|████▏     | 42/100 [00:00<00:00, 309.76 it/sec, feas=False, obj=63.5]
   INFO - 16:14:52:     43%|████▎     | 43/100 [00:00<00:00, 311.20 it/sec, feas=False, obj=137]
   INFO - 16:14:52:     44%|████▍     | 44/100 [00:00<00:00, 311.93 it/sec, feas=False, obj=77.2]
   INFO - 16:14:52:     45%|████▌     | 45/100 [00:00<00:00, 312.09 it/sec, feas=False, obj=116]
   INFO - 16:14:52:     46%|████▌     | 46/100 [00:00<00:00, 313.35 it/sec, feas=False, obj=134]
   INFO - 16:14:52:     47%|████▋     | 47/100 [00:00<00:00, 313.64 it/sec, feas=False, obj=110]
   INFO - 16:14:52:     48%|████▊     | 48/100 [00:00<00:00, 314.10 it/sec, feas=False, obj=165]
   INFO - 16:14:52:     49%|████▉     | 49/100 [00:00<00:00, 314.89 it/sec, feas=False, obj=189]
   INFO - 16:14:52:     50%|█████     | 50/100 [00:00<00:00, 315.74 it/sec, feas=False, obj=109]
   INFO - 16:14:52:     51%|█████     | 51/100 [00:00<00:00, 315.66 it/sec, feas=False, obj=95.5]
   INFO - 16:14:52:     52%|█████▏    | 52/100 [00:00<00:00, 316.39 it/sec, feas=False, obj=146]
   INFO - 16:14:52:     53%|█████▎    | 53/100 [00:00<00:00, 317.04 it/sec, feas=False, obj=165]
   INFO - 16:14:52:     54%|█████▍    | 54/100 [00:00<00:00, 318.10 it/sec, feas=False, obj=107]
   INFO - 16:14:52:     55%|█████▌    | 55/100 [00:00<00:00, 318.09 it/sec, feas=False, obj=25.3]
   INFO - 16:14:52:     56%|█████▌    | 56/100 [00:00<00:00, 318.83 it/sec, feas=False, obj=203]
   INFO - 16:14:52:     57%|█████▋    | 57/100 [00:00<00:00, 318.94 it/sec, feas=False, obj=305]
   INFO - 16:14:52:     58%|█████▊    | 58/100 [00:00<00:00, 319.71 it/sec, feas=False, obj=51.7]
   INFO - 16:14:52:     59%|█████▉    | 59/100 [00:00<00:00, 319.59 it/sec, feas=False, obj=212]
   INFO - 16:14:52:     60%|██████    | 60/100 [00:00<00:00, 320.27 it/sec, feas=False, obj=199]
   INFO - 16:14:52:     61%|██████    | 61/100 [00:00<00:00, 320.89 it/sec, feas=False, obj=93.1]
   INFO - 16:14:52:     62%|██████▏   | 62/100 [00:00<00:00, 321.62 it/sec, feas=False, obj=39.9]
   INFO - 16:14:52:     63%|██████▎   | 63/100 [00:00<00:00, 322.00 it/sec, feas=False, obj=112]
   INFO - 16:14:52:     64%|██████▍   | 64/100 [00:00<00:00, 322.89 it/sec, feas=False, obj=136]
   INFO - 16:14:52:     65%|██████▌   | 65/100 [00:00<00:00, 323.60 it/sec, feas=False, obj=40.7]
   INFO - 16:14:52:     66%|██████▌   | 66/100 [00:00<00:00, 322.74 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:14:52:     67%|██████▋   | 67/100 [00:00<00:00, 323.38 it/sec, feas=False, obj=160]
   INFO - 16:14:52:     68%|██████▊   | 68/100 [00:00<00:00, 323.97 it/sec, feas=False, obj=138]
   INFO - 16:14:52:     69%|██████▉   | 69/100 [00:00<00:00, 323.57 it/sec, feas=False, obj=899]
   INFO - 16:14:52:     70%|███████   | 70/100 [00:00<00:00, 324.08 it/sec, feas=False, obj=276]
   INFO - 16:14:52:     71%|███████   | 71/100 [00:00<00:00, 324.08 it/sec, feas=False, obj=44.1]
   INFO - 16:14:52:     72%|███████▏  | 72/100 [00:00<00:00, 323.57 it/sec, feas=False, obj=114]
   INFO - 16:14:52:     73%|███████▎  | 73/100 [00:00<00:00, 324.12 it/sec, feas=False, obj=596]
   INFO - 16:14:52:     74%|███████▍  | 74/100 [00:00<00:00, 323.63 it/sec, feas=False, obj=120]
   INFO - 16:14:52:     75%|███████▌  | 75/100 [00:00<00:00, 324.38 it/sec, feas=False, obj=407]
   INFO - 16:14:52:     76%|███████▌  | 76/100 [00:00<00:00, 323.97 it/sec, feas=False, obj=51.4]
   INFO - 16:14:52:     77%|███████▋  | 77/100 [00:00<00:00, 323.94 it/sec, feas=False, obj=148]
   INFO - 16:14:52:     78%|███████▊  | 78/100 [00:00<00:00, 324.03 it/sec, feas=False, obj=93.9]
   INFO - 16:14:52:     79%|███████▉  | 79/100 [00:00<00:00, 323.63 it/sec, feas=False, obj=72.1]
   INFO - 16:14:52:     80%|████████  | 80/100 [00:00<00:00, 323.95 it/sec, feas=False, obj=292]
   INFO - 16:14:52:     81%|████████  | 81/100 [00:00<00:00, 323.65 it/sec, feas=False, obj=98.6]
   INFO - 16:14:52:     82%|████████▏ | 82/100 [00:00<00:00, 323.58 it/sec, feas=False, obj=25]
   INFO - 16:14:52:     83%|████████▎ | 83/100 [00:00<00:00, 323.25 it/sec, feas=False, obj=33.1]
   INFO - 16:14:52:     84%|████████▍ | 84/100 [00:00<00:00, 323.19 it/sec, feas=False, obj=114]
   INFO - 16:14:52:     85%|████████▌ | 85/100 [00:00<00:00, 322.75 it/sec, feas=False, obj=115]
   INFO - 16:14:52:     86%|████████▌ | 86/100 [00:00<00:00, 323.04 it/sec, feas=False, obj=118]
   INFO - 16:14:52:     87%|████████▋ | 87/100 [00:00<00:00, 322.86 it/sec, feas=False, obj=67.1]
   INFO - 16:14:52:     88%|████████▊ | 88/100 [00:00<00:00, 323.31 it/sec, feas=False, obj=105]
   INFO - 16:14:52:     89%|████████▉ | 89/100 [00:00<00:00, 323.80 it/sec, feas=False, obj=92.6]
   INFO - 16:14:52:     90%|█████████ | 90/100 [00:00<00:00, 323.63 it/sec, feas=False, obj=98.1]
   INFO - 16:14:52:     91%|█████████ | 91/100 [00:00<00:00, 323.42 it/sec, feas=False, obj=133]
   INFO - 16:14:52:     92%|█████████▏| 92/100 [00:00<00:00, 323.89 it/sec, feas=False, obj=197]
   INFO - 16:14:52:     93%|█████████▎| 93/100 [00:00<00:00, 324.30 it/sec, feas=False, obj=82.6]
   INFO - 16:14:52:     94%|█████████▍| 94/100 [00:00<00:00, 323.54 it/sec, feas=False, obj=27.2]
   INFO - 16:14:52:     95%|█████████▌| 95/100 [00:00<00:00, 323.05 it/sec, feas=False, obj=126]
   INFO - 16:14:52:     96%|█████████▌| 96/100 [00:00<00:00, 322.86 it/sec, feas=False, obj=162]
   INFO - 16:14:52:     97%|█████████▋| 97/100 [00:00<00:00, 323.28 it/sec, feas=False, obj=45.7]
   INFO - 16:14:52:     98%|█████████▊| 98/100 [00:00<00:00, 322.89 it/sec, feas=False, obj=21.2]
   INFO - 16:14:52:     99%|█████████▉| 99/100 [00:00<00:00, 322.77 it/sec, feas=False, obj=342]
WARNING - 16:14:52: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:52:    100%|██████████| 100/100 [00:00<00:00, 320.62 it/sec, feas=False, obj=125]
   INFO - 16:14:52: Optimization result:
   INFO - 16:14:52:    Optimizer info:
   INFO - 16:14:52:       Status: None
   INFO - 16:14:52:       Message: None
   INFO - 16:14:52:    Solution:
WARNING - 16:14:52:       The solution is not feasible.
   INFO - 16:14:52:       Objective: 30.3484674529711
   INFO - 16:14:52:       Standardized constraints:
   INFO - 16:14:52:          c_1 = -12.474091450044018
   INFO - 16:14:52:          c_2 = -10.003409829769815
   INFO - 16:14:52:       Design space:
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:14:52:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:14:52:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:14:52:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52: *** End MDOScenario execution ***
WARNING - 16:14:52: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:14:52: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:52: *** Start MDOScenario execution ***
   INFO - 16:14:52: MDOScenario
   INFO - 16:14:52:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:14:52:    MDO formulation: MDF
   INFO - 16:14:52: Optimization problem:
   INFO - 16:14:52:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:14:52:    with respect to x_1, x_2, x_shared
   INFO - 16:14:52:    under the equality constraints
   INFO - 16:14:52:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:    over the design space:
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:14:52:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52: Solving optimization problem with algorithm MC:
WARNING - 16:14:52: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:52: Optimization result:
   INFO - 16:14:52:    Optimizer info:
   INFO - 16:14:52:       Status: None
   INFO - 16:14:52:       Message: None
   INFO - 16:14:52:    Solution:
WARNING - 16:14:52:       The solution is not feasible.
   INFO - 16:14:52:       Objective: 30.348468138942017
   INFO - 16:14:52:       Standardized constraints:
   INFO - 16:14:52:          c_1 = [-12.47409214]
   INFO - 16:14:52:          c_2 = [-10.00340912]
   INFO - 16:14:52:       Design space:
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:14:52:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:14:52:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:14:52:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:14:52:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:52: *** End MDOScenario execution ***
WARNING - 16:14:52: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:14:52: 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:14:52: *** Start MDOScenario execution ***
   INFO - 16:14:52: MDOScenario
   INFO - 16:14:52:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:14:52:    MDO formulation: MDF
   INFO - 16:14:52: Optimization problem:
   INFO - 16:14:52:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:14:52:    with respect to x_1, x_2, x_shared
   INFO - 16:14:52:    under the equality constraints
   INFO - 16:14:52:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:14:52:    over the design space:
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:14:52:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:14:52:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:14:52:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:52: Solving optimization problem with algorithm MC:
   INFO - 16:14:52:      1%|          | 1/100 [00:00<00:01, 59.92 it/sec, feas=False, obj=191]
   INFO - 16:14:52:      2%|▏         | 2/100 [00:00<00:01, 75.77 it/sec, feas=False, obj=79.2]
   INFO - 16:14:52:      3%|▎         | 3/100 [00:00<00:01, 82.98 it/sec, feas=False, obj=69.1]
   INFO - 16:14:52:      4%|▍         | 4/100 [00:00<00:01, 87.27 it/sec, feas=False, obj=112]
   INFO - 16:14:52:      5%|▌         | 5/100 [00:00<00:01, 91.11 it/sec, feas=False, obj=62.9]
   INFO - 16:14:52:      6%|▌         | 6/100 [00:00<00:01, 93.40 it/sec, feas=False, obj=89.3]
   INFO - 16:14:52:      7%|▋         | 7/100 [00:00<00:00, 95.45 it/sec, feas=False, obj=162]
   INFO - 16:14:52:      8%|▊         | 8/100 [00:00<00:00, 96.54 it/sec, feas=False, obj=591]
   INFO - 16:14:52:      9%|▉         | 9/100 [00:00<00:00, 97.64 it/sec, feas=False, obj=127]
   INFO - 16:14:52:     10%|█         | 10/100 [00:00<00:00, 98.32 it/sec, feas=False, obj=80.9]
   INFO - 16:14:52:     11%|█         | 11/100 [00:00<00:00, 99.55 it/sec, feas=False, obj=131]
   INFO - 16:14:52:     12%|█▏        | 12/100 [00:00<00:00, 99.90 it/sec, feas=False, obj=119]
   INFO - 16:14:52:     13%|█▎        | 13/100 [00:00<00:00, 100.27 it/sec, feas=False, obj=98.4]
   INFO - 16:14:52:     14%|█▍        | 14/100 [00:00<00:00, 100.81 it/sec, feas=False, obj=1.09e+3]
   INFO - 16:14:52:     15%|█▌        | 15/100 [00:00<00:00, 101.08 it/sec, feas=False, obj=220]
   INFO - 16:14:52:     16%|█▌        | 16/100 [00:00<00:00, 101.17 it/sec, feas=False, obj=30.3]
   INFO - 16:14:52:     17%|█▋        | 17/100 [00:00<00:00, 101.76 it/sec, feas=False, obj=130]
   INFO - 16:14:52:     18%|█▊        | 18/100 [00:00<00:00, 102.30 it/sec, feas=False, obj=274]
   INFO - 16:14:52:     19%|█▉        | 19/100 [00:00<00:00, 102.67 it/sec, feas=False, obj=111]
   INFO - 16:14:52:     20%|██        | 20/100 [00:00<00:00, 102.88 it/sec, feas=False, obj=194]
   INFO - 16:14:52:     21%|██        | 21/100 [00:00<00:00, 102.94 it/sec, feas=False, obj=87.1]
   INFO - 16:14:52:     22%|██▏       | 22/100 [00:00<00:00, 102.87 it/sec, feas=False, obj=121]
   INFO - 16:14:52:     23%|██▎       | 23/100 [00:00<00:00, 102.99 it/sec, feas=False, obj=44.7]
   INFO - 16:14:52:     24%|██▍       | 24/100 [00:00<00:00, 103.30 it/sec, feas=False, obj=49.7]
   INFO - 16:14:52:     25%|██▌       | 25/100 [00:00<00:00, 103.66 it/sec, feas=False, obj=62.2]
   INFO - 16:14:52:     26%|██▌       | 26/100 [00:00<00:00, 103.59 it/sec, feas=False, obj=131]
   INFO - 16:14:52:     27%|██▋       | 27/100 [00:00<00:00, 103.71 it/sec, feas=False, obj=89.7]
   INFO - 16:14:52:     28%|██▊       | 28/100 [00:00<00:00, 103.99 it/sec, feas=False, obj=142]
   INFO - 16:14:52:     29%|██▉       | 29/100 [00:00<00:00, 104.08 it/sec, feas=False, obj=85.4]
   INFO - 16:14:52:     30%|███       | 30/100 [00:00<00:00, 104.08 it/sec, feas=False, obj=54.1]
   INFO - 16:14:52:     31%|███       | 31/100 [00:00<00:00, 104.08 it/sec, feas=False, obj=138]
   INFO - 16:14:52:     32%|███▏      | 32/100 [00:00<00:00, 104.26 it/sec, feas=False, obj=107]
   INFO - 16:14:52:     33%|███▎      | 33/100 [00:00<00:00, 104.50 it/sec, feas=False, obj=45.6]
   INFO - 16:14:52:     34%|███▍      | 34/100 [00:00<00:00, 104.51 it/sec, feas=False, obj=211]
   INFO - 16:14:52:     35%|███▌      | 35/100 [00:00<00:00, 104.42 it/sec, feas=False, obj=149]
   INFO - 16:14:52:     36%|███▌      | 36/100 [00:00<00:00, 104.61 it/sec, feas=False, obj=89.2]
   INFO - 16:14:52:     37%|███▋      | 37/100 [00:00<00:00, 104.76 it/sec, feas=False, obj=125]
   INFO - 16:14:52:     38%|███▊      | 38/100 [00:00<00:00, 104.74 it/sec, feas=False, obj=125]
   INFO - 16:14:52:     39%|███▉      | 39/100 [00:00<00:00, 104.90 it/sec, feas=False, obj=156]
   INFO - 16:14:52:     40%|████      | 40/100 [00:00<00:00, 105.06 it/sec, feas=False, obj=65.3]
   INFO - 16:14:52:     41%|████      | 41/100 [00:00<00:00, 105.05 it/sec, feas=False, obj=134]
   INFO - 16:14:52:     42%|████▏     | 42/100 [00:00<00:00, 105.07 it/sec, feas=False, obj=63.5]
   INFO - 16:14:52:     43%|████▎     | 43/100 [00:00<00:00, 105.29 it/sec, feas=False, obj=137]
   INFO - 16:14:52:     44%|████▍     | 44/100 [00:00<00:00, 105.43 it/sec, feas=False, obj=77.2]
   INFO - 16:14:52:     45%|████▌     | 45/100 [00:00<00:00, 105.46 it/sec, feas=False, obj=116]
   INFO - 16:14:52:     46%|████▌     | 46/100 [00:00<00:00, 105.58 it/sec, feas=False, obj=134]
   INFO - 16:14:52:     47%|████▋     | 47/100 [00:00<00:00, 105.49 it/sec, feas=False, obj=110]
   INFO - 16:14:52:     48%|████▊     | 48/100 [00:00<00:00, 105.55 it/sec, feas=False, obj=165]
   INFO - 16:14:52:     49%|████▉     | 49/100 [00:00<00:00, 105.55 it/sec, feas=False, obj=189]
   INFO - 16:14:52:     50%|█████     | 50/100 [00:00<00:00, 105.67 it/sec, feas=False, obj=109]
   INFO - 16:14:52:     51%|█████     | 51/100 [00:00<00:00, 105.65 it/sec, feas=False, obj=95.5]
   INFO - 16:14:52:     52%|█████▏    | 52/100 [00:00<00:00, 105.75 it/sec, feas=False, obj=146]
   INFO - 16:14:52:     53%|█████▎    | 53/100 [00:00<00:00, 105.92 it/sec, feas=False, obj=165]
   INFO - 16:14:52:     54%|█████▍    | 54/100 [00:00<00:00, 106.06 it/sec, feas=False, obj=107]
   INFO - 16:14:52:     55%|█████▌    | 55/100 [00:00<00:00, 106.03 it/sec, feas=False, obj=25.3]
   INFO - 16:14:52:     56%|█████▌    | 56/100 [00:00<00:00, 106.10 it/sec, feas=False, obj=203]
   INFO - 16:14:52:     57%|█████▋    | 57/100 [00:00<00:00, 106.08 it/sec, feas=False, obj=305]
   INFO - 16:14:52:     58%|█████▊    | 58/100 [00:00<00:00, 106.16 it/sec, feas=False, obj=51.7]
   INFO - 16:14:52:     59%|█████▉    | 59/100 [00:00<00:00, 106.13 it/sec, feas=False, obj=212]
   INFO - 16:14:52:     60%|██████    | 60/100 [00:00<00:00, 106.22 it/sec, feas=False, obj=199]
   INFO - 16:14:52:     61%|██████    | 61/100 [00:00<00:00, 106.32 it/sec, feas=False, obj=93.1]
   INFO - 16:14:52:     62%|██████▏   | 62/100 [00:00<00:00, 106.41 it/sec, feas=False, obj=39.9]
   INFO - 16:14:52:     63%|██████▎   | 63/100 [00:00<00:00, 106.51 it/sec, feas=False, obj=112]
   INFO - 16:14:53:     64%|██████▍   | 64/100 [00:00<00:00, 106.55 it/sec, feas=False, obj=136]
   INFO - 16:14:53:     65%|██████▌   | 65/100 [00:00<00:00, 106.64 it/sec, feas=False, obj=40.7]
   INFO - 16:14:53:     66%|██████▌   | 66/100 [00:00<00:00, 106.60 it/sec, feas=False, obj=2.66e+3]
   INFO - 16:14:53:     67%|██████▋   | 67/100 [00:00<00:00, 106.69 it/sec, feas=False, obj=160]
   INFO - 16:14:53:     68%|██████▊   | 68/100 [00:00<00:00, 106.79 it/sec, feas=False, obj=138]
   INFO - 16:14:53:     69%|██████▉   | 69/100 [00:00<00:00, 106.77 it/sec, feas=False, obj=899]
   INFO - 16:14:53:     70%|███████   | 70/100 [00:00<00:00, 106.86 it/sec, feas=False, obj=276]
   INFO - 16:14:53:     71%|███████   | 71/100 [00:00<00:00, 106.82 it/sec, feas=False, obj=44.1]
   INFO - 16:14:53:     72%|███████▏  | 72/100 [00:00<00:00, 106.86 it/sec, feas=False, obj=114]
   INFO - 16:14:53:     73%|███████▎  | 73/100 [00:00<00:00, 106.94 it/sec, feas=False, obj=596]
   INFO - 16:14:53:     74%|███████▍  | 74/100 [00:00<00:00, 106.94 it/sec, feas=False, obj=120]
   INFO - 16:14:53:     75%|███████▌  | 75/100 [00:00<00:00, 107.01 it/sec, feas=False, obj=407]
   INFO - 16:14:53:     76%|███████▌  | 76/100 [00:00<00:00, 106.93 it/sec, feas=False, obj=51.4]
   INFO - 16:14:53:     77%|███████▋  | 77/100 [00:00<00:00, 106.92 it/sec, feas=False, obj=148]
   INFO - 16:14:53:     78%|███████▊  | 78/100 [00:00<00:00, 106.90 it/sec, feas=False, obj=93.9]
   INFO - 16:14:53:     79%|███████▉  | 79/100 [00:00<00:00, 106.86 it/sec, feas=False, obj=72.1]
   INFO - 16:14:53:     80%|████████  | 80/100 [00:00<00:00, 106.92 it/sec, feas=False, obj=292]
   INFO - 16:14:53:     81%|████████  | 81/100 [00:00<00:00, 106.86 it/sec, feas=False, obj=98.6]
   INFO - 16:14:53:     82%|████████▏ | 82/100 [00:00<00:00, 106.90 it/sec, feas=False, obj=25]
   INFO - 16:14:53:     83%|████████▎ | 83/100 [00:00<00:00, 106.82 it/sec, feas=False, obj=33.1]
   INFO - 16:14:53:     84%|████████▍ | 84/100 [00:00<00:00, 106.78 it/sec, feas=False, obj=114]
   INFO - 16:14:53:     85%|████████▌ | 85/100 [00:00<00:00, 106.74 it/sec, feas=False, obj=115]
   INFO - 16:14:53:     86%|████████▌ | 86/100 [00:00<00:00, 106.79 it/sec, feas=False, obj=118]
   INFO - 16:14:53:     87%|████████▋ | 87/100 [00:00<00:00, 106.73 it/sec, feas=False, obj=67.1]
   INFO - 16:14:53:     88%|████████▊ | 88/100 [00:00<00:00, 106.79 it/sec, feas=False, obj=105]
   INFO - 16:14:53:     89%|████████▉ | 89/100 [00:00<00:00, 106.81 it/sec, feas=False, obj=92.6]
   INFO - 16:14:53:     90%|█████████ | 90/100 [00:00<00:00, 106.77 it/sec, feas=False, obj=98.1]
   INFO - 16:14:53:     91%|█████████ | 91/100 [00:00<00:00, 106.77 it/sec, feas=False, obj=133]
   INFO - 16:14:53:     92%|█████████▏| 92/100 [00:00<00:00, 106.82 it/sec, feas=False, obj=197]
   INFO - 16:14:53:     93%|█████████▎| 93/100 [00:00<00:00, 106.85 it/sec, feas=False, obj=82.6]
   INFO - 16:14:53:     94%|█████████▍| 94/100 [00:00<00:00, 106.86 it/sec, feas=False, obj=27.2]
   INFO - 16:14:53:     95%|█████████▌| 95/100 [00:00<00:00, 106.85 it/sec, feas=False, obj=126]
   INFO - 16:14:53:     96%|█████████▌| 96/100 [00:00<00:00, 106.82 it/sec, feas=False, obj=162]
   INFO - 16:14:53:     97%|█████████▋| 97/100 [00:00<00:00, 106.89 it/sec, feas=False, obj=45.7]
   INFO - 16:14:53:     98%|█████████▊| 98/100 [00:00<00:00, 106.88 it/sec, feas=False, obj=21.2]
   INFO - 16:14:53:     99%|█████████▉| 99/100 [00:00<00:00, 106.88 it/sec, feas=False, obj=342]
WARNING - 16:14:53: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:53:    100%|██████████| 100/100 [00:00<00:00, 106.62 it/sec, feas=False, obj=125]
   INFO - 16:14:53: Optimization result:
   INFO - 16:14:53:    Optimizer info:
   INFO - 16:14:53:       Status: None
   INFO - 16:14:53:       Message: None
   INFO - 16:14:53:    Solution:
WARNING - 16:14:53:       The solution is not feasible.
   INFO - 16:14:53:       Objective: 30.3484674529711
   INFO - 16:14:53:       Standardized constraints:
   INFO - 16:14:53:          c_1 = -12.474091450044018
   INFO - 16:14:53:          c_2 = -10.003409829769815
   INFO - 16:14:53:       Design space:
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:14:53:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:14:53:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:14:53:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53: *** End MDOScenario execution ***
WARNING - 16:14:53: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:14:53: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:53: *** Start MDOScenario execution ***
   INFO - 16:14:53: MDOScenario
   INFO - 16:14:53:    Disciplines: Sellar1 Sellar2 SellarSystem
   INFO - 16:14:53:    MDO formulation: MDF
   INFO - 16:14:53: Optimization problem:
   INFO - 16:14:53:    minimize obj(x_1, x_2, x_shared)
   INFO - 16:14:53:    with respect to x_1, x_2, x_shared
   INFO - 16:14:53:    under the equality constraints
   INFO - 16:14:53:       c_1(x_1, x_2, x_shared) = 0
   INFO - 16:14:53:       c_2(x_1, x_2, x_shared) = 0
   INFO - 16:14:53:    over the design space:
   INFO - 16:14:53:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:53:       | Name        | Lower bound | Value | Upper bound | Type  |
   INFO - 16:14:53:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:53:       | x_1         |      0      |   1   |      10     | float |
   INFO - 16:14:53:       | x_2         |      0      |   1   |      10     | float |
   INFO - 16:14:53:       | x_shared[0] |     -10     |   4   |      10     | float |
   INFO - 16:14:53:       | x_shared[1] |      0      |   3   |      10     | float |
   INFO - 16:14:53:       +-------------+-------------+-------+-------------+-------+
   INFO - 16:14:53: Solving optimization problem with algorithm MC:
WARNING - 16:14:53: Optimization found no feasible point; the least infeasible point is selected.
   INFO - 16:14:53: Optimization result:
   INFO - 16:14:53:    Optimizer info:
   INFO - 16:14:53:       Status: None
   INFO - 16:14:53:       Message: None
   INFO - 16:14:53:    Solution:
WARNING - 16:14:53:       The solution is not feasible.
   INFO - 16:14:53:       Objective: 30.348468138942017
   INFO - 16:14:53:       Standardized constraints:
   INFO - 16:14:53:          c_1 = [-12.47409214]
   INFO - 16:14:53:          c_2 = [-10.00340912]
   INFO - 16:14:53:       Design space:
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53:          | Name        | Lower bound |        Value        | Upper bound | Type  |
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53:          | x_1         |      0      |  2.740483886137183  |      10     | float |
   INFO - 16:14:53:          | x_2         |      0      | 0.07091828603166261 |      10     | float |
   INFO - 16:14:53:          | x_shared[0] |     -10     |  2.914417911498957  |      10     | float |
   INFO - 16:14:53:          | x_shared[1] |      0      |  7.199093835086931  |      10     | float |
   INFO - 16:14:53:          +-------------+-------------+---------------------+-------------+-------+
   INFO - 16:14:53: *** End MDOScenario execution ***
WARNING - 16:14:53: Optimization found no feasible point; the least infeasible point is selected.
WARNING - 16:14:53: 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.047 seconds)

Gallery generated by Sphinx-Gallery