def start_task_in_parallel()

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
    )