-
Notifications
You must be signed in to change notification settings - Fork 868
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
singleton mode with v4.x fails when MCA binding policy is "numa" on AMD hardware #11097
Comments
I will have a look this week |
@jngrad first, I want to confirm that I can reproduce the issue with v4.1.x. I have however two question before deciding on the path forward on this. First, I think the issue is not present in the upcoming 5.0.x branch. It is a bit difficult to evaluate since the options are not necessarily directly applicable between 4.1.x and 5.0.x, but running the following command line works for me with v5.0.x
Would you have a way to compile and test Open MPI v5.0.x and see whether this works for you and does what you would expect it to do? Second, I would like to understand a bit more about the use-case that you are targeting, what is the goal in applying mapping/binding to a sequential singleton process? In my mind process mapping/binding is important for communication between processes, it is not entirely clear to me what the benefit is for a sequential process, and I would like to understand this a bit better. |
I believe that won't do anything - the correct MCA param is However, it will definitely work either way for a singleton as the singleton no longer spins off a copy of |
@rhc54 I tried both. When using mpirun combined with setting rmaps_base_verbose I saw the same impact in terms of the output generated, whether using the OMPI or the PRTE version of the variable name |
Sounds like someone setup the OMPI personality to "remap" the name if it detects that it is a PRTE framework (might even have been me - been a long time). 🤷♂️ Regardless, it won't have any impact on the problem you are pursuing (at least, for OMPI v5) |
so bottom line is, the problem does not exist in 5.0? |
Shouldn't, no - if they call "comm_spawn", then we will fork/exec a copy of "mpirun", so that might make it appear again. Hopefully, the default binding policy won't be a problem (it is different in v5), but you might want to check it. |
Thank you for looking into this.
Open MPI v5.0.x seems to work as expected. I was able to reproduce the bug on v4.1.2 in a Fedora 36 Docker container. I then built Open MPI v5.0.x (9c2418e) there and ran the MWE with both the
Our application is written as a Python package using Cython to bind to the MPI-parallel C++ core. The singleton mode is used to get an interactive Python prompt. At some point in time, all our NUMA workstations got configured to export environment variables Our users never reported this issue to us in 2 years, so our small team is probably the only one that ran into this use case. At the moment, we have reconfigured our workstations to bind to |
Just to clarify: the reason those envars didn't cause a problem is that OMPI v5 is ignoring them for the singleton. Prior OMPI release series attempt to self-bind the singleton according to the directive in the envar - OMPI v5 does not. This is an important point, so let me state it clearly - singleton procs are not bound by OMPI v5. Only the child jobs created by calling Please also note that binding to "NUMA" for these advanced multi-chip packages is problematic and likely not your best choice. NUMA domains aren't that clearly defined any more, and binding to "package" (or "socket" in older OMPI's) is generally recommended in its place. @edgargabriel can probably give you more info and/or get you better direction. |
This is in the "to do" list for issue #10480, which I am planning to close, in favor of breaking it up into individual issues. For now, I'll assign the same tags to this issue as #10480, but I don't understand the action to take on this issue. Can @edgargabriel @jngrad or @rhc54 please comment to indicate if or what any action is necessary before closing this issue? |
Please remove those labels if they are not appropriate here. |
@qkoziol From my side: we configured our job scheduler to use |
I would suggest to close this ticket. We can always reopen itI the issue persists. |
Background information
What version of Open MPI are you using?
v4.1.2
Describe how Open MPI was installed
From Ubuntu 22.04 package manager:
libopenmpi-dev
4.1.2-2ubuntu1 andhwloc
2.7.0-2.Also reproducible when building from sources in a Docker container:
dpkg-buildpackage commands (click to expand)
Please describe the system on which you are running
Details of the problem
On AMD Ryzen and AMD EPYC, the MCA binding policy "numa" fails to set the processor affinity and generates a fatal error when running the executable in singleton mode. Running the executable with
mpiexec -n 1
fixes the error.MWE:
Error message:
The issue also existed on v4.0.3, but it could be fixed with a binary patch that overrode the value of
HWLOC_OBJ_NODE=0xd
by0xc
at orte/mca/ess/base/ess_base_fns.c#L242 in thelibopen-rte.so
file. This is no longer possible in v4.1.2.The text was updated successfully, but these errors were encountered: