Skip to content

Commit 545b8ed

Browse files
committed
line profiler is now experiment aware
1 parent 9068bff commit 545b8ed

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

codeflash/optimization/function_optimizer.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,7 @@ def optimize_function(self) -> Result[BestOptimization, str]:
235235
# request for new optimizations but don't block execution, check for completion later
236236
# adding to control and experiment set but with same traceid
237237
best_optimization = None
238-
run_experiment = self.experiment_id is not None
239-
for _u, (candidates,exp_type) in enumerate(zip([optimizations_set.control, optimizations_set.experiment],["EXP0","EXP1"])):
238+
for _u, (candidates, exp_type) in enumerate(zip([optimizations_set.control, optimizations_set.experiment],["EXP0","EXP1"])):
240239
if candidates is None:
241240
continue
242241

@@ -247,7 +246,6 @@ def optimize_function(self) -> Result[BestOptimization, str]:
247246
original_helper_code=original_helper_code,
248247
file_path_to_helper_classes=file_path_to_helper_classes,
249248
exp_type=exp_type,
250-
run_experiment=run_experiment,
251249
)
252250
ph("cli-optimize-function-finished", {"function_trace_id": self.function_trace_id})
253251

@@ -349,7 +347,6 @@ def determine_best_candidate(
349347
original_helper_code: dict[Path, str],
350348
file_path_to_helper_classes: dict[Path, set[str]],
351349
exp_type: str,
352-
run_experiment: bool
353350
) -> BestOptimization | None:
354351
best_optimization: BestOptimization | None = None
355352
best_runtime_until_now = original_code_baseline.runtime
@@ -367,18 +364,18 @@ def determine_best_candidate(
367364
# Start a new thread for AI service request, start loop in main thread
368365
# check if aiservice request is complete, when it is complete, append result to the candidates list
369366
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
367+
ai_service_client = self.local_aiservice_client if self.experiment_id else self.aiservice_client
370368
future_line_profile_results = executor.submit(
371-
self.aiservice_client.optimize_python_code_line_profiler,
369+
ai_service_client.optimize_python_code_line_profiler,
372370
source_code=code_context.read_writable_code,
373371
dependency_code=code_context.read_only_context_code,
374-
trace_id=self.function_trace_id[:-4] + exp_type if run_experiment else self.function_trace_id,
372+
trace_id=self.function_trace_id[:-4] + exp_type if self.experiment_id else self.function_trace_id,
375373
line_profiler_results=original_code_baseline.line_profile_results["str_out"],
376374
num_candidates=10,
377-
experiment_metadata=None,
375+
experiment_metadata=ExperimentMetadata(id=self.experiment_id, group= "control" if exp_type == "EXP0" else "experiment") if self.experiment_id else None,
378376
)
379377
try:
380378
candidate_index = 0
381-
done = False
382379
original_len = len(candidates)
383380
while candidates:
384381
done = True if future_line_profile_results is None else future_line_profile_results.done()

0 commit comments

Comments
 (0)