@@ -27,6 +27,22 @@ def _get_opt_value(option_name, cmd_line):
2727 return opt_val
2828
2929
30+ def _default_option_names (mpirunner , setting_type ):
31+ """Return MPI runner defaults for GPU setting options or None
32+
33+ Implement differently to in mpi_runner.py
34+ """
35+ if mpirunner == "srun" :
36+ if setting_type == "option_gpus_per_task" :
37+ return "--gpus-per-task"
38+ else :
39+ return "--gpus-per-node"
40+ if mpirunner == "jsrun" :
41+ if setting_type == "option_gpus_per_task" :
42+ return "-g"
43+ return None
44+
45+
3046def _get_expected_output (name , value ):
3147 """Return expected gpu runline setting"""
3248 if name .endswith ("=" ):
@@ -152,7 +168,9 @@ def check_gpu_setting(task, assert_setting=True, print_setting=False, resources=
152168 if setting_type is not None :
153169 assert setting_type in gpu_settings , f"unknown setting type in platform_info: { setting_type } "
154170 if setting_type != "runner_default" :
155- expected_setting = gresources .platform_info .get ("gpu_setting_name" )
171+ expected_setting = gresources .platform_info .get (
172+ "gpu_setting_name" , _default_option_names (mpirunner , setting_type )
173+ )
156174 assert expected_setting is not None , "gpu_setting_type must have a gpu_setting_name"
157175 if setting_type in ["option_gpus_per_node" , "option_gpus_per_task" ]:
158176 assert wresources .even_slots , f"Error: Found uneven slots on nodes { slots } "
@@ -169,12 +187,13 @@ def check_gpu_setting(task, assert_setting=True, print_setting=False, resources=
169187 assert wresources .even_slots , f"Error: Found uneven slots on nodes { slots } "
170188 cmd_line = True
171189 if mpirunner == "srun" :
172- expected_setting = "--gpus-per-node"
190+ expected_setting = "--gpus-per-task"
191+ gpus_per_task = True
173192 if _get_value (expected_setting , task .runline ) is None :
174193 # Try gpus per task
175- if _get_value ("--gpus-per-task " , task .runline ) is not None :
176- gpus_per_task = True
177- expected_setting = "--gpus-per-task "
194+ if _get_value ("--gpus-per-node " , task .runline ) is not None :
195+ gpus_per_task = False
196+ expected_setting = "--gpus-per-node "
178197 elif mpirunner == "jsrun" :
179198 gpus_per_task = True
180199 expected_setting = "-g"
0 commit comments