lsst-ctrl-execute 29.2025.1000__tar.gz → 29.2025.1400__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/PKG-INFO +1 -1
  2. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/allocator.py +8 -7
  3. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/slurmPlugin.py +4 -0
  4. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_slurmPlugin.py +20 -0
  5. lsst_ctrl_execute-29.2025.1400/tests/testfiles/config_execconfig.py +6 -0
  6. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/.github/workflows/build.yaml +0 -0
  7. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/.github/workflows/formatting.yaml +0 -0
  8. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/.github/workflows/rebase_checker.yaml +0 -0
  9. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/.gitignore +0 -0
  10. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/.pre-commit-config.yaml +0 -0
  11. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/SConstruct +0 -0
  12. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/etc/configs/gordon_config.py +0 -0
  13. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/etc/configs/lsst_config.py +0 -0
  14. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/etc/scripts/generateDag.py +0 -0
  15. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/pyproject.toml +0 -0
  16. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/__init__.py +0 -0
  17. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/__init__.py +0 -0
  18. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/__init__.py +0 -0
  19. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/allocationConfig.py +0 -0
  20. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/allocatorParser.py +0 -0
  21. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/condorConfig.py +0 -0
  22. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/condorInfoConfig.py +0 -0
  23. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/envString.py +0 -0
  24. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/findPackageFile.py +0 -0
  25. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/libexec/allocateNodes.py +0 -0
  26. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/libexec/dagIdInfo.py +0 -0
  27. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/libexec/qdelete.py +0 -0
  28. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/libexec/qstatus.py +0 -0
  29. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/namedClassFactory.py +0 -0
  30. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/pbsPlugin.py +0 -0
  31. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/qCommand.py +0 -0
  32. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/seqFile.py +0 -0
  33. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/python/lsst/ctrl/execute/templateWriter.py +0 -0
  34. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/setup.cfg +0 -0
  35. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/README +0 -0
  36. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/SConscript +0 -0
  37. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_allocationConfig.py +0 -0
  38. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_allocatorParser.py +0 -0
  39. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_condorConfig.py +0 -0
  40. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_condorInfoConfig.py +0 -0
  41. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_dagIdInfo.py +0 -0
  42. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_findPackageFile.py +0 -0
  43. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_seqFile.py +0 -0
  44. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/test_templateWriter.py +0 -0
  45. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/allocator-info1.py +0 -0
  46. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_allocation.py +0 -0
  47. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_allocation_slurm.py +0 -0
  48. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_asserts.py +0 -0
  49. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_condor.py +0 -0
  50. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_condorInfo.py +0 -0
  51. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_condor_getenv.py +0 -0
  52. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_condor_setups.py +0 -0
  53. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_condor_slurm.py +0 -0
  54. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/config_pegasus.py +0 -0
  55. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/generic.pbs.template +0 -0
  56. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/generic.pbs.txt +0 -0
  57. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/generic.slurm.template +0 -0
  58. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/generic.slurm.txt +0 -0
  59. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/glidein_condor_config.template +0 -0
  60. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/glidein_condor_config.txt +0 -0
  61. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/templateWriter.template +0 -0
  62. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/templateWriter.txt +0 -0
  63. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/tests/testfiles/test.diamond.dag +0 -0
  64. {lsst_ctrl_execute-29.2025.1000 → lsst_ctrl_execute-29.2025.1400}/ups/ctrl_execute.table +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-ctrl-execute
3
- Version: 29.2025.1000
3
+ Version: 29.2025.1400
4
4
  Summary: Utilities for executing and managing workloads.
5
5
  Project-URL: Homepage, https://github.com/lsst/ctrl_execute
6
6
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
@@ -30,9 +30,7 @@ from datetime import datetime
30
30
  from string import Template
31
31
 
32
32
  from lsst.ctrl.execute.allocationConfig import AllocationConfig
33
- from lsst.ctrl.execute.condorConfig import CondorConfig
34
33
  from lsst.ctrl.execute.condorInfoConfig import CondorInfoConfig
35
- from lsst.ctrl.execute.findPackageFile import find_package_file
36
34
  from lsst.ctrl.execute.templateWriter import TemplateWriter
37
35
  from lsst.resources import ResourcePath, ResourcePathExpression
38
36
 
@@ -79,10 +77,6 @@ class Allocator:
79
77
 
80
78
  self.platform = platform
81
79
 
82
- execConfigName = find_package_file("execConfig.py", platform=platform)
83
- execConfig = CondorConfig()
84
- execConfig.loadFromStream(execConfigName.read())
85
-
86
80
  # Look up the user's name and home and scratch directory in the
87
81
  # $HOME/.lsst/condor-info.py file
88
82
  user_name = None
@@ -115,7 +109,7 @@ class Allocator:
115
109
  self.commandLineDefaults["COLLECTOR"] = self.opts.collector
116
110
  self.commandLineDefaults["CPORT"] = self.opts.collectorport
117
111
  if self.opts.exclusive:
118
- self.commandLineDefaults["CPUS"] = execConfig.platform.peakcpus
112
+ self.commandLineDefaults["CPUS"] = self.configuration.platform.peakcpus
119
113
  else:
120
114
  self.commandLineDefaults["CPUS"] = self.opts.cpus
121
115
  self.commandLineDefaults["WALL_CLOCK"] = self.opts.maximumWallClock
@@ -123,6 +117,7 @@ class Allocator:
123
117
  self.commandLineDefaults["MEMPERCORE"] = 4096
124
118
  self.commandLineDefaults["ALLOWEDAUTO"] = 500
125
119
  self.commandLineDefaults["AUTOCPUS"] = 16
120
+ self.commandLineDefaults["MINAUTOCPUS"] = 15
126
121
  self.commandLineDefaults["QUEUE"] = self.opts.queue
127
122
  self.load()
128
123
 
@@ -361,6 +356,12 @@ class Allocator:
361
356
  else:
362
357
  return self.getParameter("AUTOCPUS")
363
358
 
359
+ def getMinAutoCPUs(self):
360
+ """Minimum Size of standard glideins for allocateNodes auto
361
+ @return the value of minAutoCPUs
362
+ """
363
+ return self.getParameter("MINAUTOCPUS")
364
+
364
365
  def getWallClock(self):
365
366
  """Accessor for WALL_CLOCK
366
367
  @return the value of WALL_CLOCK
@@ -291,7 +291,11 @@ class SlurmPlugin(Allocator):
291
291
  """Determine and submit the glideins needed from job pressure."""
292
292
 
293
293
  verbose = self.isVerbose()
294
+ cpus = self.getCPUs()
294
295
  autoCPUs = self.getAutoCPUs()
296
+ minAutoCPUs = self.getMinAutoCPUs()
297
+ if cpus >= minAutoCPUs:
298
+ autoCPUs = cpus
295
299
  memoryPerCore = self.getMemoryPerCore()
296
300
  memoryLimit = autoCPUs * memoryPerCore
297
301
  auser = self.getUserName()
@@ -26,6 +26,7 @@ import sys
26
26
  import unittest
27
27
 
28
28
  import lsst.utils.tests
29
+ from lsst.ctrl.execute.allocator import Allocator
29
30
  from lsst.ctrl.execute.allocatorParser import AllocatorParser
30
31
  from lsst.ctrl.execute.condorConfig import CondorConfig
31
32
  from lsst.ctrl.execute.namedClassFactory import NamedClassFactory
@@ -77,6 +78,25 @@ class SlurmPluginTest(lsst.utils.tests.TestCase):
77
78
  self.assertTrue(self.config)
78
79
  self.assertTrue(condor_info_file)
79
80
 
81
+ platform = "test1"
82
+ configuration = CondorConfig()
83
+ p1 = os.path.join("tests/testfiles", "config_execconfig.py")
84
+ execConfigName = p1
85
+ configuration.load(execConfigName)
86
+ scheduler: Allocator = schedulerClass(platform, args, configuration, condor_info_file)
87
+ self.assertTrue(scheduler)
88
+
89
+ autocpus = scheduler.getAutoCPUs()
90
+ minautocpus = scheduler.getMinAutoCPUs()
91
+ cpus = scheduler.getCPUs()
92
+ nodes = scheduler.getNodes()
93
+ wallclock = scheduler.getWallClock()
94
+ self.assertEqual(autocpus, 16)
95
+ self.assertEqual(minautocpus, 15)
96
+ self.assertEqual(cpus, 12)
97
+ self.assertEqual(nodes, 64)
98
+ self.assertEqual(wallclock, "00:30:00")
99
+
80
100
 
81
101
  if __name__ == "__main__":
82
102
  lsst.utils.tests.init()
@@ -0,0 +1,6 @@
1
+ # flake8: noqa
2
+ config.platform.nodeSetRequired = False
3
+ config.platform.localScratch = "/condor_scratch"
4
+ config.platform.fileSystemDomain = "slac.stanford.edu"
5
+ config.platform.scheduler = "slurm"
6
+ config.platform.peakcpus = 120