blob: b782be14bdf3f17921fc9315c9cc769893e95301 [file] [log] [blame]
############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import atf
import pytest
import re
node_num = 4
# Setup
@pytest.fixture(scope="module", autouse=True)
def setup():
atf.require_nodes(node_num)
atf.require_slurm_running()
def test_threads():
"""Verify a job executes with various launch thread fanouts with --threads option"""
node_count = "1-64"
threads = 0
output = atf.run_command_output(
f"srun -N{node_count} -l --threads=1 printenv SLURMD_NODENAME"
)
assert re.search(r"0: (\S+)", output) is not None, "Did not get hostname of task 0"
task_num = int(atf.get_config_parameter("MaxTasksPerNode"))
if task_num <= 32:
threads = task_num
else:
threads = 32
task_num = threads * 2
output = atf.run_command(
f"srun -N{node_count} -n{task_num} -O -l --threads={threads} printenv SLURMD_NODENAME"
)
assert (
output["exit_code"] == 0
), f"srun failed to run with {threads} threads and {task_num} tasks"
assert (
re.search(r"0: (\S+)", output["stdout"]) is not None
), f"Did not get hostname of task 0 when running {threads} threads"