-
Notifications
You must be signed in to change notification settings - Fork 42
Refactor Systems to Initialize Using Dictionaries #658
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
Conversation
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.
We want these refactored into the system.py, correct?
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.
Probably. @becker33, what do you think?
|
I've noticed how this is currently done in develop, some files have headers and some do not: Case 1
Case 2
Case 3No headers
Shouldn't this be consistent? |
pearce8
left a comment
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.
@michaelmckinsey1 I added more tasks in this PR. Take a look and let me know what is already tackled - vs. needs to be added.
2a5bf2f to
d61d95d
Compare
|
|
06fe351 to
5f2eafc
Compare
6f00331 to
6a7b083
Compare
b186ed4 to
b625cc7
Compare
michaelmckinsey1
left a comment
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.
benchpark system external uses spack external find. for compilers, i.e. spack compiler find should this be the same command as external packages (benchpark system external) or its own command?
c28d183 to
01261cb
Compare
bff887b to
2ac78f7
Compare
Refactor the way systems are initialized to be similar to how experiments are initialized, using dictionaries instead of multi-line strings and yaml files.
Addresses Use dictionary to write yaml in system.py (similar to experiment.py) #654
Write a python utility to read in file1 and file2 into a dictionary (does file1 get deprecated when we start using compilers as packages @becker33 ??)
yaml.safe_load(file).Adding/updating packages docs
benchpark system external llnl-cluster cluster=rubyHow to handle multiple versions of available libraries?
Write python utility to write out a dictionary to yaml (does the experiment example write a temporary file in a workspace?)
yaml.dumpwill do this.What is needed in bin to use it this way? Look at the experiment as an example.
Update all
system.py's which have yaml files storedFor packages stored as a string right now, move the string to a file first?Packages stored as strings converted to dictionaries in-place.Create script to validate generated systems are the same as previous -- for the system using yaml files, this may be a yaml to dictionary comparison, which can also be useful for knowing when the package dict on the system needs to be updated.

Adding/modifying a system (docs: Adding a System)
Done (Migrate information in yamls
systems/x/*.yamltosystem.py)Adding/modifying core functionality, CI, or documentation:
lib/benchpark/system/pyandlib/benchpark/cmd/system.py