1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 from __future__ import print_function
22 import os
23
25 """
26 Site Package prototype.
27 """
28 sysT = {}
29 queueType = "SLURM"
30 if (envT.get("SGE_ACCOUNT")):
31 queueType = "SGE"
32 elif (envT.get("SLURM_TACC_ACCOUNT") or envT.get("SLURM_TACC_JOBNAME")):
33 queueType = "SLURM_TACC"
34 elif (envT.get("SBATCH_ACCOUNT")):
35 queueType = "SLURM"
36 elif (envT.get("PBS_JOBID")):
37 queueType = "PBS"
38
39 if (queueType == "SGE"):
40 sysT['num_cores'] = "NSLOTS"
41 sysT['num_nodes'] = "NHOSTS"
42 sysT['account'] = "SGE_ACCOUNT"
43 sysT['job_id'] = "JOB_ID"
44 sysT['queue'] = "QUEUE"
45
46 elif (queueType == "SLURM_TACC"):
47 sysT['num_cores'] = "SLURM_TACC_CORES"
48 sysT['num_nodes'] = "SLURM_NNODES"
49 sysT['account'] = "SLURM_TACC_ACCOUNT"
50 sysT['job_id'] = "SLURM_JOB_ID"
51 sysT['queue'] = "SLURM_QUEUE"
52 sysT['submit_host'] = "SLURM_SUBMIT_HOST"
53
54 elif (queueType == "SLURM"):
55 sysT['num_nodes'] = "SLURM_JOB_NUM_NODES"
56 sysT['job_id'] = "SLURM_JOB_ID"
57 sysT['queue'] = "SLURM_QUEUE"
58 sysT['submit_host'] = "SLURM_SUBMIT_HOST"
59
60 elif (queueType == "PBS"):
61 sysT['num_cores'] = "PBS_NP"
62 sysT['num_nodes'] = "PBS_NNODES"
63 sysT['account'] = "PBS_ACCOUNT"
64 sysT['job_id'] = "PBS_JOBID"
65 sysT['queue'] = "PBS_QUEUE"
66
67 for name in nameA:
68 result = "unknown"
69 key = sysT.get(name)
70 if (key):
71 result = envT.get(key,"unknown")
72 userT[name] = result
73
74
75 if (queueType == "SLURM"):
76 userT['num_cores'] = int(envT.get("SLURM_NNODES",0))*int(envT.get("SLURM_CPUS_ON_NODE",0))
77
78 keyA = [ 'num_cores', 'num_nodes' ]
79
80 for key in keyA:
81 if (userT[key] == "unknown"):
82 userT[key] = 0
83 else:
84 userT[key] = int(userT[key])
85
86 if (userT['job_id'] == "unknown"):
87 userT['job_id'] = envT.get('JOB_ID','unknown')
88