Update OSU benchmarks to upstream release 5.7
Build mpitests for RHEL9 Resolves: rhbz#1923508 Signed-off-by: Honggang Li <honli@redhat.com>
This commit is contained in:
parent
2d4ea489f9
commit
909016ec2d
7
.gitignore
vendored
7
.gitignore
vendored
@ -0,0 +1,7 @@
|
||||
/osu-micro-benchmarks-5.4.2.tar.gz
|
||||
/v2018.1.tar.gz
|
||||
/*.src.rpm
|
||||
/IMB-v2019.6.tar.gz
|
||||
/osu-micro-benchmarks-5.6.2.tar.gz
|
||||
/osu-micro-benchmarks-5.6.3.tar.gz
|
||||
/osu-micro-benchmarks-5.7.tar.gz
|
11
gating.yaml
Normal file
11
gating.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
--- !Policy
|
||||
|
||||
product_versions:
|
||||
|
||||
- rhel-8
|
||||
|
||||
decision_context: osci_compose_gate
|
||||
|
||||
rules:
|
||||
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
149
mpitests.spec
Normal file
149
mpitests.spec
Normal file
@ -0,0 +1,149 @@
|
||||
%global intel_mpi_bench_vers IMB-v2019.6
|
||||
%global osu_micro_bench_vers 5.7
|
||||
Summary: MPI Benchmarks and tests
|
||||
Name: mpitests
|
||||
Version: %{osu_micro_bench_vers}
|
||||
Release: 1%{?dist}
|
||||
License: CPL and BSD
|
||||
Group: Applications/Engineering
|
||||
# These days we get the benchmark soucres from Intel and OSU directly
|
||||
# rather than from openfabrics.
|
||||
URL: http://www.openfabrics.org
|
||||
# https://software.intel.com/en-us/articles/intel-mpi-benchmarks
|
||||
Source0: https://github.com/intel/mpi-benchmarks/archive/%{intel_mpi_bench_vers}.tar.gz
|
||||
Source1: http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-%{osu_micro_bench_vers}.tar.gz
|
||||
# Only for old openmpi
|
||||
#Patch101: OMB-disable-collective-async.patch
|
||||
BuildRequires: hwloc-devel, libibmad-devel, rdma-core-devel
|
||||
BuildRequires: automake, autoconf, libtool
|
||||
BuildRequires: gcc, gcc-c++
|
||||
|
||||
%description
|
||||
A set of popular MPI benchmarks:
|
||||
Intel MPI benchmarks %{intel_mpi_bench_vers}.
|
||||
OSU micro-benchmarks %{osu_micro_bench_vers}.
|
||||
|
||||
# openmpi 3.0.0 dropped support for big endian ppc
|
||||
%ifnarch ppc ppc64
|
||||
%package openmpi
|
||||
Summary: MPI tests package compiled against openmpi
|
||||
Group: Applications
|
||||
BuildRequires: openmpi-devel >= 3.1.2-2
|
||||
Requires: openmpi%{?_isa}
|
||||
%description openmpi
|
||||
MPI test suite compiled against the openmpi package
|
||||
%endif
|
||||
|
||||
%package mpich
|
||||
Summary: MPI tests package compiled against mpich
|
||||
Group: Applications
|
||||
BuildRequires: mpich-devel >= 3.2.1-8
|
||||
Requires: mpich%{?_isa}
|
||||
%description mpich
|
||||
MPI test suite compiled against the mpich package
|
||||
|
||||
# mvapich2 is not yet built on s390(x)
|
||||
%ifnarch s390 s390x
|
||||
%package mvapich2
|
||||
Summary: MPI tests package compiled against mvapich2
|
||||
Group: Applications
|
||||
BuildRequires: mvapich2-devel >= 2.3-2
|
||||
Requires: mvapich2%{?_isa}
|
||||
%description mvapich2
|
||||
MPI test suite compiled against the mvapich2 package
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -c
|
||||
%setup -T -D -a 1
|
||||
cd osu-micro-benchmarks-%{version}
|
||||
cd ..
|
||||
|
||||
%build
|
||||
# We don't do a non-mpi version of this package, just straight to the mpi builds
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export FC=mpif90
|
||||
export F77=mpif77
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
|
||||
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
|
||||
do_build() {
|
||||
mkdir build-$MPI_COMPILER
|
||||
cp -al mpi-benchmarks-%{intel_mpi_bench_vers} osu-micro-benchmarks-%{osu_micro_bench_vers} build-$MPI_COMPILER
|
||||
cd build-$MPI_COMPILER/mpi-benchmarks-%{intel_mpi_bench_vers}
|
||||
make OPTFLAGS="%{build_cflags}" LDFLAGS="%{build_ldflags}" MPI_HOME="$MPI_HOME" all
|
||||
cd ../osu-micro-benchmarks-%{osu_micro_bench_vers}
|
||||
autoreconf -vif
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
cd ../..
|
||||
}
|
||||
|
||||
# do N builds, one for each mpi stack
|
||||
%ifnarch ppc ppc64
|
||||
%{_openmpi_load}
|
||||
do_build
|
||||
%{_openmpi_unload}
|
||||
%endif
|
||||
|
||||
%{_mpich_load}
|
||||
do_build
|
||||
%{_mpich_unload}
|
||||
|
||||
%ifnarch s390 s390x
|
||||
%{_mvapich2_load}
|
||||
do_build
|
||||
%{_mvapich2_unload}
|
||||
|
||||
%endif
|
||||
|
||||
%install
|
||||
do_install() {
|
||||
mkdir -p %{buildroot}$MPI_BIN
|
||||
cd build-$MPI_COMPILER/osu-micro-benchmarks-%{osu_micro_bench_vers}
|
||||
make install DESTDIR=%{buildroot}/staging
|
||||
find %{buildroot}/staging -name 'osu_*' -type f -perm -111 | while read X; do
|
||||
mv $X %{buildroot}$MPI_BIN/mpitests-$(basename $X)
|
||||
done
|
||||
cd ../mpi-benchmarks-%{intel_mpi_bench_vers}/
|
||||
for X in IMB-*; do
|
||||
cp $X %{buildroot}$MPI_BIN/mpitests-$X
|
||||
done
|
||||
cd ../..
|
||||
}
|
||||
|
||||
# do N installs, one for each mpi stack
|
||||
%ifnarch ppc ppc64
|
||||
%{_openmpi_load}
|
||||
do_install
|
||||
%{_openmpi_unload}
|
||||
%endif
|
||||
|
||||
%{_mpich_load}
|
||||
do_install
|
||||
%{_mpich_unload}
|
||||
|
||||
%ifnarch s390 s390x
|
||||
%{_mvapich2_load}
|
||||
do_install
|
||||
%{_mvapich2_unload}
|
||||
%endif
|
||||
|
||||
%ifnarch ppc ppc64
|
||||
%files openmpi
|
||||
%{_libdir}/openmpi/bin/mpitests-*
|
||||
%endif
|
||||
|
||||
%files mpich
|
||||
%{_libdir}/mpich/bin/mpitests-*
|
||||
|
||||
%ifnarch s390 s390x
|
||||
%files mvapich2
|
||||
%{_libdir}/mvapich2/bin/mpitests-*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Feb 18 2021 Honggang Li <honli@redhat.com> - 5.7-1
|
||||
- Update OSU benchmarks to upstream release 5.7
|
||||
- Build mpitests for RHEL9
|
||||
- Resolves: rhbz#1923508
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
||||
SHA512 (osu-micro-benchmarks-5.7.tar.gz) = 33e0346ec59d7d5df51e8e68408baadbbeaef70df4ba60311df3525290b9ab27542b211694c9143c8e351616a2abe36139d92ca06131ac34dbc882b16a82ed65
|
||||
SHA512 (IMB-v2019.6.tar.gz) = 0a43a21afa2c89e11aa582860969ff2acccb0b48e1ba93b78724d74883cf94a058b95d67060450816e63422847a5ebf6fefef5a6a0cdd18ddf2fa392e066ffba
|
10
tests/run_tests.sh
Executable file
10
tests/run_tests.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# when running this in 1minutetip the PATH must be specified to execute
|
||||
# in the local directory.
|
||||
echo "Setting path to local directory"
|
||||
PATH=$PATH:$(pwd)
|
||||
|
||||
# simple sanity test
|
||||
sanity.sh
|
||||
exit $?
|
37
tests/sanity.sh
Executable file
37
tests/sanity.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This is a simple sanity test to satisfy the RHEL8.1 onboard gating
|
||||
# requirement.
|
||||
|
||||
ret=0
|
||||
source /etc/profile.d/modules.sh
|
||||
|
||||
module load mpi/openmpi-x86_64
|
||||
|
||||
mpitests-IMB-EXT Window Accumulate
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-IMB-IO S_Write_Indv S_Read_Indv
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-IMB-IO P_IWrite_Indv P_IRead_Indv
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-IMB-IO C_Write_Shared C_Read_Shared
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-IMB-IO Open_Close
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-IMB-RMA All_put_all All_get_all
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-osu_hello
|
||||
let ret=$ret+$?
|
||||
|
||||
mpitests-osu_init
|
||||
let ret=$ret+$?
|
||||
|
||||
module unload mpi/openmpi-x86_64
|
||||
|
||||
exit $ret
|
13
tests/tests.yml
Normal file
13
tests/tests.yml
Normal file
@ -0,0 +1,13 @@
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
tests:
|
||||
- simple:
|
||||
dir: . # switch to subfolder. This parameter is REQUIRED, use `dir: .` for current folder
|
||||
run: ./run_tests.sh # this is your test command, its exit code is the outcome of the test
|
||||
required_packages:
|
||||
- environment-modules
|
||||
- openmpi
|
||||
- mpitests-openmpi
|
Loading…
Reference in New Issue
Block a user