@@ -12,34 +12,38 @@ mutable struct SlurmManager <: ClusterManager
12
12
srun_proc
13
13
14
14
function SlurmManager (; launch_timeout= 60.0 , srun_post_exit_sleep= 0.01 )
15
+ ntasks = get_slurm_ntasks_int ()
16
+ jobid = get_slurm_jobid_int ()
15
17
16
- jobid =
17
- if " SLURM_JOB_ID" in keys (ENV )
18
- ENV [" SLURM_JOB_ID" ]
19
- elseif " SLURM_JOBID" in keys (ENV )
20
- ENV [" SLURM_JOBID" ]
21
- else
22
- error ("""
23
- SlurmManager must be constructed inside a slurm allocation environemnt.
24
- SLURM_JOB_ID or SLURM_JOBID must be defined.
25
- """ )
26
- end
27
-
28
- ntasks =
29
- if " SLURM_NTASKS" in keys (ENV )
30
- ENV [" SLURM_NTASKS" ]
31
- else
32
- error ("""
33
- SlurmManager must be constructed inside a slurm environment with a specified number of tasks.
34
- SLURM_NTASKS must be defined.
35
- """ )
36
- end
18
+ new (jobid, ntasks, launch_timeout, srun_post_exit_sleep, nothing )
19
+ end
20
+ end
37
21
38
- jobid = parse (Int, jobid)
39
- ntasks = parse (Int, ntasks)
22
+ function get_slurm_ntasks_int ()
23
+ if haskey (ENV , " SLURM_NTASKS" )
24
+ ntasks_str = ENV [" SLURM_NTASKS" ]
25
+ else
26
+ msg = " SlurmManager must be constructed inside a Slurm allocation environment." *
27
+ " SLURM_NTASKS must be defined."
28
+ error (msg)
29
+ end
30
+ ntasks_int = parse (Int, ntasks_str):: Int
31
+ return ntasks_int
32
+ end
40
33
41
- new (jobid, ntasks, launch_timeout, srun_post_exit_sleep, nothing )
34
+ function get_slurm_jobid_int ()
35
+ if haskey (ENV , " SLURM_JOB_ID" )
36
+ jobid_str = ENV [" SLURM_JOB_ID" ]
37
+ elseif haskey (ENV , " SLURM_JOBID" )
38
+ jobid_str = ENV [" SLURM_JOBID" ]
39
+ else
40
+ msg = " SlurmManager must be constructed inside a Slurm allocation environment." *
41
+ " SLURM_JOB_ID or SLURM_JOBID must be defined."
42
+ error (msg)
42
43
end
44
+
45
+ jobid_int = parse (Int, jobid_str):: Int
46
+ return jobid_int
43
47
end
44
48
45
49
@static if Base. VERSION >= v " 1.9.0"
0 commit comments