From a8221a4bbaea651fa71cb7a3693cc10a488da5cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Vonheiden?= <bjoern.vonheiden@hotmail.de> Date: Fri, 20 Nov 2020 11:25:03 +0100 Subject: [PATCH] Remove redundancies in theodolite script to execute experiments Apply the DRY principle and remove redundancies. Only the domain restriction and search strategies varies and can therefore only set. --- execution/theodolite.py | 135 ++++++++++------------------------------ 1 file changed, 33 insertions(+), 102 deletions(-) diff --git a/execution/theodolite.py b/execution/theodolite.py index 530b5fa89..56fdc8b52 100755 --- a/execution/theodolite.py +++ b/execution/theodolite.py @@ -66,110 +66,41 @@ def main(uc, loads, instances_list, partitions, cpu_limit, memory_limit, with open(counter_path, mode="w") as write_stream: write_stream.write(str(exp_id + 1)) - # domain restriction + domain_restriction_strategy = None + search_strategy = None + + # Select domain restriction if domain_restriction: - # domain restriction + linear-search - if search_strategy == "linear-search": - print(f"Going to execute at most {len(loads)+len(instances_list)-1} subexperiments in total..") - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=lower_bound_strategy, - search_strategy=linear_search_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) - # domain restriction + binary-search - elif search_strategy == "binary-search": - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=lower_bound_strategy, - search_strategy=binary_search_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) - # domain restriction + check_all - else: - print(f"Going to execute {len(loads)*len(instances_list)} subexperiments in total..") - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=lower_bound_strategy, - search_strategy=check_all_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) - # no domain restriction + # domain restriction + domain_restriction_strategy = lower_bound_strategy + else: + # no domain restriction + domain_restriction_strategy = no_lower_bound_strategy + + # select search strategy + if search_strategy == "linear-search": + print(f"Going to execute at most {len(loads)+len(instances_list)-1} subexperiments in total..") + search_strategy = linear_search_strategy + elif search_strategy == "binary-search": + search_strategy = binary_search_strategy else: - # no domain restriction + linear-search - if search_strategy == "linear-search": - print(f"Going to execute at most {len(loads)*len(instances_list)} subexperiments in total..") - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=no_lower_bound_strategy, - search_strategy=linear_search_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) - # no domain restriction + binary-search - elif search_strategy == "binary-search": - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=no_lower_bound_strategy, - search_strategy=binary_search_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) - # no domain restriction + check_all - else: - print(f"Going to execute {len(loads)*len(instances_list)} subexperiments in total..") - experiment_config = ExperimentConfig( - use_case=uc, - exp_id=exp_id, - dim_values=loads, - replicass=instances_list, - partitions=partitions, - cpu_limit=cpu_limit, - memory_limit=memory_limit, - kafka_streams_commit_interval_ms=commit_ms, - execution_minutes=duration, - domain_restriction_strategy=no_lower_bound_strategy, - search_strategy=check_all_strategy, - subexperiment_executor=subexperiment_executor, - subexperiment_evaluator=subexperiment_evaluator) + print(f"Going to execute {len(loads)*len(instances_list)} subexperiments in total..") + search_strategy = check_all_strategy + + experiment_config = ExperimentConfig( + use_case=uc, + exp_id=exp_id, + dim_values=loads, + replicass=instances_list, + partitions=partitions, + cpu_limit=cpu_limit, + memory_limit=memory_limit, + kafka_streams_commit_interval_ms=commit_ms, + execution_minutes=duration, + domain_restriction_strategy=domain_restriction_strategy, + search_strategy=search_strategy, + subexperiment_executor=subexperiment_executor, + subexperiment_evaluator=subexperiment_evaluator) executor = ExperimentExecutor(experiment_config) executor.execute() -- GitLab