-
Notifications
You must be signed in to change notification settings - Fork 37
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
Detect OpenMPI Use #186
Detect OpenMPI Use #186
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.
Still working through this one, but heres a couple thoughts:
- Intel MPI is a good test case here. It's version information returns
Intel(R) MPI Library for Linux* OS, Version 2019 Update 8 Build 20200624 (id: 4f16ad915)
Copyright 2003-2020, Intel Corporation.
intel mpirun
is installed on osprey
- So with this approach, would we have a separate base class or just a separate class for the intel mpi settings. I'm guessing a separate base class since
[spartee@osprey 18:06:11 ~]$ mpirun --version
Intel(R) MPI Library for Linux* OS, Version 2019 Update 8 Build 20200624 (id: 4f16ad915)
Copyright 2003-2020, Intel Corporation.
[spartee@osprey 18:06:15 ~]$ mpiexec --version
Intel(R) MPI Library for Linux* OS, Version 2019 Update 8 Build 20200624 (id: 4f16ad915)
Copyright 2003-2020, Intel Corporation.
If this is the case, I think a ticket for implementing this for intel MPI might be in order.
- I like the idea of warnings instead of errors. I'm sure there is some case that we aren't expecting (like a site wrapping the mpirun command themselves, or something similar)
Lastly, we still need to make sure that all these can be detected in the create_run_settings
function. I don't see any changes to that here so I'm wondering how that will work.
Codecov Report
@@ Coverage Diff @@
## develop #186 +/- ##
===========================================
+ Coverage 81.50% 81.80% +0.30%
===========================================
Files 57 57
Lines 2968 2973 +5
===========================================
+ Hits 2419 2432 +13
+ Misses 549 541 -8
|
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.
Couple things:
- Does this work with
create_run_settings
? Most of your tests seem to manually instantiate the instance. - Orchetrator? It doesn't have to for the purposes of this PR, but lets make sure to put a ticket in the backlog if it doesn't
- lastly, update the documentation
specifically:
- https://www.craylabs.org/docs/api/smartsim_api.html#settings
- https://www.craylabs.org/docs/launchers.html (could probably use a update in general)
- and the index for the api
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 agree with @Spartee, since we are editing these files (and these classes), let's make sure we have tests for create_run_settings
with different MPI flavors (which will be run if the selected launcher command is available).
Addressing review comments in no particular order:
|
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.
LGTM! Great work
Adds new run settings classes for using different OpenMPI executables (mpiexec, orterun). Because the executables share runtime arguments with mpirun much the functionality has be transfered to a base class that all OpenMPI run settings inherit from. Adds tests and docs updates to reflect changes. [ committed by @MattToast ] [ reviewed by @Spartee @al-rigazzi ]
This PR:
_OpenMPISettings
base classMpirunSettings
,MpiexecSettings
,OrterunSettings
which inherit from the base settingsSSUnsupportedError
error is raisedImportant consideration for reviewers:
While the original issue suggests raising an exception if an unsupported MPI executable is found, it may be more pragmatic to instead log a warning/error message.
This way if user was using
MpirunSettings
with a non-OpenMPI version ofmpirun
, they could continue using the new implementation with relatively few problems. This also means we would not break backward compatibility, while still providing users with enough information to explain whyMpirunSettings
may not be working as they expected.Feedback on this potential implementation change in particular would be appreciated.