Skip to content

Commit 0c18012

Browse files
committed
Add core-detection and SLURM env diagnostics to _available_cores and __init__
1 parent f65e29d commit 0c18012

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

‎tessreduce/tessreduce.py‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,20 @@ def _available_cores():
3333
slurm = os.environ.get('SLURM_CPUS_PER_TASK')
3434
if slurm is not None:
3535
try:
36-
return int(slurm)
36+
n = int(slurm)
37+
print(f'[tessreduce] _available_cores: SLURM_CPUS_PER_TASK={slurm} → {n} cores')
38+
return n
3739
except ValueError:
3840
pass
3941
try:
40-
return len(os.sched_getaffinity(0))
42+
n = len(os.sched_getaffinity(0))
43+
print(f'[tessreduce] _available_cores: sched_getaffinity → {n} cores')
44+
return n
4145
except AttributeError:
4246
pass
43-
return multiprocessing.cpu_count()
47+
n = multiprocessing.cpu_count()
48+
print(f'[tessreduce] _available_cores: cpu_count fallback → {n} cores')
49+
return n
4450

4551
from .catalog_tools import *
4652
from .calibration_tools import *
@@ -245,6 +251,13 @@ def __init__(self,ra=None,dec=None,name=None,obs_list=None,tpf=None,size=90,sect
245251
self._timing = timing
246252
self._cache_path = None
247253

254+
# SLURM environment diagnostics
255+
_slurm_vars = ['SLURM_CPUS_PER_TASK', 'SLURM_NTASKS', 'SLURM_NTASKS_PER_NODE',
256+
'SLURM_JOB_CPUS_PER_NODE', 'SLURM_CPUS_ON_NODE']
257+
_slurm_env = {k: os.environ.get(k, 'not set') for k in _slurm_vars}
258+
print(f'[tessreduce] SLURM env: {_slurm_env}')
259+
print(f'[tessreduce] num_cores resolved to: {self.num_cores}')
260+
248261
# Offline Paths
249262
if catalogue_path is None:
250263
catalogue_path = os.getcwd()

0 commit comments

Comments
 (0)