-
Notifications
You must be signed in to change notification settings - Fork 0
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
MPI 4.0 API #28
MPI 4.0 API #28
Conversation
Thanks. I'll test later today. |
something you did broke MacOS builds...
|
This looks like some fundamental issue with the MPICH shared library In [1]: import ctypes
In [2]: ctypes.CDLL("/opt/homebrew/Cellar/mpich/4.1.2/lib/libpmpi.dylib")
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
Cell In[2], line 1
----> 1 ctypes.CDLL("/opt/homebrew/Cellar/mpich/4.1.2/lib/libpmpi.dylib")
File /opt/homebrew/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ctypes/__init__.py:376, in CDLL.__init__(self, name, mode, handle, use_errno, use_last_error, winmode)
373 self._FuncPtr = _FuncPtr
375 if handle is None:
--> 376 self._handle = _dlopen(self._name, mode)
377 else:
378 self._handle = handle
OSError: dlopen(/opt/homebrew/Cellar/mpich/4.1.2/lib/libpmpi.dylib, 0x0006): symbol not found in flat namespace '_ADIOI_Datarep_head'
|
The issue does not exist in |
Yes, the issue most likely comes from the change that removes explicit linking on the MPI libraries. You have to grant me that a plain and basic |
I think the issue comes from using The PMPI lib is not self contained, it depends on symbols the MPI library, even on "MPI" symbols! And that does not sound correct. Therefore, IMHO I believe my change here just unmasked and issue in MPICH. Looks like ROMIO stuff is not landing in the proper library. @hzhou What do you think?
|
I agree with your insight. It is on my agenda to redo the ROMIO bindings. |
cc @raffenet |
For example, Fedora users would write: # Makefile.local OMPICC=/usr/lib64/openmpi/bin/mpicc OMPICXX=/usr/lib64/openmpi/bin/mpicxx MPICHCC=/usr/lib64/mpich/bin/mpicc MPICHCXX=/usr/lib64/mpich/bin/mpicxx
bd6ec41
to
f6b7292
Compare
With these changes, mpi4py is able to build cleanly and some tests pass.