@@ -235,8 +235,8 @@ 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-
239- for _u , candidates in enumerate ([optimizations_set .control , optimizations_set .experiment ]):
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" ]) ):
240240 if candidates is None :
241241 continue
242242
@@ -246,6 +246,8 @@ def optimize_function(self) -> Result[BestOptimization, str]:
246246 original_code_baseline = original_code_baseline ,
247247 original_helper_code = original_helper_code ,
248248 file_path_to_helper_classes = file_path_to_helper_classes ,
249+ exp_type = exp_type ,
250+ run_experiment = run_experiment ,
249251 )
250252 ph ("cli-optimize-function-finished" , {"function_trace_id" : self .function_trace_id })
251253
@@ -346,6 +348,8 @@ def determine_best_candidate(
346348 original_code_baseline : OriginalCodeBaseline ,
347349 original_helper_code : dict [Path , str ],
348350 file_path_to_helper_classes : dict [Path , set [str ]],
351+ exp_type : str ,
352+ run_experiment : bool
349353 ) -> BestOptimization | None :
350354 best_optimization : BestOptimization | None = None
351355 best_runtime_until_now = original_code_baseline .runtime
@@ -367,7 +371,7 @@ def determine_best_candidate(
367371 self .aiservice_client .optimize_python_code_line_profiler ,
368372 source_code = code_context .read_writable_code ,
369373 dependency_code = code_context .read_only_context_code ,
370- trace_id = self .function_trace_id ,
374+ trace_id = self .function_trace_id [: - 4 ] + exp_type if run_experiment else self . function_trace_id ,
371375 line_profiler_results = original_code_baseline .line_profile_results ["str_out" ],
372376 num_candidates = 10 ,
373377 experiment_metadata = None ,
@@ -377,7 +381,6 @@ def determine_best_candidate(
377381 done = False
378382 original_len = len (candidates )
379383 while candidates :
380- # for candidate_index, candidate in enumerate(candidates, start=1):
381384 done = True if future_line_profile_results is None else future_line_profile_results .done ()
382385 if done and (future_line_profile_results is not None ):
383386 line_profile_results = future_line_profile_results .result ()
0 commit comments