in src/hpcadvisor/taskset_handler.py [0:0]
def generate_tasks(filename, var_system, var_appinputs, appname, tags, appsetupurl):
clear_task_file(filename)
main_task_dict = []
variables = []
for varname, value in var_system.items():
variables.append((varname, value))
for varname, value in var_appinputs.items():
variables.append((varname, value))
variables = [(name, _ensure_list(values)) for name, values in variables]
parameter_combinations = list(
itertools.product(*[values for _, values in variables])
)
id = 0
for task in parameter_combinations:
task_dict = {
name: value for name, value in zip([name for name, _ in variables], task)
}
task_dict_entry = {}
task_dict_entry["id"] = id
task_dict_entry["sku"] = task_dict["sku"]
task_dict_entry["ppr"] = task_dict["ppr"]
task_dict_entry["nnodes"] = task_dict["nnodes"]
task_dict_entry["appinputs"] = {}
for varname, _ in var_appinputs.items():
task_dict_entry["appinputs"][varname] = task_dict[varname]
task_dict_entry["status"] = TaskStatus.PENDING
task_dict_entry["appname"] = appname
task_dict_entry["tags"] = tags
task_dict_entry["appsetupurl"] = appsetupurl
task_dict_entry["apprunscript"] = utils.get_app_execution_script(appsetupurl)
main_task_dict.append(task_dict_entry)
id += 1
_store_tasks(main_task_dict, filename)
return main_task_dict