-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Engine configuration utility #1828
Conversation
I am somewhat struggling with figuring out a simple way to propagate the configuration.
@Adaickalavan @saulfield Thoughts? |
DiscussionWe had some discussion regarding this issue.
This seems viable, as it may allow us to make the engine configuration propagate across machines if a program propagates across workers (using something like With that said, any user using a cluster management system could just inline the configuration using environment variables.
This option is likely too clunky and there is some question about performance. We can enforce sending over the configuration by accessing workers only through utilities we provide. If a user decides not to use a utility they may get confused as to why the engine configuration does not carry over.
This is probably the most intensive solution, because we would need to provide a central or distributed location for the processes to find the engine settings. We could use an event processing platform like
This is very similar to option 2, it still requires us to route the user through an engine utility but it ends up being perhaps even more mysterious to end users.
This seems like the most reasonable option for now. The exact implementation will resolve each of the configuration in this priority:
This is viable regardless of other features. It allows us in the case of DirectionWe decided to go with option 5 and combine it with option 2. At a later date we may want to bring in option 6. |
a49f476
to
1394667
Compare
smarts/core/__init__.py
Outdated
|
||
import numpy as np | ||
|
||
import smarts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This caused an odd bug. It could not resolve the difference between smarts
and smarts.core.smarts
. I believe should change smarts.core.smarts
to smarts.core.engine
.
docs/index.rst
Outdated
api/modules.rst | ||
sim/configuration.rst |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe keep files under a given toctree in the same folder?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is hard to find where to put this since api/*
is generated dynamically but environment variables and configuration files are related to sim
but are relevant to API. Maybe not relevant enough. I am going to move it to resources.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am thinking resources
is not quite the right spot for it either so I am moving it to next steps.
Do check whether the docs build properly without any warnings before merging. |
Co-authored-by: adai <[email protected]>
smarts/core/smarts.py
Outdated
"max_pybullet_freq", | ||
default=MAX_PYBULLET_FREQ, | ||
cast=int, | ||
), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think pulling this out as a separate variable would make the expression more readable.
Co-authored-by: Saul Field <[email protected]>
This adds an engine configuration utility to SMARTS.