Skip to content
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

Python 3.13 compatibility and mpi4py 3 #555

Closed
JCGoran opened this issue Oct 1, 2024 · 1 comment
Closed

Python 3.13 compatibility and mpi4py 3 #555

JCGoran opened this issue Oct 1, 2024 · 1 comment

Comments

@JCGoran
Copy link

JCGoran commented Oct 1, 2024

I noticed that pip install 'mpi4py<4' fails on Python 3.13 with the following trace:

Collecting mpi4py<4
  Using cached mpi4py-3.1.6.tar.gz (2.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: mpi4py
  Building wheel for mpi4py (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for mpi4py (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [348 lines of output]
      running bdist_wheel
      running build
      running build_src
      running build_py
      creating build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/run.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/bench.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/__main__.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      creating build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/_base.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/server.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/_core.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/pool.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/aplus.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/__main__.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/_lib.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      creating build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/util/pkl5.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/util/dtlib.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/util/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/__main__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/run.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/bench.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/MPI.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/dl.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/py.typed -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/__init__.pxd -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/libmpi.pxd -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      copying src/mpi4py/MPI.pxd -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py
      creating build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/include/mpi4py
      copying src/mpi4py/futures/__main__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/_core.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/aplus.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/server.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/pool.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/futures/_lib.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/futures
      copying src/mpi4py/util/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/util/dtlib.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      copying src/mpi4py/util/pkl5.pyi -> build/lib.macosx-10.13-universal2-cpython-313/mpi4py/util
      running build_clib
      MPI configuration: [mpi] from 'mpi.cfg'
      MPI C compiler:    /opt/homebrew/bin/mpicc
      MPI C++ compiler:  /opt/homebrew/bin/mpicxx
      MPI F compiler:    /opt/homebrew/bin/mpifort
      MPI F90 compiler:  /opt/homebrew/bin/mpif90
      MPI F77 compiler:  /opt/homebrew/bin/mpif77
      <string>:135: DeprecationWarning: Use shutil.which instead of find_executable
      checking for library 'lmpe' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -llmpe -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'lmpe' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      building 'mpe' dylib library
      creating build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c src/lib-pmpi/mpe.c -o build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/mpe.o
      creating build/lib.macosx-10.13-universal2-cpython-313/mpi4py/lib-pmpi
      /opt/homebrew/bin/mpicc -shared -undefined dynamic_lookup -arch arm64 -arch x86_64 -install_name libmpe.dylib build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/mpe.o -o build/lib.macosx-10.13-universal2-cpython-313/mpi4py/lib-pmpi/libmpe.dylib
      ld: warning: ignoring file '/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.40.dylib': found architecture 'arm64', required architecture 'x86_64'
      checking for library 'vt-mpi' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt-mpi -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt-mpi' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.mpi' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt.mpi -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt.mpi' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      building 'vt' dylib library
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c src/lib-pmpi/vt.c -o build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt.o
      /opt/homebrew/bin/mpicc -shared -undefined dynamic_lookup -arch arm64 -arch x86_64 -install_name libvt.dylib build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt.o -o build/lib.macosx-10.13-universal2-cpython-313/mpi4py/lib-pmpi/libvt.dylib
      ld: warning: ignoring file '/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.40.dylib': found architecture 'arm64', required architecture 'x86_64'
      checking for library 'vt-mpi' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt-mpi -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt-mpi' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.mpi' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt.mpi -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt.mpi' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      building 'vt-mpi' dylib library
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c src/lib-pmpi/vt-mpi.c -o build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt-mpi.o
      /opt/homebrew/bin/mpicc -shared -undefined dynamic_lookup -arch arm64 -arch x86_64 -install_name libvt-mpi.dylib build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt-mpi.o -o build/lib.macosx-10.13-universal2-cpython-313/mpi4py/lib-pmpi/libvt-mpi.dylib
      ld: warning: ignoring file '/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.40.dylib': found architecture 'arm64', required architecture 'x86_64'
      checking for library 'vt-hyb' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt-hyb -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt-hyb' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.ompi' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -lvt.ompi -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      ld: library 'vt.ompi' not found
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      failure.
      removing: _configtest.c _configtest.o
      building 'vt-hyb' dylib library
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -c src/lib-pmpi/vt-hyb.c -o build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt-hyb.o
      /opt/homebrew/bin/mpicc -shared -undefined dynamic_lookup -arch arm64 -arch x86_64 -install_name libvt-hyb.dylib build/temp.macosx-10.13-universal2-cpython-313/src/lib-pmpi/vt-hyb.o -o build/lib.macosx-10.13-universal2-cpython-313/mpi4py/lib-pmpi/libvt-hyb.dylib
      ld: warning: ignoring file '/opt/homebrew/Cellar/open-mpi/5.0.3_1/lib/libmpi.40.dylib': found architecture 'arm64', required architecture 'x86_64'
      running build_ext
      MPI configuration: [mpi] from 'mpi.cfg'
      MPI C compiler:    /opt/homebrew/bin/mpicc
      MPI C++ compiler:  /opt/homebrew/bin/mpicxx
      MPI F compiler:    /opt/homebrew/bin/mpifort
      MPI F90 compiler:  /opt/homebrew/bin/mpif90
      MPI F77 compiler:  /opt/homebrew/bin/mpif77
      checking for dlopen() availability ...
      checking for header 'dlfcn.h' ...
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      success!
      checking for library 'dl' ...
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      clang -flat_namespace -undefined suppress _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -ldl -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'dlopen' ...
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      clang _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      building 'mpi4py.dl' extension
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c src/dynload.c -o build/temp.macosx-10.13-universal2-cpython-313/src/dynload.o
      clang -bundle -undefined dynamic_lookup -arch arm64 -arch x86_64 build/temp.macosx-10.13-universal2-cpython-313/src/dynload.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -ldl -o build/lib.macosx-10.13-universal2-cpython-313/mpi4py/dl.cpython-313-darwin.so
      checking for MPI compile and link ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for missing MPI functions/symbols ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      checking for function 'MPI_Type_create_f90_integer' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Type_create_f90_real' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Type_create_f90_complex' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Status_c2f' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Status_f2c' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for symbol 'MPI_LB' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      _configtest.c:5:23: error: static assertion failed: MPI_LB was removed in MPI-3.0.  Use MPI_Type_create_resized instead.
        MPI_Datatype s; s = MPI_LB; (void)s;
                            ^~~~~~
      /opt/homebrew/Cellar/open-mpi/5.0.3_1/include/mpi.h:1208:24: note: expanded from macro 'MPI_LB'
      #        define MPI_LB THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_LB, MPI_Type_create_resized);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /opt/homebrew/Cellar/open-mpi/5.0.3_1/include/mpi.h:349:65: note: expanded from macro 'THIS_SYMBOL_WAS_REMOVED_IN_MPI30'
      #define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(symbol, new_symbol) 0; _Static_assert(0, #symbol " was removed in MPI-3.0.  Use " #new_symbol " instead.")
                                                                      ^              ~
      1 error generated.
      failure.
      removing: _configtest.c _configtest.o
      checking for symbol 'MPI_UB' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      _configtest.c:5:23: error: static assertion failed: MPI_UB was removed in MPI-3.0.  Use MPI_Type_create_resized instead.
        MPI_Datatype s; s = MPI_UB; (void)s;
                            ^~~~~~
      /opt/homebrew/Cellar/open-mpi/5.0.3_1/include/mpi.h:1207:24: note: expanded from macro 'MPI_UB'
      #        define MPI_UB THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_UB, MPI_Type_create_resized);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /opt/homebrew/Cellar/open-mpi/5.0.3_1/include/mpi.h:349:65: note: expanded from macro 'THIS_SYMBOL_WAS_REMOVED_IN_MPI30'
      #define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(symbol, new_symbol) 0; _Static_assert(0, #symbol " was removed in MPI-3.0.  Use " #new_symbol " instead.")
                                                                      ^              ~
      1 error generated.
      failure.
      removing: _configtest.c _configtest.o
      checking for dlopen() availability ...
      checking for header 'dlfcn.h' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      success!
      checking for library 'dl' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc -flat_namespace -undefined suppress _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -ldl -o _configtest
      ld: warning: -undefined suppress is deprecated
      ld: warning: -undefined suppress is deprecated
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'dlopen' ...
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c _configtest.c -o _configtest.o
      /opt/homebrew/bin/mpicc _configtest.o -Lbuild/temp.macosx-10.13-universal2-cpython-313 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      building 'mpi4py.MPI' extension
      /opt/homebrew/bin/mpicc -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -DPyMPI_MISSING_MPI_LB=1 -DPyMPI_MISSING_MPI_UB=1 -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/private/var/folders/r_/1lcd8hvd6nzgtzcy8wwq9slx186djn/T/tmp.7R53tH9Z/env/include -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13 -c src/MPI.c -o build/temp.macosx-10.13-universal2-cpython-313/src/MPI.o
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:843:59: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
      static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
                                                                ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/unicodeobject.h:10:1: note: 'Py_UNICODE' has been explicitly marked deprecated here
      Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/pyport.h:251:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:844:11: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
          const Py_UNICODE *u_end = u;
                ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/unicodeobject.h:10:1: note: 'Py_UNICODE' has been explicitly marked deprecated here
      Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/pyport.h:251:54: note: expanded from macro 'Py_DEPRECATED'
      #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                           ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:2317:39: error: call to undeclared function '_PyInterpreterState_GetConfig'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level;
                                            ^
      src/mpi4py.MPI.c:2317:107: error: member reference type 'int' is not a pointer
          __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level;
                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
      src/mpi4py.MPI.c:179054:7: error: call to undeclared function '_PyDict_SetItem_KnownHash'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(1, 7, __pyx_L1_error)
            ^
      src/mpi4py.MPI.c:2619:38: note: expanded from macro '__Pyx_SetNameInClass'
          (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
                                           ^
      src/mpi4py.MPI.c:179054:7: note: did you mean '_PyDict_GetItem_KnownHash'?
      src/mpi4py.MPI.c:2619:38: note: expanded from macro '__Pyx_SetNameInClass'
          (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/dictobject.h:38:24: note: '_PyDict_GetItem_KnownHash' declared here
      PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
                             ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:193623:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:193819:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:194091:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:194287:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:194521:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:194717:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:195027:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:195223:70: error: too few arguments to function call, expected 6, have 5
                                                    is_little, !is_unsigned);
                                                                           ^
      /Library/Frameworks/Python.framework/Versions/3.13/include/python3.13/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
      PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
                      ^
      2 warnings and 11 errors generated.
      error: command '/opt/homebrew/bin/mpicc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mpi4py
Failed to build mpi4py
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (mpi4py)

The reason I specifically ask about version < 4 is because our software is not compatible with mpi4py 4 just yet, but Python 3.13 is right around the corner, so any clarification about mpi4py's currently maintained/supported versions would be appreciated.

System information:

  • MacOS 13
  • OpenMPI 5.0.3 (installed via homebrew)
  • Python 3.13.0rc2
@dalcinl
Copy link
Member

dalcinl commented Oct 1, 2024

I do not plan to support Python 3.13 with mpi4py 3.1.x.

You may be able to build wheel from a git checkout (or even from the release tarball in PyPI), as long as you regenerate the C sources with the latest Cython (run ./conf/cython.sh in the top level dir).

our software is not compatible with mpi4py 4 just yet

May I ask what's the trouble stopping you guys from upgrading?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants