in src/hpcadvisor/data_collector.py [0:0]
def start_task_in_parallel(task, tasks_file, dataset_file, collector_config):
sku = task["sku"]
number_of_nodes = task["nnodes"]
ppr_perc = task["ppr"]
appinputs = task["appinputs"]
appname = task["appname"]
tags = task["tags"]
appsetupurl = task["appsetupurl"]
apprunscript = task["apprunscript"]
# for parallel execution mode, we need to create a pool for each task
# so we will not resize it any more
poolname = batch_handler.create_pool(sku, number_of_nodes)
if poolname is None:
log.error(f"Failed to create pool for sku: {sku}")
return
task["tags"]["poolname"] = poolname
jobname = batch_handler.create_job(poolname)
batch_handler.create_setup_task(jobname, appsetupurl)
task["tags"]["jobname"] = jobname
# TODO: think if task should go to failed or keep pending state
# batch_handler.wait_pool_ready(poolname)
taskid = batch_handler.create_compute_task(
poolname, jobname, number_of_nodes, ppr_perc, sku, appinputs, apprunscript
)
task["tags"]["taskid"] = taskid
log.debug(f"Task started in parallel: {task}")
taskset_handler.update_task_status(
task["id"], tasks_file, taskset_handler.TaskStatus.RUNNING
)