代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/mpi4py 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
%global with_mpich 1
%global MPICH 1
%global OPENMPI 1
# Run full testsuite or just with 1 core
%global FULLTESTS 0
Name: mpi4py
Version: 3.1.3
Release: 2
Summary: Python bindings of the Message Passing Interface (MPI)
License: BSD
URL: https://mpi4py.readthedocs.io/en/stable/
Source0: https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-%{version}.tar.gz
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: python%{python3_pkgversion}-Cython >= 0.22
# For testing
BuildRequires: python%{python3_pkgversion}-numpy
BuildRequires: python%{python3_pkgversion}-simplejson
BuildRequires: python%{python3_pkgversion}-yaml
BuildRequires: python%{python3_pkgversion}-dill
BuildRequires: environment-modules
%global _description %{expand:
This package is constructed on top of the MPI-1/MPI-2 specification and
provides an object oriented interface which closely follows MPI-2 C++
bindings. It supports point-to-point (sends, receives) and collective
(broadcasts, scatters, gathers) communications of any picklable Python
object as well as optimized communications of Python object exposing the
single-segment buffer interface (NumPy arrays, built-in bytes/string/array
objects).}
%description %_description
%package docs
Summary: Documentation for %{name}
Requires: %{name}-common = %{version}-%{release}
BuildArch: noarch
%description docs
This package contains the documentation and examples for %{name}.
%package -n python%{python3_pkgversion}-mpi4py
Requires: %{name}-common = %{version}-%{release}
Summary: Python %{python3_version} bindings of the Message Passing Interface (MPI)
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py}
%description -n python%{python3_pkgversion}-mpi4py %_description
%package -n python%{python3_pkgversion}-mpi4py-openmpi
BuildRequires: openmpi-devel
Requires: %{name}-common = %{version}-%{release}
Requires: python%{python3_pkgversion}-openmpi%{?_isa}
Summary: Python %{python3_version} bindings of MPI, Open MPI version
Provides: python%{python3_pkgversion}-mpi4py-runtime = %{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py-openmpi}
%description -n python%{python3_pkgversion}-mpi4py-openmpi %_description
This package contains %{name} compiled against Open MPI.
%if %{with_mpich}
%package -n python%{python3_pkgversion}-mpi4py-mpich
BuildRequires: mpich-devel
Requires: %{name}-common = %{version}-%{release}
Requires: python%{python3_pkgversion}-mpich%{?_isa}
Summary: Python %{python3_version} bindings of MPI, MPICH version
Provides: python%{python3_pkgversion}-mpi4py-runtime = %{version}-%{release}
Provides: python%{python3_pkgversion}-%{name}-mpich2 = %{version}-%{release}
Obsoletes: python%{python3_pkgversion}-%{name}-mpich2 < 1.3-8
%{?python_provide:%python_provide python%{python3_pkgversion}-mpi4py-mpich}
%description -n python%{python3_pkgversion}-mpi4py-mpich %_description
This package contains %{name} compiled against MPICH.
%endif
%package common
Summary: Common files for mpi4py packages
BuildArch: noarch
Requires: %{name}-common = %{version}-%{release}
%description common
This package contains the license file shared between the subpackages of %{name}.
%prep
%autosetup -p1 %{?commit:-n %{name}-%{name}-%{shortcommit}}
# delete docs/source
# this is just needed to generate docs/*
rm -r docs/source
# work around "wrong-file-end-of-line-encoding"
for file in $(find | grep runtests.bat); do
sed -i 's/\r//' $file
done
# Save current src/__init__.py for mpich
cp src/mpi4py/__init__.py .__init__mpich.py
cp src/mpi4py/__init__.py .__init__openmpi.py
# Remove precythonized C sources
rm $(grep -rl '/\* Generated by Cython')
%build
# Build parallel versions: set compiler variables to MPI wrappers
export CC=mpicc
export CXX=mpicxx
# Build OpenMPI version
%{_openmpi_load}
ompi_info
cp .__init__openmpi.py src/mpi4py/__init__.py
%py3_build
mv build openmpi
%{_openmpi_unload}
%if %{with_mpich}
# Build mpich version
%{_mpich_load}
cp .__init__mpich.py src/mpi4py/__init__.py
%py3_build
mv build mpich
%{_mpich_unload}
%endif
%install
# Install OpenMPI version
%{_openmpi_load}
cp .__init__openmpi.py src/mpi4py/__init__.py
mv openmpi build
%py3_install
mkdir -p %{buildroot}%{python3_sitearch}/openmpi
mv %{buildroot}%{python3_sitearch}/%{name}/ %{buildroot}%{python3_sitearch}/%{name}*.egg-info %{buildroot}%{python3_sitearch}/openmpi
mv build openmpi
%{_openmpi_unload}
%if %{with_mpich}
# Install MPICH version
%{_mpich_load}
cp .__init__mpich.py src/mpi4py/__init__.py
mv mpich build
%py3_install
mkdir -p %{buildroot}%{python3_sitearch}/mpich
mv %{buildroot}%{python3_sitearch}/%{name}/ %{buildroot}%{python3_sitearch}/%{name}*.egg-info %{buildroot}%{python3_sitearch}/mpich
mv build mpich
%{_mpich_unload}
%endif
%check
# test openmpi?
%if 0%{?OPENMPI}
%{_openmpi_load}
cp .__init__openmpi.py src/mpi4py/__init__.py
mv openmpi build
PYTHONPATH=%{buildroot}%{python3_sitearch}/openmpi \
mpiexec -np 1 python3 test/runtests.py -v --no-builddir \
-e spawn \
%ifarch ppc64le
-e test_datatype
%endif
%if 0%{?FULLTESTS}
# Allow running with more processes than cores
export OMPI_MCA_rmaps_base_oversubscribe=1
PYTHONPATH=%{buildroot}%{python3_sitearch}/openmpi \
mpiexec -np 5 python3 test/runtests.py -v --no-builddir -e spawn
PYTHONPATH=%{buildroot}%{python3_sitearch}/openmpi \
mpiexec -np 8 python3 test/runtests.py -v --no-builddir -e spawn
%endif
mv build openmpi
%{_openmpi_unload}
%endif
#test mpich?
%if 0%{?MPICH}
%if %{with_mpich}
%{_mpich_load}
cp .__init__mpich.py src/mpi4py/__init__.py
mv mpich build
PYTHONPATH=%{buildroot}%{python3_sitearch}/mpich \
mpiexec -np 1 python3 test/runtests.py -v --no-builddir -e spawn
%if 0%{?FULLTESTS}
PYTHONPATH=%{buildroot}%{python3_sitearch}/mpich \
mpiexec -np 5 python3 test/runtests.py -v --no-builddir -e spawn
PYTHONPATH=%{buildroot}%{python3_sitearch}/mpich \
mpiexec -np 8 python3 test/runtests.py -v --no-builddir -e spawn
%endif
mv build mpich
%{_mpich_unload}
%endif
%endif
%files common
%license LICENSE.rst
%doc CHANGES.rst DESCRIPTION.rst README.rst
%files -n python%{python3_pkgversion}-mpi4py-openmpi
%{python3_sitearch}/openmpi/%{name}-*.egg-info
%{python3_sitearch}/openmpi/%{name}
%if %{with_mpich}
%files -n python%{python3_pkgversion}-mpi4py-mpich
%{python3_sitearch}/mpich/%{name}-*.egg-info
%{python3_sitearch}/mpich/%{name}
%endif
%files docs
%doc docs/* demo
%changelog
* Fri Apr 15 2022 tanyulong <tanyulong@kylinos.cn> - 3.1.3-2
- rebuild
* Thu Mar 24 2022 tanyulong <tanyulong@kylinos.cn> - 3.1.3-1
- init package for openEuler
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。