Add -DRIVERHOST and -SUBHOST support for distributed Schrödinger jobs#14
Open
chrisdag wants to merge 1 commit into
Open
Add -DRIVERHOST and -SUBHOST support for distributed Schrödinger jobs#14chrisdag wants to merge 1 commit into
chrisdag wants to merge 1 commit into
Conversation
Add optional driverhost and subhost parameters to the Schrodinger base class, enabling separate host routing for driver/coordinator processes and compute-intensive subjobs. This follows Schrodinger Job Control conventions where -DRIVERHOST overrides -HOST for the driver and -SUBHOST overrides -HOST for subjobs. When neither parameter is set, behavior is identical to the current code (fully backward compatible). Resolves MolecularAI#13
Author
|
Note on test coverage: The The new parameters follow the exact same pattern as the existing Happy to add a mock-based unit test for the command construction logic if that would be preferred. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BODY:
Summary
Adds optional
driverhostandsubhostparameters to theSchrodingerbase class inmaize/steps/mai/common/schrodinger.py, enabling separate host routing for the driver/coordinator process and compute-intensive subjobs in distributed Schrödinger jobs.Resolves #13.
Motivation
Schrödinger's Job Control supports three host-routing flags for distributed jobs (Glide with
-NJOBS > 1, FEP+, IFD, etc.):-HOST— sets both driver and subjob hosts (current maize behavior)-DRIVERHOST— overrides for the lightweight coordinator/driver process-SUBHOST— overrides for compute-intensive subjobsOn HPC clusters with dedicated driver partitions (a standard Schrödinger deployment pattern — their sample
hosts.ymlships adriverentry), the driver process wastes a full compute slot when only-HOSTis available. This matters on small partitions where every slot counts.Changes
Schrodingerclass:driverhostandsubhost(with docstrings referencing the Schrödinger docs)-DRIVERHOSTand-SUBHOSTalongside-JOBNAME,-HOST,-NJOBS-NJOBSinjection, conditionally emits-DRIVERHOSTand/or-SUBHOSTwhen the parameters are setBackward Compatibility
When
driverhostandsubhostare not set (the default), the command construction is identical to the current code. No existing workflows are affected.Testing
Validated on an AWS ParallelCluster (pcluster 3.11.1, Ubuntu 22.04) running Schrödinger Suite 2025-4 with REINVENT4 and Maize 0.9.4:
n_jobs=4) pipeline confirmed working with-HOSTrouting to a remote Job ServerSchrödinger Documentation Reference
jobs/running_jobs_command_line_host_options.htm, 2025-4)jobs/distributed_jobs.htm, 2025-4) — Table 1 confirms Glide and LigPrep use "Standard" driver location