コード例 #1
0
ファイル: test_utils.py プロジェクト: tamburinif/slurm
def test_argument_conversion(request, mock_get_cluster_config,
                             mock_get_default_partition):
    partition = request.config.getoption("--partition")
    config = slurm_utils._get_cluster_configuration(partition)
    args = {"mem": min(config["MEMORY"]) / min(config["CPUS"]) * 2}
    d = slurm_utils.advanced_argument_conversion(args)
    assert d["cpus-per-task"] == 2
    max_cpus = max(config["CPUS"])
    args = {"cpus-per-task": max_cpus * 2}
    d = slurm_utils.advanced_argument_conversion(args)
    assert d["cpus-per-task"] == max_cpus
コード例 #2
0
sbatch_options = {}
cluster_config = slurm_utils.load_cluster_config(CLUSTER_CONFIG)

# 1) sbatch default arguments
sbatch_options.update(slurm_utils.parse_sbatch_defaults(SBATCH_DEFAULTS))

# 2) cluster_config defaults
sbatch_options.update(cluster_config["__default__"])

# 3) Convert resources (no unit conversion!) and threads
sbatch_options.update(
    slurm_utils.convert_job_properties(job_properties, RESOURCE_MAPPING)
)

# 4) cluster_config for particular rule
sbatch_options.update(cluster_config.get(job_properties.get("rule"), {}))

# 5) cluster_config options
sbatch_options.update(job_properties.get("cluster", {}))

# 6) Advanced conversion of parameters
if ADVANCED_ARGUMENT_CONVERSION:
    sbatch_options = slurm_utils.advanced_argument_conversion(sbatch_options)

# ensure sbatch output dirs exist
for o in ("output", "error"):
    slurm_utils.ensure_dirs_exist(sbatch_options[o]) if o in sbatch_options else None

# submit job and echo id back to Snakemake (must be the only stdout)
print(slurm_utils.submit_job(jobscript, **sbatch_options))