forked from pool/python-mpi4py
Compare commits
7 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 4dbd44cc1d | |||
| 0f08f3234d | |||
| c8e4dd05bb | |||
| 4ab6f03258 | |||
| e3c725ed41 | |||
| 7622b63725 | |||
| f2cd6fb1f3 |
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c8fa625e0f92b082ef955bfb52f19fa6691d29273d7d71135d295aa143dee6cb
|
||||
size 2365468
|
||||
3
mpi4py-4.0.3.tar.gz
Normal file
3
mpi4py-4.0.3.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:de2710d73e25e115865a3ab63d34a54b2d8608b724f761c567b6ad58dd475609
|
||||
size 466338
|
||||
@@ -1,5 +0,0 @@
|
||||
# devel, common-devel and doc packages are arch dependent, devel and
|
||||
# common-devel install in sitearch and the doc could be noarch, but maybe
|
||||
it has no sense to have the doc package in archs where the original package
|
||||
is not provided.
|
||||
addFilter("E: no-binary")
|
||||
@@ -1,3 +1,123 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 4 04:34:29 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
- Update to version 4.0.3:
|
||||
* Fix DLPack v1.0 support.
|
||||
- Changes from version 4.0.2:
|
||||
* Support MPI-4 features within Intel MPI 2021.14.
|
||||
* Various fixes and updates to tests.
|
||||
* Minor fixes to typing support.
|
||||
* Minor fix to documentation.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 22 17:21:34 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||
|
||||
- Fix packaging of header files, breaking VTK openmpi builds.
|
||||
E.g. mpi4py.h requires the MPI_api.h in a specific relative
|
||||
location.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 22 20:47:58 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to 4.0.1
|
||||
## Update support for Python 3.13:
|
||||
* Enable Cython 3.1 support for free-threaded CPython.
|
||||
* Allow compiling Cython-generated C sources with the full Python
|
||||
C-API.
|
||||
* Fix MPI DLL path workarounds on Windows after changes to
|
||||
locals().
|
||||
## Enhancements to test suite:
|
||||
* Support XML reports via unittest-xml-reporting.
|
||||
* Add command line options to exclude tests by patterns and
|
||||
files.
|
||||
* Refactor Python 2 code to use Python 3 constructs using
|
||||
pyupgrade.
|
||||
## Miscellaneous:
|
||||
* Minor and mostly inconsequential subclass fix in
|
||||
mpi4py.util.pkl5.
|
||||
* Update compatibility workarounds for legacy MPICH 3.0 release.
|
||||
- Release 4.0.0
|
||||
## New features:
|
||||
### Add support for the MPI-4.0 standard.
|
||||
* Use large count MPI-4 routines.
|
||||
* Add persistent collective communication.
|
||||
* Add partitioned point-to-point communication.
|
||||
* Add new communicator constructors.
|
||||
* Add the Session class and its methods.
|
||||
### Add support for the MPI-4.1 standard.
|
||||
* Add non-destructive completion test for multiple requests.
|
||||
* Add value-index datatype constructor.
|
||||
* Add communicator/session buffer attach/detach/flush.
|
||||
* Support for removal of error classes/codes/strings.
|
||||
* Support for querying hardware resource information.
|
||||
### Add preliminary support for the upcoming MPI-5.0 standard.
|
||||
* User-level failure mitigation (ULFM).
|
||||
* mpi4py.util.pool: New drop-in replacement for
|
||||
multiprocessing.pool.
|
||||
* mpi4py.util.sync: New synchronization utilities.
|
||||
* Add runtime check for mismatch between mpiexec and MPI library.
|
||||
* Support scikit-build-core as an alternative build backend.
|
||||
* Support meson-python as an alternative build backend.
|
||||
## Enhancements:
|
||||
* mpi4py.futures: Support for parallel tasks.
|
||||
* mpi4py.futures: Report exception tracebacks in workers.
|
||||
* mpi4py.util.pkl5: Add support for collective communication.
|
||||
* Add methods Datatype.fromcode(), Datatype.tocode() and
|
||||
attributes Datatype.typestr, Datatype.typechar to simplify
|
||||
NumPy interoperability for simple cases.
|
||||
* Add methods Comm.Create_errhandler(), Win.Create_errhandler(),
|
||||
and File.Create_errhandler() to create custom error handlers.
|
||||
* Add support for pickle serialization of instances of MPI types.
|
||||
All instances of Datatype, Info, and Status can be serialized.
|
||||
Instances of Op can be serialized only if created through
|
||||
mpi4py by calling Op.Create(). Instances of other MPI types can
|
||||
be serialized only if they reference predefined handles.
|
||||
* Add handle attribute and fromhandle() class method to MPI
|
||||
classes to ease interoperability with external code. The handle
|
||||
value is an unsigned integer guaranteed to fit on the
|
||||
platform's uintptr_t C type.
|
||||
* Add lowercase free() method to MPI classes to ease MPI object
|
||||
deallocation and cleanup. This method eventually attempts to
|
||||
call Free(), but only if the object's MPI handle is not a null
|
||||
or predefined handle, and such call is allowed within the World
|
||||
Model init/finalize.
|
||||
## Backward-incompatible changes:
|
||||
* Python 2 is no longer supported, Python 3.6+ is required, but
|
||||
typing stubs are supported for Python 3.8+.
|
||||
* The Intracomm.Create_group() method is no longer defined in the
|
||||
base Comm class.
|
||||
* Group.Compare() and Comm.Compare() are no longer class methods
|
||||
but instance methods. Existing codes using the former class
|
||||
methods are expected to continue working.
|
||||
* Group.Translate_ranks() is no longer a class method but an
|
||||
instance method. Existing codes using the former class method
|
||||
are expected to continue working.
|
||||
* The LB and UB datatypes are no longer available, use
|
||||
Datatype.Create_resized() instead.
|
||||
* The HOST predefined attribute key is no longer available.
|
||||
* The MPI.memory class has been renamed to MPI.buffer. The old
|
||||
name is still available as an alias to the new name.
|
||||
* The mpi4py.dl module is no longer available.
|
||||
* The mpi4py.get_config function returns an empty dictionary.
|
||||
## Miscellaneous:
|
||||
* The project is now licensed under the BSD-3-Clause license.
|
||||
This change is fairly inconsequential for users and
|
||||
distributors. It simply adds an additional clause against using
|
||||
contributor names for promotional purposes without their
|
||||
consent.
|
||||
* Add a new guidelines section to documentation laying out new
|
||||
fair play rules. These rules ask companies and outside
|
||||
developers to refrain from reusing the mpi4py name in
|
||||
unaffiliated projects, publishing binary mpi4py wheels on the
|
||||
main Python Package Index (PyPI), and distributing modified
|
||||
versions with incompatible or extended API changes. The primary
|
||||
motivation of these rules is to avoid fragmentation and
|
||||
end-user confusion.
|
||||
- Skip failing tests: test fails are different on server and local
|
||||
machines. TODO: Investigate
|
||||
- Remove unused rpm macro file: Static %mpi4py_mpi_ver is not used
|
||||
anywhere (and had a strange name for value 'openmpi')
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 10 13:36:54 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package python-mpi4py
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -16,28 +16,28 @@
|
||||
#
|
||||
|
||||
|
||||
%define plainpython python
|
||||
Name: python-mpi4py
|
||||
Version: 3.1.6
|
||||
Version: 4.0.3
|
||||
Release: 0
|
||||
Summary: MPI for Python
|
||||
License: BSD-2-Clause
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/mpi4py/mpi4py
|
||||
Source: https://files.pythonhosted.org/packages/source/m/mpi4py/mpi4py-%{version}.tar.gz
|
||||
Source99: %{name}-rpmlintrc
|
||||
BuildRequires: %{python_module Cython with %python-Cython < 3}
|
||||
BuildRequires: %{python_module Cython >= 3}
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module numpy}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module setuptools >= 42}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: openmpi-macros-devel
|
||||
BuildRequires: python-rpm-macros
|
||||
# Test dependencies
|
||||
BuildRequires: %{python_module cffi}
|
||||
# SECTION test dependencies
|
||||
BuildRequires: %{python_module numpy}
|
||||
BuildRequires: %{python_module PyYAML}
|
||||
BuildRequires: %{python_module cffi}
|
||||
# /SECTION
|
||||
%openmpi_requires
|
||||
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
@@ -75,6 +75,7 @@ Summary: Development files for %{name}
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-common-devel = %{version}
|
||||
Requires: python-devel
|
||||
Requires: %plainpython(abi) = %python_version
|
||||
|
||||
%description devel
|
||||
Development libraries and headers needed to build packages using %{name}.
|
||||
@@ -83,10 +84,10 @@ Development libraries and headers needed to build packages using %{name}.
|
||||
Summary: Shared development files for %{name}
|
||||
%openmpi_devel_requires
|
||||
Provides: %{python_module mpi4py-common-devel = %{version}}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}-common-devel
|
||||
Development libraries and headers needed to build packages using %{name}
|
||||
for both python2 and python3.
|
||||
Development libraries and headers needed to build packages using %{name}.
|
||||
|
||||
You normally do not need to install this directly, it will be pulled in by
|
||||
the python-specific devel package.
|
||||
@@ -94,20 +95,16 @@ the python-specific devel package.
|
||||
%package -n %{name}-doc
|
||||
Summary: Documentation for %{name}
|
||||
Provides: %{python_module mpi4py-doc = %{version}}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}-doc
|
||||
Documentation files and demos for %{name}.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n mpi4py-%{version}
|
||||
rm demo/*/runtests.bat docs/source/usrman/make.bat docs/source/usrman/.gitignore
|
||||
sed -i 's/\r$//' docs/usrman/objects.inv
|
||||
sed -i '1!b;/^#!\/usr\/bin\/env python/d' demo/python-config
|
||||
chmod a-x demo/python-config
|
||||
|
||||
# Remove this file to fix tests
|
||||
# https://github.com/mpi4py/mpi4py/issues/279
|
||||
rm test/dlpackimpl.py
|
||||
chmod a-x demo/python-config demo/check-mpiexec/run.sh
|
||||
rm docs/source/make.bat
|
||||
|
||||
%build
|
||||
%setup_openmpi
|
||||
@@ -120,45 +117,63 @@ export LANG=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
%pyproject_install
|
||||
|
||||
# De-duplicate includes and also put them in a more generally-accessible location.
|
||||
mkdir -p %{buildroot}/%{_includedir}
|
||||
%python_expand cp -r %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py %{buildroot}/%{_includedir}/
|
||||
%python_expand rm -r %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
|
||||
%python_expand ln -s %{_includedir}/mpi4py %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
|
||||
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
%{python_expand # De-duplicate includes and also put them in a more generally-accessible location.
|
||||
rm -Rf %{buildroot}/%{_includedir}/mpi4py/include
|
||||
rm -Rf %{buildroot}/%{_includedir}/mpi4py/*.h
|
||||
mkdir -p -m 755 %{buildroot}/%{_includedir}/mpi4py/include
|
||||
# Keep directory structure intact, e.g. mpi4py.h includes "../../MPI_api.h"
|
||||
mv %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py %{buildroot}/%{_includedir}/mpi4py/include/mpi4py
|
||||
mv %{buildroot}%{$python_sitearch}/mpi4py/*.h %{buildroot}/%{_includedir}/mpi4py/
|
||||
ln -s %{_includedir}/mpi4py/include/mpi4py %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py
|
||||
for f in %{_includedir}/mpi4py/{MPI,MPI_api}.h; do ln -s ${f} %{buildroot}%{$python_sitearch}/mpi4py/; done
|
||||
%fdupes %{buildroot}%{$python_sitearch}
|
||||
}
|
||||
%fdupes %{buildroot}/%{_includedir}
|
||||
|
||||
mkdir -p %{buildroot}%{_docdir}%{name}
|
||||
cp -r docs %{buildroot}%{_docdir}%{name}/
|
||||
cp -r demo %{buildroot}%{_docdir}%{name}/
|
||||
%fdupes %{buildroot}%{_docdir}%{name}
|
||||
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
cat >> %{buildroot}%{_rpmmacrodir}/macros.mpi4py <<EOL
|
||||
mpi4py_mpi_ver openmpi
|
||||
EOL
|
||||
|
||||
# Don't run tests in s390x, mpiexec is not too reliable running in the
|
||||
# OBS virtual machine environment. bsc#1218604#c1
|
||||
%ifnarch s390x
|
||||
%check
|
||||
export PYTHONDONTWRITEBYTECODE=1
|
||||
export LANG=en_US.UTF-8
|
||||
export OMPI_MCA_rmaps_base_oversubscribe=yes
|
||||
donttest="test_spawn"
|
||||
# https://mpi4py.readthedocs.io/en/stable/develop.html#testing
|
||||
# obs server: no communication between processes?
|
||||
donttest="-x test_spawn"
|
||||
donttest+=" -x test_apply"
|
||||
donttest+=" -x test_async_error_callback"
|
||||
donttest+=" -x test_empty_iterable"
|
||||
donttest+=" -x test_imap"
|
||||
donttest+=" -x test_istarmap"
|
||||
donttest+=" -x test_map"
|
||||
donttest+=" -x test_starmap"
|
||||
donttest+=" -x test_pool_worker_lifetime_early_close"
|
||||
donttest+=" -x test_terminate"
|
||||
# osc build local: hangs or takes too long?
|
||||
donttest+=" -x test_p2p_obj"
|
||||
donttest+=" -x testGetStatusAll"
|
||||
donttest+=" -x testIMProbe"
|
||||
donttest+=" -x testIS"
|
||||
donttest+=" -x testMProbe"
|
||||
donttest+=" -x testMessageProbeIProbe"
|
||||
donttest+=" -x testProbe"
|
||||
donttest+=" -x testTestAll"
|
||||
donttest+=" -x testAll"
|
||||
donttest+=" -x testWaitAll"
|
||||
%ifarch %ix86
|
||||
# https://github.com/mpi4py/mpi4py/issues/105
|
||||
donttest+="|test_io"
|
||||
|
||||
# There are more broken tests in i586
|
||||
# https://github.com/mpi4py/mpi4py/issues/279
|
||||
donttest+="|test_file|test_subclass|test_errhandler|test_threads"
|
||||
donttest+=" -x test_io"
|
||||
# There are more broken tests in i586: https://github.com/mpi4py/mpi4py/issues/279
|
||||
donttest+=" -x test_file -x test_subclass -x test_errhandler -x test_threads"
|
||||
%endif
|
||||
rm -rf build _build.*
|
||||
%setup_openmpi
|
||||
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
|
||||
rm -rf build _build.*
|
||||
%setup_openmpi
|
||||
%{openmpi_prefix}/bin/mpiexec --use-hwthread-cpus --mca btl tcp,self -n 1 $python -B test/runtests.py -v --exclude="$donttest"
|
||||
%{openmpi_prefix}/bin/mpiexec -n 1 $python -B test/main.py -v $donttest
|
||||
}
|
||||
%endif
|
||||
|
||||
@@ -168,15 +183,16 @@ rm -rf build _build.*
|
||||
%{python_sitearch}/mpi4py
|
||||
%{python_sitearch}/mpi4py-%{version}.dist-info
|
||||
%exclude %{python_sitearch}/mpi4py/include/
|
||||
%exclude %{python_sitearch}/mpi4py/*.h
|
||||
|
||||
%files %{python_files devel}
|
||||
%license LICENSE.rst
|
||||
%{python_sitearch}/mpi4py/include/
|
||||
%{python_sitearch}/mpi4py/*.h
|
||||
|
||||
%files -n %{name}-common-devel
|
||||
%license LICENSE.rst
|
||||
%{_includedir}/mpi4py/
|
||||
%{_rpmmacrodir}/macros.mpi4py
|
||||
|
||||
%files -n %{name}-doc
|
||||
%license LICENSE.rst
|
||||
|
||||
Reference in New Issue
Block a user