- """ Re-runs a same experiment multiple times
-
- :param ec: Experiment description of experiment to run
- :type name: ExperimentController
- :rtype: EperimentController
-
- :param min_runs: Minimum number of repetitions for experiment
- :type name: int
- :rtype: int
-
- :param max_runs: Maximum number of repetitions for experiment
- :type name: int
- :rtype: int
-
- :param wait_time: Time to wait in seconds between invoking
- ec.deploy() and ec.release()
- :type name: float
- :rtype: float
-
- :param wait_guids: List of guids to pass to ec.wait_finished
- after invoking ec.deploy()
- :type name: list
- :rtype: list of int
-
- :param compute_metric_callback: function to invoke after each
- experiment run, to compute an experiment metric.
- It will be invoked with the ec and the run count as arguments,
- and it must return a numeric value for the computed metric:
+ """ Run a same experiment independently multiple times, until the
+ evaluate_convergence_callback function returns True
+
+ :param ec: Description of experiment to replicate.
+ The runner takes care of deploying the EC, so ec.deploy()
+ must not be invoked directly before or after invoking
+ runner.run().
+ :type ec: ExperimentController
+
+ :param min_runs: Minimum number of times the experiment must be
+ replicated
+ :type min_runs: int
+
+ :param max_runs: Maximum number of times the experiment can be
+ replicated
+ :type max_runs: int
+
+ :param wait_time: Time to wait in seconds on each run between invoking
+ ec.deploy() and ec.release().
+ :type wait_time: float
+
+ :param wait_guids: List of guids wait for finalization on each run.
+ This list is passed to ec.wait_finished()
+ :type wait_guids: list
+
+ :param compute_metric_callback: User defined function invoked after
+ each experiment run to compute a metric. The metric is usually
+ a network measurement obtained from the data collected
+ during experiment execution.
+ The function is invoked passing the ec and the run number as arguments.
+ It must return the value for the computed metric(s) (usually a single
+ numerical value, but it can be several).