-
Notifications
You must be signed in to change notification settings - Fork 867
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
Portals4: Compiler Error due to missing PtlHandleIsEqual #12705
Comments
Hi @nbartelheimer. What compiler and version are you using? I typically use clang 16.0.6. When using the Sandia reference implementation, the v5.0.x portals4 components build error free. There are some warnings that I will fix ASAP. Note that there is currently a problem with the portals4 components on the main branch. I'm working on fixing that also. The portals4 components currently use a mix of |
Hi @tkordenbrock, |
I will test with gcc 12.3.0, but I expect that the problem is with the underlying types. In the reference implementation, I am going to reopen this issue until I can push the |
I agree, it is a problem of the underlying types. typedef struct {
void *handle;
} ptl_handle_any_t; I'm sorry this is my first issue, sure I will test the fixes once they are ready. |
@nbartelheimer I opened a PR (#12713) against the |
@tkordenbrock I applied your patch to the main branch. It looks like some spots are missing. I created Hope this is helpful. |
Gak! I missed the constant first style. And those 0s. Thanks for the patch. I'll get these reviewed and merged ASAP. |
No worries, maybe I should have sent a patch in the first place. Might have been easier. Thanks for your help! |
@nbartelheimer This has been merged into the v5.0.x branch, so it will be in the upcoming v5.0.6 release. |
Background information
I use OpenMPI and its Portals4 implementation to evaluate the performance of different library im working on.
What version of Open MPI are you using? (e.g., v4.1.6, v5.0.1, git branch name and hash, etc.)
OpenMPI v.5.0.5
Describe how Open MPI was installed (e.g., from a source/distribution tarball, from a git clone, from an operating system distribution package, etc.)
OpenMPI was installed from a source / distribution tarball
Please describe the system on which you are running
OS: Rocky Linux 8.9 (Green Obsidian)
CPU: Intel(R) Xeon(R) Gold 5122 CPU @ 3.60GHz
Network type: BXIv2
Details of the problem
When I try to compile OpenMPI with the
--with-portals4
option, I receive a compiler error regarding the comparison of two Portals4 handles. For example in this code snippet (opal/mca/btl/portals4/btl_portals4.c +490):Portals4 specification proposes the use of
PtlHandleIsEqual()
in order to compare two handles.Since I'm working with the BXIv2 interconnect, which is more or less a hardware implementation of Portals4, I'm not sure if this error also arises when using the Portals4 InfiniBand reference implementation from Sandia.
There are several positions in the Portals4 code base where I ran into the same issue. I have modified all the necessary parts so that they meet the Portals4 specification.
The fix for the snippet from above would look like this:
After my modification I was able to compile OpenMPI and observe decent performance numbers on the OMB.
Can someone maybe comment on my observation and the suggested fix?
The text was updated successfully, but these errors were encountered: