@@ -116,9 +116,18 @@ def create_benchmark_from_synthetic_workflow(
116116 f"{ self .workflow .name .lower ()} -{ self .num_tasks } " ).with_suffix (".json" )
117117
118118 cores , lock = self ._creating_lock_files (lock_files_folder )
119- self ._set_argument_parameters (percent_cpu , cpu_work , gpu_work , time , mem , lock_files_folder , cores , lock , clear_files = False )
120-
121119 for task in self .workflow .tasks .values ():
120+ self ._set_argument_parameters (
121+ task ,
122+ percent_cpu ,
123+ cpu_work * task .runtime , # scale cpu work to task runtime to achieve a runtime distribution
124+ gpu_work ,
125+ time ,
126+ mem ,
127+ lock_files_folder ,
128+ cores ,
129+ lock
130+ )
122131 if mem :
123132 task .memory = mem
124133
@@ -234,7 +243,19 @@ def create_benchmark(self,
234243 f"{ self .workflow .name .lower ()} -{ self .num_tasks } " ).with_suffix (".json" )
235244
236245 cores , lock = self ._creating_lock_files (lock_files_folder )
237- self ._set_argument_parameters (percent_cpu , cpu_work , gpu_work , time , mem , lock_files_folder , cores , lock )
246+ for task in self .tasks .values ():
247+ self ._set_argument_parameters (
248+ task ,
249+ percent_cpu ,
250+ cpu_work ,
251+ gpu_work ,
252+ time ,
253+ mem ,
254+ lock_files_folder ,
255+ cores ,
256+ lock
257+ )
258+ task .files = []
238259
239260 self ._create_data_footprint (data , save_dir )
240261
@@ -264,38 +285,36 @@ def _creating_lock_files(self, lock_files_folder: Optional[pathlib.Path]) -> Tup
264285 return None , None
265286
266287 def _set_argument_parameters (self ,
288+ task : Task ,
267289 percent_cpu : Union [float , Dict [str , float ]],
268290 cpu_work : Union [int , Dict [str , int ]],
269291 gpu_work : Union [int , Dict [str , int ]],
270292 time : Optional [int ],
271293 mem : Optional [float ],
272294 lock_files_folder : Optional [pathlib .Path ],
273295 cores : Optional [pathlib .Path ],
274- lock : Optional [pathlib .Path ],
275- clear_files : bool = True ) -> None :
296+ lock : Optional [pathlib .Path ]) -> None :
276297 """
277298 Setting the parameters for the arguments section of the JSON
278299 """
279- for task in self .workflow .tasks .values ():
280- params = []
300+ params = []
281301
282- cpu_params = self ._generate_task_cpu_params (task , percent_cpu , cpu_work , lock_files_folder , cores , lock )
283- params .extend (cpu_params )
284- gpu_params = self ._generate_task_gpu_params (task , gpu_work )
285- params .extend (gpu_params )
302+ cpu_params = self ._generate_task_cpu_params (task , percent_cpu , cpu_work , lock_files_folder , cores , lock )
303+ params .extend (cpu_params )
304+ gpu_params = self ._generate_task_gpu_params (task , gpu_work )
305+ params .extend (gpu_params )
286306
287- if mem :
288- params .extend ([f"--mem { mem } " ])
307+ if mem :
308+ params .extend ([f"--mem { mem } " ])
309+
310+ if time :
311+ params .extend ([f"--time { time } " ])
289312
290- if time :
291- params .extend ([f"--time { time } " ])
313+ task .runtime = 0
292314
293- task .runtime = 0
294- if clear_files :
295- task .files = []
296- task .program = "wfbench.py"
297- task .args = [task .name ]
298- task .args .extend (params )
315+ task .program = "wfbench.py"
316+ task .args = [task .name ]
317+ task .args .extend (params )
299318
300319 def _generate_task_cpu_params (self ,
301320 task : Task ,
0 commit comments