lsst-ctrl-bps-parsl 30.0.0__py3-none-any.whl → 30.0.0rc1__py3-none-any.whl
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.
- lsst/ctrl/bps/parsl/job.py +8 -17
- lsst/ctrl/bps/parsl/site.py +6 -4
- lsst/ctrl/bps/parsl/sites/__init__.py +0 -1
- lsst/ctrl/bps/parsl/sites/ccin2p3.py +0 -2
- lsst/ctrl/bps/parsl/sites/local.py +0 -5
- lsst/ctrl/bps/parsl/sites/slurm.py +0 -5
- lsst/ctrl/bps/parsl/sites/torque.py +0 -5
- lsst/ctrl/bps/parsl/sites/work_queue.py +2 -2
- lsst/ctrl/bps/parsl/version.py +1 -1
- lsst/ctrl/bps/parsl/workflow.py +1 -1
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/METADATA +1 -1
- lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/RECORD +26 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/WHEEL +1 -1
- lsst_ctrl_bps_parsl-30.0.0.dist-info/RECORD +0 -26
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/LICENSE +0 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/top_level.txt +0 -0
- {lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/zip-safe +0 -0
lsst/ctrl/bps/parsl/job.py
CHANGED
|
@@ -237,18 +237,11 @@ class ParslJob:
|
|
|
237
237
|
("request_cpus", "cores", None),
|
|
238
238
|
("request_disk", "disk", None), # Both are MB
|
|
239
239
|
("request_walltime", "running_time_min", None), # Both are minutes
|
|
240
|
-
("priority", "priority", None),
|
|
241
240
|
):
|
|
242
241
|
value = getattr(self.generic, bps_name)
|
|
243
|
-
if
|
|
242
|
+
if scale is not None:
|
|
244
243
|
value *= scale
|
|
245
|
-
|
|
246
|
-
# `priority=None`, but it can be omitted. By contrast,
|
|
247
|
-
# `WorkQueueExecutor` needs to have the other resource
|
|
248
|
-
# requests provided, but `priority` can be omitted, so we
|
|
249
|
-
# need special handling for `priority`.
|
|
250
|
-
if (parsl_name == "priority" and value is not None) or parsl_name != "priority":
|
|
251
|
-
resources[parsl_name] = value
|
|
244
|
+
resources[parsl_name] = value
|
|
252
245
|
return resources
|
|
253
246
|
|
|
254
247
|
def get_future(
|
|
@@ -256,7 +249,7 @@ class ParslJob:
|
|
|
256
249
|
app: BashApp,
|
|
257
250
|
inputs: list[Future],
|
|
258
251
|
command_prefix: str | None = None,
|
|
259
|
-
|
|
252
|
+
add_resources: bool = False,
|
|
260
253
|
) -> Future | None:
|
|
261
254
|
"""Get the parsl app future for the job.
|
|
262
255
|
|
|
@@ -272,8 +265,10 @@ class ParslJob:
|
|
|
272
265
|
command_prefix : `str`, optional
|
|
273
266
|
Bash commands to execute before the job command, e.g., for setting
|
|
274
267
|
the environment.
|
|
275
|
-
|
|
276
|
-
|
|
268
|
+
add_resources : `bool`
|
|
269
|
+
Add resource specification when submitting the job? This is only
|
|
270
|
+
appropriate for the ``WorkQueue`` executor; other executors will
|
|
271
|
+
raise an exception.
|
|
277
272
|
|
|
278
273
|
Returns
|
|
279
274
|
-------
|
|
@@ -288,11 +283,7 @@ class ParslJob:
|
|
|
288
283
|
command = self.evaluate_command_line(command)
|
|
289
284
|
if command_prefix:
|
|
290
285
|
command = command_prefix + "\n" + command
|
|
291
|
-
resources = (
|
|
292
|
-
{k: v for k, v in self.get_resources().items() if k in resource_list}
|
|
293
|
-
if resource_list is not None
|
|
294
|
-
else {}
|
|
295
|
-
)
|
|
286
|
+
resources = self.get_resources() if add_resources else {}
|
|
296
287
|
|
|
297
288
|
# Add a layer of indirection to which we can add a useful name.
|
|
298
289
|
# This name is used by parsl for tracking workflow status.
|
lsst/ctrl/bps/parsl/site.py
CHANGED
|
@@ -56,14 +56,16 @@ class SiteConfig(ABC):
|
|
|
56
56
|
----------
|
|
57
57
|
config : `BpsConfig`
|
|
58
58
|
BPS configuration.
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
add_resources : `bool`
|
|
60
|
+
Add resource specification when submitting the job? This is only
|
|
61
|
+
appropriate for the ``WorkQueue`` executor; other executors will
|
|
62
|
+
raise an exception.
|
|
61
63
|
"""
|
|
62
64
|
|
|
63
|
-
def __init__(self, config: BpsConfig,
|
|
65
|
+
def __init__(self, config: BpsConfig, add_resources: bool = False):
|
|
64
66
|
self.config = config
|
|
65
67
|
self.site = self.get_site_subconfig(config)
|
|
66
|
-
self.
|
|
68
|
+
self.add_resources = add_resources
|
|
67
69
|
|
|
68
70
|
@staticmethod
|
|
69
71
|
def get_site_subconfig(config: BpsConfig) -> BpsConfig:
|
|
@@ -122,8 +122,6 @@ class Ccin2p3(SiteConfig):
|
|
|
122
122
|
]
|
|
123
123
|
|
|
124
124
|
def __init__(self, *args, **kwargs):
|
|
125
|
-
# Have BPS-defined resource requests for each job passed to executor.
|
|
126
|
-
kwargs["resource_list"] = ["priority"]
|
|
127
125
|
super().__init__(*args, **kwargs)
|
|
128
126
|
self._account = get_bps_config_value(self.site, ".account", str, self.DEFAULT_ACCOUNT)
|
|
129
127
|
self._scheduler_options = get_bps_config_value(
|
|
@@ -47,11 +47,6 @@ class Local(SiteConfig):
|
|
|
47
47
|
``site.<computeSite>.cores`` (`int`).
|
|
48
48
|
"""
|
|
49
49
|
|
|
50
|
-
def __init__(self, *args, **kwargs):
|
|
51
|
-
# Have BPS-defined resource requests for each job passed to executor.
|
|
52
|
-
kwargs["resource_list"] = ["priority"]
|
|
53
|
-
super().__init__(*args, **kwargs)
|
|
54
|
-
|
|
55
50
|
def get_executors(self) -> list[ParslExecutor]:
|
|
56
51
|
"""Get a list of executors to be used in processing.
|
|
57
52
|
|
|
@@ -80,11 +80,6 @@ class Slurm(SiteConfig):
|
|
|
80
80
|
script (each line usually starting with ``#SBATCH``).
|
|
81
81
|
"""
|
|
82
82
|
|
|
83
|
-
def __init__(self, *args, **kwargs):
|
|
84
|
-
# Have BPS-defined resource requests for each job passed to executor.
|
|
85
|
-
kwargs["resource_list"] = ["priority"]
|
|
86
|
-
super().__init__(*args, **kwargs)
|
|
87
|
-
|
|
88
83
|
def make_executor(
|
|
89
84
|
self,
|
|
90
85
|
label: str,
|
|
@@ -75,11 +75,6 @@ class Torque(SiteConfig):
|
|
|
75
75
|
script (each line usually starting with ``#PBS``).
|
|
76
76
|
"""
|
|
77
77
|
|
|
78
|
-
def __init__(self, *args, **kwargs):
|
|
79
|
-
# Have BPS-defined resource requests for each job passed to executor.
|
|
80
|
-
kwargs["resource_list"] = ["priority"]
|
|
81
|
-
super().__init__(*args, **kwargs)
|
|
82
|
-
|
|
83
78
|
def make_executor(
|
|
84
79
|
self,
|
|
85
80
|
label: str,
|
|
@@ -59,7 +59,7 @@ class WorkQueue(SiteConfig):
|
|
|
59
59
|
Parameters forwarded to base class constructor.
|
|
60
60
|
**kwargs : `~typing.Any`
|
|
61
61
|
Keyword arguments passed to base class constructor, augmented by
|
|
62
|
-
the ``
|
|
62
|
+
the ``add_resources`` argument.
|
|
63
63
|
|
|
64
64
|
Notes
|
|
65
65
|
-----
|
|
@@ -79,7 +79,7 @@ class WorkQueue(SiteConfig):
|
|
|
79
79
|
|
|
80
80
|
def __init__(self, *args, **kwargs):
|
|
81
81
|
# Have BPS-defined resource requests for each job passed to work_queue.
|
|
82
|
-
kwargs["
|
|
82
|
+
kwargs["add_resources"] = True
|
|
83
83
|
super().__init__(*args, **kwargs)
|
|
84
84
|
|
|
85
85
|
def make_executor(
|
lsst/ctrl/bps/parsl/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "30.0.
|
|
2
|
+
__version__ = "30.0.0rc1"
|
lsst/ctrl/bps/parsl/workflow.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps-parsl
|
|
3
|
-
Version: 30.0.
|
|
3
|
+
Version: 30.0.0rc1
|
|
4
4
|
Summary: Parsl-based plugin for lsst-ctrl-bps.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
lsst/ctrl/bps/parsl/__init__.py,sha256=gU6EMvA--BVorVVMw_4i9-F_kran4V-25WzAeLJRsqE,1466
|
|
2
|
+
lsst/ctrl/bps/parsl/configuration.py,sha256=Dq9hZW0fnmNHZoD_eAH3u2Dk0sNCZQ9NuSnFjTzFEi4,5731
|
|
3
|
+
lsst/ctrl/bps/parsl/environment.py,sha256=xg2_WM-H77KOdn0M_Wi2sE7h7aqTSV1uxSiFHJmnu5w,2250
|
|
4
|
+
lsst/ctrl/bps/parsl/job.py,sha256=O95H0_f-S92xgjNQeDBCzDtQkiXKLK8uzFcx6cm-AVA,11728
|
|
5
|
+
lsst/ctrl/bps/parsl/service.py,sha256=mKM6C4mVTr3n0PsZWf5w0zc_o6qBiroQA1YfEgmde5s,3951
|
|
6
|
+
lsst/ctrl/bps/parsl/site.py,sha256=L_wAF7qwMkcIChD0KTrIokZOD8E47ck-Qixf8L95sPk,8708
|
|
7
|
+
lsst/ctrl/bps/parsl/version.py,sha256=vSgpHsF0PG5ox9cJDNTmDJ8a4r5c8EKOc2gxM3iszgs,52
|
|
8
|
+
lsst/ctrl/bps/parsl/workflow.py,sha256=s6ayWoZ1CX2_mdFJvksiwUNChy9pfloxZ6JU87bfuLA,11435
|
|
9
|
+
lsst/ctrl/bps/parsl/sites/__init__.py,sha256=w_IOW3_lBguS5k3U9R925wCENgUhu3407FSw7ExrKus,1441
|
|
10
|
+
lsst/ctrl/bps/parsl/sites/ccin2p3.py,sha256=UD86cgS9ffJaz__zs4PQmHQqE7B4jhMWAerViCAt7Gk,14597
|
|
11
|
+
lsst/ctrl/bps/parsl/sites/local.py,sha256=El8U6XfeYBbfHyg-7R3a1gtWX1IBLq_xZvKXyjiAQIk,2622
|
|
12
|
+
lsst/ctrl/bps/parsl/sites/nersc.py,sha256=obUiaHgHZj_23PIrYdihUnb8eoEJMs288wHy84jIzaQ,4549
|
|
13
|
+
lsst/ctrl/bps/parsl/sites/princeton.py,sha256=F_dHTN5sm2NM2VjtJoWbtKfhkowBocIs5F7eSgjxc-0,5575
|
|
14
|
+
lsst/ctrl/bps/parsl/sites/slac.py,sha256=IN04Nx0YvOl-GN33MB05zT0XG3IQ91rXri_EHz_dzTs,3893
|
|
15
|
+
lsst/ctrl/bps/parsl/sites/slurm.py,sha256=6aA4cJSS1nSUydKZ1o-4xKDydgOoictWBl9mJPhB3vY,12822
|
|
16
|
+
lsst/ctrl/bps/parsl/sites/torque.py,sha256=gP8X-u3oH6P79kw2Fj_Mx3NqpVSQmqSHMT1tgxiU7Yc,9621
|
|
17
|
+
lsst/ctrl/bps/parsl/sites/work_queue.py,sha256=QpeGjd7o0FpnXRrbrxTNSXcfkTHclBKv6vMPPRRgfd8,7040
|
|
18
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/licenses/COPYRIGHT,sha256=M5ylfMNsihIJcPySQ5ZFjec4zROSZdlNN9oGHBhu7WM,181
|
|
19
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
20
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
21
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
22
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/METADATA,sha256=I6pnnR8BGssGOlPwN8IN8l1MOVinR5rP_ijyhhI3Ya0,2951
|
|
23
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
24
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
25
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
26
|
+
lsst_ctrl_bps_parsl-30.0.0rc1.dist-info/RECORD,,
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
lsst/ctrl/bps/parsl/__init__.py,sha256=gU6EMvA--BVorVVMw_4i9-F_kran4V-25WzAeLJRsqE,1466
|
|
2
|
-
lsst/ctrl/bps/parsl/configuration.py,sha256=Dq9hZW0fnmNHZoD_eAH3u2Dk0sNCZQ9NuSnFjTzFEi4,5731
|
|
3
|
-
lsst/ctrl/bps/parsl/environment.py,sha256=xg2_WM-H77KOdn0M_Wi2sE7h7aqTSV1uxSiFHJmnu5w,2250
|
|
4
|
-
lsst/ctrl/bps/parsl/job.py,sha256=WHkH4mhbnKhAGO_i8C612pRuUFzU0SJ8YghEoN920QI,12237
|
|
5
|
-
lsst/ctrl/bps/parsl/service.py,sha256=mKM6C4mVTr3n0PsZWf5w0zc_o6qBiroQA1YfEgmde5s,3951
|
|
6
|
-
lsst/ctrl/bps/parsl/site.py,sha256=1hFRB-475txuOR-jaztMglnjBxy9Ca2gZtI8Ptrvv2g,8614
|
|
7
|
-
lsst/ctrl/bps/parsl/version.py,sha256=--s7nTlXrHcUGZfOJGTF8_DCdIUv7QPWWD7as9kq0iY,49
|
|
8
|
-
lsst/ctrl/bps/parsl/workflow.py,sha256=9vtPa_bAX02aCZzoEG0bs2e0TWhNRm5RMiJ7BoCxBcE,11435
|
|
9
|
-
lsst/ctrl/bps/parsl/sites/__init__.py,sha256=J9HpVUqqlIkve0tIEELPbicY81vz_liZKpBUrTA1D2Q,1464
|
|
10
|
-
lsst/ctrl/bps/parsl/sites/ccin2p3.py,sha256=_H_vsq-WkO5QQRuTi8w2cv49ArPO7J-lxHu5c-exsgU,14722
|
|
11
|
-
lsst/ctrl/bps/parsl/sites/local.py,sha256=s6NPuSbn_esI9rucQrpbg-y9R3nROBYVTk30KU99d7o,2831
|
|
12
|
-
lsst/ctrl/bps/parsl/sites/nersc.py,sha256=obUiaHgHZj_23PIrYdihUnb8eoEJMs288wHy84jIzaQ,4549
|
|
13
|
-
lsst/ctrl/bps/parsl/sites/princeton.py,sha256=F_dHTN5sm2NM2VjtJoWbtKfhkowBocIs5F7eSgjxc-0,5575
|
|
14
|
-
lsst/ctrl/bps/parsl/sites/slac.py,sha256=IN04Nx0YvOl-GN33MB05zT0XG3IQ91rXri_EHz_dzTs,3893
|
|
15
|
-
lsst/ctrl/bps/parsl/sites/slurm.py,sha256=5J0djEHyKZ0CXFNXY9zmL-m6e9VLcNc6Sd6mCwPYzgs,13031
|
|
16
|
-
lsst/ctrl/bps/parsl/sites/torque.py,sha256=lNAh8-yZgWfsDRD7ryF0OwNV64tBv_7tCvs_xPHizNs,9830
|
|
17
|
-
lsst/ctrl/bps/parsl/sites/work_queue.py,sha256=H6tjm8T5TTh1h5-vd7bR2yv-aFJc6hzEqYRnSnXMKwk,7095
|
|
18
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/licenses/COPYRIGHT,sha256=M5ylfMNsihIJcPySQ5ZFjec4zROSZdlNN9oGHBhu7WM,181
|
|
19
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
20
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
21
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
22
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/METADATA,sha256=7WIfsQEIYfqptMhiRJtPloa3lorLrHVcD_rhjirNLpE,2948
|
|
23
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
24
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
25
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
26
|
-
lsst_ctrl_bps_parsl-30.0.0.dist-info/RECORD,,
|
{lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/COPYRIGHT
RENAMED
|
File without changes
|
{lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps_parsl-30.0.0.dist-info → lsst_ctrl_bps_parsl-30.0.0rc1.dist-info}/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|