diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 172d969..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# openmpi - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 6665950..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# openmpi - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/macros.openmpi b/macros.openmpi new file mode 100644 index 0000000..05e613f --- /dev/null +++ b/macros.openmpi @@ -0,0 +1,6 @@ +%_openmpi_load \ + . /etc/profile.d/modules.sh; \ + module load mpi/openmpi-%{_arch}; +%_openmpi_unload \ + . /etc/profile.d/modules.sh; \ + module unload mpi/openmpi-%{_arch}; diff --git a/openmpi-2.1.1.tar.bz2 b/openmpi-2.1.1.tar.bz2 new file mode 100644 index 0000000..a5cb116 Binary files /dev/null and b/openmpi-2.1.1.tar.bz2 differ diff --git a/openmpi.module.in b/openmpi.module.in new file mode 100644 index 0000000..7e96154 --- /dev/null +++ b/openmpi.module.in @@ -0,0 +1,21 @@ +#%Module 1.0 +# +# OpenMPI module for use with 'environment-modules' package: +# +conflict mpi +prepend-path PATH @LIBDIR@/bin +prepend-path LD_LIBRARY_PATH @LIBDIR@/lib +prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig +prepend-path MANPATH @MANDIR@ +setenv MPI_BIN @LIBDIR@/bin +setenv MPI_SYSCONFIG @ETCDIR@ +setenv MPI_FORTRAN_MOD_DIR @FMODDIR@ +setenv MPI_INCLUDE @INCDIR@ +setenv MPI_LIB @LIBDIR@/lib +setenv MPI_MAN @MANDIR@ +setenv MPI_PYTHON_SITEARCH @PY2SITEARCH@ +setenv MPI_PYTHON2_SITEARCH @PY2SITEARCH@ +setenv MPI_PYTHON3_SITEARCH @PY3SITEARCH@ +setenv MPI_COMPILER @COMPILER@ +setenv MPI_SUFFIX @SUFFIX@ +setenv MPI_HOME @LIBDIR@ diff --git a/openmpi.pth.py2 b/openmpi.pth.py2 new file mode 100644 index 0000000..a2dc353 --- /dev/null +++ b/openmpi.pth.py2 @@ -0,0 +1 @@ +import sys, os; s = os.getenv('MPI_PYTHON2_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/openmpi.pth.py3 b/openmpi.pth.py3 new file mode 100644 index 0000000..ced8c64 --- /dev/null +++ b/openmpi.pth.py3 @@ -0,0 +1 @@ +import sys, os; s = os.getenv('MPI_PYTHON3_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/openmpi.spec b/openmpi.spec new file mode 100644 index 0000000..249b1fd --- /dev/null +++ b/openmpi.spec @@ -0,0 +1,214 @@ +Name: openmpi +Version: 2.1.1 +Release: 15 +Summary: Open Source High Performance Computing +License: BSD and MIT and Romio +URL: http://www.open-mpi.org/ +Source0: https://download.open-mpi.org/release/open-mpi/v2.1/openmpi-%{version}.tar.bz2 +Source1: openmpi.module.in +Source2: openmpi.pth.py2 +Source3: openmpi.pth.py3 +Source4: macros.openmpi + +BuildRequires: gcc-c++, gcc-gfortran +BuildRequires: valgrind-devel, hwloc-devel, java-devel, libfabric-devel, papi-devel +BuildRequires: libibverbs-devel >= 1.1.3, opensm-devel > 3.3.0 +BuildRequires: librdmacm-devel, rdma-core-devel, pmix-devel +BuildRequires: hwloc-gui, rpm-mpi-hooks +BuildRequires: perl-generators, perl(Getopt::Long) +BuildRequires: python2-devel, python3-devel +%ifarch x86_64 +BuildRequires: infinipath-psm-devel, libpsm2-devel, torque-devel, zlib-devel +%endif + +Provides: mpi, %{name}-java +Requires: environment(modules), openssh-clients +Provides: bundled(libevent) = 2.0.22 +Requires: java-headless +Obsoletes: %{name}-java + +%description +The Open MPI Project is an open source Message Passing Interface +implementation that is developed and maintained by a consortium +of academic, research, and industry partners. Open MPI is +therefore able to combine the expertise, technologies, and +resources from all across the High Performance Computing +community in order to build the best MPI library available. + +%ifarch aarch64 +%global name_all openmpi-aarch64 +%else +%global name_all openmpi-x86_64 +%endif +#%global namearch openmpi-%{_arch} + +%package devel +Summary: Development files for openmpi +Requires: %{name} = %{version}-%{release}, gcc-gfortran +Provides: mpi-devel +Requires: rpm-mpi-hooks, java-devel +Provides: %{name}-java-devel +Obsoletes: %{name}-java-devel + +%description devel +This contains dynamic libraries and header files for the developing of openmpi. + +%package -n python2-openmpi +Summary: openmpi python2 interface +Requires: %{name} = %{version}-%{release} + +%description -n python2-openmpi +openmpi python2 interface. + +%package -n python3-openmpi +Summary: openmpi python3 interface +Requires: %{name} = %{version}-%{release} + +%description -n python3-openmpi +openmpi python3 interface + +%package help +Summary: Including man files for openmpi +Requires: man + +%description help +This contains man files for the using of openmpi. + +%prep +%autosetup -n openmpi-%{version} -p1 + +%build +./configure --prefix=%{_libdir}/%{name} \ + --includedir=%{_includedir}/%{name_all} \ + --sysconfdir=%{_sysconfdir}/%{name_all} \ + --disable-silent-rules \ + --enable-builtin-atomics \ + --enable-memchecker \ + --enable-mpi-thread-multiple \ + --enable-mpi-cxx \ + --enable-mpi-java \ + --with-sge \ + --with-valgrind \ + --with-hwloc=/usr \ + --mandir=%{_mandir}/%{name_all} \ + CFLAGS="$RPM_OPT_FLAGS" \ + CXXFLAGS="$RPM_OPT_FLAGS" \ + FC=gfortran \ + FCFLAGS="$RPM_OPT_FLAGS" + +%make_build + +%install +%make_install +find %{buildroot}%{_libdir}/%{name}/lib -name \*.la -delete +find %{buildroot}%{_mandir}/%{name_all} -type f -exec gzip -9 {} \; +ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{name_all}/man1/mpiCC.1.gz +rm %{buildroot}%{_mandir}/%{name_all}/man1/mpiCC.1 +mkdir %{buildroot}%{_mandir}/%{name_all}/man{2,4,5,6,8,9,n} + +mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi +sed 's#@LIBDIR@#%{_libdir}/%{name}#; + s#@ETCDIR@#%{_sysconfdir}/%{name_all}#; + s#@FMODDIR@#%{_fmoddir}/%{name}#; + s#@INCDIR@#%{_includedir}/%{name_all}#; + s#@MANDIR@#%{_mandir}/%{name_all}#; + s#@PY2SITEARCH@#%{python2_sitearch}/%{name}#; + s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#; + s#@COMPILER@#openmpi-%{_arch}#; + s#@SUFFIX@#_openmpi#' \ + <%{SOURCE1} \ + >%{buildroot}%{_datadir}/modulefiles/mpi/%{name_all} + +install -Dpm 644 %{SOURCE4} %{buildroot}/%{rpmmacrodir}/macros.%{name_all} + +install -d %{buildroot}%{_fmoddir}/%{name} +for mod in %{buildroot}%{_libdir}/%{name}/lib/*.mod +do + modname=$(basename $mod) + ln -s ../../../%{name}/lib/${modname} %{buildroot}/%{_fmoddir}/%{name}/ +done + +install -d %{buildroot}%{_libdir}/pkgconfig +pushd %{buildroot}%{_libdir}/pkgconfig +ln -s ../%{name}/lib/pkgconfig/*.pc . +popd + +sed -i -e s/-ldl// -e s/-lhwloc// \ + %{buildroot}%{_libdir}/%{name}/share/%{name}/*-wrapper-data.txt + +install -d %{buildroot}/%{python2_sitearch}/%{name} +install -d %{buildroot}/%{python3_sitearch}/%{name} +install -pDm0644 %{SOURCE2} %{buildroot}/%{python2_sitearch}/openmpi.pth +install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth + +%check +make check + +%files +%license LICENSE opal/mca/event/libevent2022/libevent/LICENSE +%dir %{_libdir}/%{name} +%dir %{_sysconfdir}/%{name_all} +%dir %{_libdir}/%{name}/bin +%dir %{_libdir}/%{name}/lib +%dir %{_libdir}/%{name}/lib/openmpi +%dir %{_mandir}/%{name_all} +%dir %{_mandir}/%{name_all}/man* +%dir %{_libdir}/%{name}/share +%dir %{_libdir}/%{name}/share/openmpi +%config(noreplace) %{_sysconfdir}/%{name_all}/* +%{_datadir}/modulefiles/mpi/ +%{_libdir}/%{name}/bin/mpiexec +%{_libdir}/%{name}/bin/mpirun +%{_libdir}/%{name}/bin/ompi* +%{_libdir}/%{name}/bin/orte-* +%{_libdir}/%{name}/bin/orted +%{_libdir}/%{name}/bin/orterun +%{_libdir}/%{name}/bin/oshmem_info +%{_libdir}/%{name}/bin/oshrun +%{_libdir}/%{name}/bin/shmemrun +%{_libdir}/%{name}/lib/*.so.* +%{_libdir}/%{name}/lib/openmpi/* +%{_libdir}/%{name}/lib/mpi.jar +%{_libdir}/%{name}/share/openmpi/help*.txt +%{_libdir}/%{name}/share/openmpi/amca-param-sets +%{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini + + +%files devel +%dir %{_includedir}/%{name_all} +%{_includedir}/%{name_all}/* +%{_libdir}/%{name}/share/doc/ +%{_libdir}/%{name}/bin/mpic* +%{_libdir}/%{name}/bin/mpiCC +%{_libdir}/%{name}/bin/mpif* +%{_libdir}/%{name}/bin/opal* +%{_libdir}/%{name}/bin/ortecc +%{_libdir}/%{name}/bin/oshcc +%{_libdir}/%{name}/bin/oshfort +%{_libdir}/%{name}/bin/shmemcc +%{_libdir}/%{name}/bin/shmemfort +%{_libdir}/%{name}/bin/mpijava* +%{_libdir}/%{name}/lib/*.so +%{_libdir}/%{name}/lib/*.mod +%{_libdir}/%{name}/lib/pkgconfig/ +%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt +%{_libdir}/%{name}/share/openmpi/openmpi-valgrind.supp +%{_libdir}/pkgconfig/*.pc +%{_fmoddir}/%{name}/ +%{rpmmacrodir}/macros.%{name_all} + +%files -n python2-openmpi +%dir %{python2_sitearch}/%{name} +%{python2_sitearch}/openmpi.pth + +%files -n python3-openmpi +%dir %{python3_sitearch}/%{name} +%{python3_sitearch}/openmpi.pth + + +%files help +%{_mandir}/%{name_all}/man*/* + +%changelog +* Tue Nov 26 2019 openEuler Buildteam - 2-1.1-15 +- Package init