Closed hjoliver closed 7 years ago
(@dpmatthews and I discussed something like this a few weeks ago, but you have beaten us to raise an issue!)
Is this a desire to allow a suite to be portable to different batch systems within a site, or is it to allow a suite to be portable to different sites? The proposed solution will work for the former, but will not be enough for the latter because:
class
or PBS's -q
are likely to be different on different sites.I was thinking within a site, if you happen to have access to several batch schedulers. However, if we can think of a solution that would make it easier to switch between sites, that would be great. I guess that currently requires heavy use of Jinja2 switching and probably include-files.
Maybe we really need something like this?:
[runtime]
[[foo]]
script = run-foo
[[[SITE-A]]]
# job submission method, directives, hosting, ... for SITE-A
[[[SITE-B]]]
# etc.
That would be a difficult backward compatibility problem, however.
That would be a difficult backward compatibility problem, however.
We can continue to support the current interface like this:
[runtime]
[[task1]]
# Continue to allow non-site-specific stuffs?
script = command
[[[job submission]]]
method = background
[[[SITE-A]]]
script = command-only-at-site-a
[[[[job submission]]]]
method = pbs
[[[[remote]]]]
host = hpc-at-site-a
[[[SITE-B]]]
# ... and so on
With the new parsing that came online a while back allowing suite.rc snippets, there's a really (I think) clean solution to this by refactoring out the specific platform specific information into a separate file. I've been using this to move between systems and it's worked well. Here's what I did:
inc
directory and then have the platform-specific suite.rc snippets in there.platform.rc
file which is then included in the main suite.rc
For me, I didn't need to worry about switching the entire scheduler but I did need to modify queue information as well as the specific resource requests.
[meeting]
Suite portability related to #1829.
Superceded by #2415
The current
suite.rc
spec doesn't make it easy to switch between different batch systems, because there is only onedirectives
section, which is unlikely to be portable between different job submission methods:It would be better to have something like this: