Accepting request 851924 from science:HPC
- Update to mpiP version 3.5 * Update deprecated functions. * Fix ARM typo and add LSE configure test. * Correct pt2pt histogram reporting check. * Address compiler warnings for some mt function return types. * Correct build behavior for testing multi-threaded support with Spectrum MPI. * Missing function argument entry. * Additional I/O routines * currBasetype fix * Update to test suite to include multi-threaded tests * Followup for renaming wrappers.c to mpiP-wrappers.c * Include mpiP in wrappers file name for call site reporting * Clarify stack tracing behavior * Correct autoheader error with HAVE_BFD_GET_SECTION_MACROS. Make define behavior consistent. * Convenience functionality to avoid SMPI libmpiP * Arch files corrections for gcc and opal code. * update to work with binutils-2.34 * Fixed report header printing bug with large argument counts. * fix make-wrappers.py indentation and make python 2 and 3 compatible * Re-organized sizeof test to avoid CC defaulting to gcc. Re-organized default compilers. * Add Multi-Threading (MT) test suite * Fix FORTRAN Bindings: properly handle strings * Fix the code accounting the application time * Fix TLS cleanup code * Fix MT timings * Refine statistics reset procedure * Reduce the number of TLS accesses OBS-URL: https://build.opensuse.org/request/show/851924 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpiP?expand=0&rev=13
This commit is contained in:
commit
6d210771c8
23
Add-return-value-to-non-void-function.patch
Normal file
23
Add-return-value-to-non-void-function.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From: Egbert Eich <eich@suse.com>
|
||||
Date: Sun Nov 29 20:38:47 2020 +0100
|
||||
Subject: Add return value to non-void function
|
||||
Patch-mainline: Not yet
|
||||
Git-commit: 98cc1a7453a2f55dfe2477d62e8ce3f049e0ed1f
|
||||
References:
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
---
|
||||
testing/mt/mt_common.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
diff --git a/testing/mt/mt_common.c b/testing/mt/mt_common.c
|
||||
index ff92d9e..bda59c3 100644
|
||||
--- a/testing/mt/mt_common.c
|
||||
+++ b/testing/mt/mt_common.c
|
||||
@@ -310,6 +310,7 @@ void* _mt_common_proxy_thread(void *id_ptr)
|
||||
{
|
||||
test_thr_data_t *tdata = (test_thr_data_t*)id_ptr;
|
||||
tdata->fptr(tdata->tid);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
void mt_common_exec(mt_common_thrptr_t *workers)
|
@ -2,6 +2,7 @@
|
||||
<package>gnu-openmpi-hpc</package>
|
||||
<package>gnu-openmpi2-hpc</package>
|
||||
<package>gnu-openmpi3-hpc</package>
|
||||
<package>gnu-openmpi4-hpc</package>
|
||||
<package>gnu-mvapich2-hpc</package>
|
||||
<package>gnu-mpich-hpc</package>
|
||||
</multibuild>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:688bf37d73211e6a915f9fc59c358282a266d166c0a10af07a38a01a473296f0
|
||||
size 216045
|
3
mpiP-3.5.tgz
Normal file
3
mpiP-3.5.tgz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e366843d53fa016fb03903e51c8aac901aa5155edabe64698a8d6fa618a03bbd
|
||||
size 336942
|
73
mpiP.changes
73
mpiP.changes
@ -1,3 +1,74 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 28 11:49:04 UTC 2020 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- Update to mpiP version 3.5
|
||||
* Update deprecated functions.
|
||||
* Fix ARM typo and add LSE configure test.
|
||||
* Correct pt2pt histogram reporting check.
|
||||
* Address compiler warnings for some mt function return types.
|
||||
* Correct build behavior for testing multi-threaded support
|
||||
with Spectrum MPI.
|
||||
* Missing function argument entry.
|
||||
* Additional I/O routines
|
||||
* currBasetype fix
|
||||
* Update to test suite to include multi-threaded tests
|
||||
* Followup for renaming wrappers.c to mpiP-wrappers.c
|
||||
* Include mpiP in wrappers file name for call site reporting
|
||||
* Clarify stack tracing behavior
|
||||
* Correct autoheader error with HAVE_BFD_GET_SECTION_MACROS.
|
||||
Make define behavior consistent.
|
||||
* Convenience functionality to avoid SMPI libmpiP
|
||||
* Arch files corrections for gcc and opal code.
|
||||
* update to work with binutils-2.34
|
||||
* Fixed report header printing bug with large argument counts.
|
||||
* fix make-wrappers.py indentation and make python 2 and 3 compatible
|
||||
* Re-organized sizeof test to avoid CC defaulting to gcc.
|
||||
Re-organized default compilers.
|
||||
* Add Multi-Threading (MT) test suite
|
||||
* Fix FORTRAN Bindings: properly handle strings
|
||||
* Fix the code accounting the application time
|
||||
* Fix TLS cleanup code
|
||||
* Fix MT timings
|
||||
* Refine statistics reset procedure
|
||||
* Reduce the number of TLS accesses
|
||||
* First cut on multi-threading
|
||||
* Extract callsite code to a separate module
|
||||
* Move nested call check down the stack
|
||||
* Introduce additional statistics layer
|
||||
* First step towards MT support
|
||||
* Refactor global state: remove unneeded component
|
||||
* Preliminary step for adding multi-threaded support
|
||||
* Configury change: introduce mpiP-state.[c|h] files
|
||||
* Get rid of mpiPi.h.in file as unneeded
|
||||
* Adding autoconf PACKAGE defines to address current bfd.h
|
||||
requirement.
|
||||
* Fix mpi.h includes in some of the tests
|
||||
* Indentation fixes only. No actual changes.
|
||||
* Change default stack frame unwinding count.
|
||||
* Remove functions deprecated since MPI-2.0
|
||||
* Avoid LD_PRELOAD symbol conflict between srun and libiberty.
|
||||
* Create README.md
|
||||
* Corrected type issues resulting in compiler warnings in the
|
||||
test suite.
|
||||
* Make PC modification conditional. (Removed for now.)
|
||||
* Adding additional RMA functions to cover all MPI3.1 RMA
|
||||
functions. Expanded test coverage.
|
||||
* Added MPI3 One-sided operation support, from changes by Jeff Hammond.
|
||||
* Additional github migration.
|
||||
* Adding README.md
|
||||
* Added support for non-blocking collectives.
|
||||
* Provide non-NULL error argument for dwarf calls.
|
||||
Remove call to elf_end. Ignore compile units with no
|
||||
function information, rather than abort.
|
||||
* Reduce unnecessary debugging output.
|
||||
* Add count column to top time section.
|
||||
* Adding fortran symbol failure output for debugging configure issues.
|
||||
- Add build support for gcc10 to HPC build (bsc#1174439).
|
||||
- Add openmpi4 flavors.
|
||||
- Add: Add-return-value-to-non-void-function.patch
|
||||
Preliminary %check stage. A number of checks fail currently.
|
||||
These need to be looked at.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 13 19:38:31 UTC 2020 - Egbert Eich <eich@suse.com>
|
||||
|
||||
@ -8,6 +79,8 @@ Fri Nov 29 19:42:39 UTC 2019 - Egbert Eich <eich@suse.com>
|
||||
|
||||
- Add missing openmpi2 build for gcc7.
|
||||
- Add support for gcc8 and gcc9 (jsc#SLE-7766 & jsc#SLE-8604).
|
||||
- Include mpiP wrapper scripts for mpirun and Slurm srun.
|
||||
- Package API.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 28 16:03:47 UTC 2019 - Egbert Eich <eich@suse.com>
|
||||
|
166
mpiP.spec
166
mpiP.spec
@ -19,12 +19,15 @@
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
%define pname mpiP
|
||||
%define vers 3.4.1
|
||||
%define _vers 3_4_1
|
||||
%define vers 3.5
|
||||
%define _vers 3_5
|
||||
|
||||
%if 0%{?sle_version} >= 150200
|
||||
%define DisOMPI1 ExclusiveArch: do_not_build
|
||||
%endif
|
||||
%if 0%{?sle_version} >= 150300
|
||||
%define DisOMPI2 ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
%if "%flavor" == ""
|
||||
ExclusiveArch: do_not_build
|
||||
@ -54,6 +57,14 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_ver 3
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu-openmpi4-hpc"
|
||||
%{?DisOMPI4}
|
||||
%global compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 4
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu-mvapich2-hpc"
|
||||
%global compiler_family gnu
|
||||
%undefine c_f_ver
|
||||
@ -90,6 +101,14 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_ver 3
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu7-openmpi4-hpc"
|
||||
%{?DisOMPI4}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 4
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu7-mvapich2-hpc"
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 7
|
||||
@ -110,6 +129,14 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_ver 1
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu8-openmpi2-hpc"
|
||||
%{?DisOMPI2}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 8
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 2
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu8-openmpi3-hpc"
|
||||
%{?DisOMPI3}
|
||||
%global compiler_family gnu
|
||||
@ -118,12 +145,12 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_ver 3
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu8-openmpi2-hpc"
|
||||
%{?DisOMPI3}
|
||||
%if "%{flavor}" == "gnu8-openmpi4-hpc"
|
||||
%{?DisOMPI4}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 8
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 2
|
||||
%define mpi_ver 4
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu8-mvapich2-hpc"
|
||||
@ -147,7 +174,7 @@ ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu9-openmpi2-hpc"
|
||||
%{?DisOMPI3}
|
||||
%{?DisOMPI2}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 9
|
||||
%define mpi_family openmpi
|
||||
@ -162,6 +189,14 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_ver 3
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu9-openmpi4-hpc"
|
||||
%{?DisOMPI4}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 9
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 4
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu9-mvapich2-hpc"
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 9
|
||||
@ -174,6 +209,50 @@ ExclusiveArch: do_not_build
|
||||
%define mpi_family mpich
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-openmpi-hpc"
|
||||
%{?DisOMPI1}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 1
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-openmpi2-hpc"
|
||||
%{?DisOMPI2}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 2
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-openmpi3-hpc"
|
||||
%{?DisOMPI3}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 3
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-openmpi4-hpc"
|
||||
%{?DisOMPI4}
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family openmpi
|
||||
%define mpi_ver 4
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-mvapich2-hpc"
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family mvapich2
|
||||
%endif
|
||||
|
||||
%if "%{flavor}" == "gnu10-mpich-hpc"
|
||||
%global compiler_family gnu
|
||||
%define c_f_ver 10
|
||||
%define mpi_family mpich
|
||||
%endif
|
||||
|
||||
%{?hpc_init:%{hpc_init -c %compiler_family -m %mpi_family %{?c_f_ver:-v %{c_f_ver}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}}}
|
||||
|
||||
Name: %{?hpc_package_name:%{hpc_package_name %_vers}}%{!?hpc_package_name:%pname}
|
||||
@ -182,17 +261,21 @@ License: BSD-3-Clause
|
||||
Group: Development/Tools/Debuggers
|
||||
Version: %vers
|
||||
Release: 0
|
||||
URL: http://mpip.sourceforge.net/
|
||||
Source0: http://sourceforge.net/projects/mpip/files/mpiP/mpiP-3.4.1/mpiP-%{version}.tar.gz
|
||||
URL: https://github.com/LLNL/mpiP
|
||||
Source0: https://github.com/LLNL/mpiP/releases/download/%{version}/mpip-%{version}.tgz#/%{pname}-%{version}.tgz
|
||||
Patch1: mpip.unwinder.patch
|
||||
Patch2: Add-return-value-to-non-void-function.patch
|
||||
|
||||
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
|
||||
BuildRequires: %{mpi_family}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel
|
||||
BuildRequires: binutils-devel
|
||||
BuildRequires: dejagnu
|
||||
BuildRequires: libunwind-devel
|
||||
BuildRequires: lua-lmod
|
||||
BuildRequires: python
|
||||
#BuildRequires: slurm-node
|
||||
BuildRequires: suse-hpc
|
||||
%hpc_requires
|
||||
%hpc_requires_devel
|
||||
%{?hpc_requires}
|
||||
|
||||
%description
|
||||
mpiP is a profiling library for MPI applications.
|
||||
@ -205,14 +288,27 @@ file.
|
||||
|
||||
%{hpc_master_package -L}
|
||||
|
||||
%package devel
|
||||
Summary: Headers for profiling library for MPI applications
|
||||
Group: Development/Libraries/C and C++
|
||||
%{?hpc_requires_devel}
|
||||
|
||||
%description devel
|
||||
mpiP is a profiling library for MPI applications. This packages contains
|
||||
the build headers.
|
||||
|
||||
%{hpc_master_package devel}
|
||||
|
||||
%package devel-static
|
||||
Summary: Static version of profiling library for MPI applications
|
||||
Group: Development/Libraries/C and C++
|
||||
%hpc_requires_devel
|
||||
%{?hpc_requires_devel}
|
||||
|
||||
%description devel-static
|
||||
mpiP is a profiling library for MPI applications.
|
||||
|
||||
This package contains the static libraries.
|
||||
|
||||
%package doc
|
||||
Summary: Documentation for the mpiP profiling library
|
||||
Group: Documentation/Other
|
||||
@ -226,18 +322,20 @@ This contains the documentation.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{pname}-%{version}
|
||||
%patch1 -p1
|
||||
%autopatch -p1
|
||||
sed -i -e "/-shared -o \$@/s#\(\${LDFLAGS}\)#\1 -Wl,-soname,\$@#" Makefile.in
|
||||
|
||||
%build
|
||||
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
||||
%hpc_setup
|
||||
CC=mpicc
|
||||
CXX=mpicxx
|
||||
FC=mpif90
|
||||
CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\""
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export FC=mpifort
|
||||
export F77=$FC
|
||||
export CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\""
|
||||
export FFLAGS="-std=legacy"
|
||||
%hpc_configure \
|
||||
--enable-demangling \
|
||||
--disable-libunwind \
|
||||
%ifarch aarch64
|
||||
--enable-setjmp \
|
||||
%endif
|
||||
@ -246,11 +344,19 @@ CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\""
|
||||
make %{?_smp_mflags} shared
|
||||
|
||||
%install
|
||||
|
||||
%hpc_setup
|
||||
%make_install
|
||||
make install-all DESTDIR=%{?buildroot}
|
||||
find "%{buildroot}" -type f -name "*.a" -exec chmod a-x {} +
|
||||
find "%{buildroot}/%{_docdir}" -type f -exec chmod a-x {} +
|
||||
find "%{buildroot}/%{hpc_includedir}" -type f -exec chmod a-x {} +
|
||||
%{hpc_shebang_sanitize_scripts %{buildroot}%{hpc_bindir}}
|
||||
for i in mpirun-mpip srun-mpip; do
|
||||
sed -i \
|
||||
-e "s@\(MPIP_DIR=\).*@\1%{?hpc_prefix}@" \
|
||||
-e "s@\(LD_PRELOAD=\).*:\(.*\)@\1\2@" \
|
||||
-e "s@\(ADDTL_RT_LIBS=.*\)@#\1@" \
|
||||
-e "s@/lib/libmpiP.so@/%{_lib}/libmpiP.so@" %{buildroot}%{hpc_bindir}/$i
|
||||
done
|
||||
|
||||
%hpc_write_modules_files
|
||||
#%%Module1.0#####################################################################
|
||||
@ -271,28 +377,44 @@ module-whatis "URL %{url}"
|
||||
|
||||
set version %{version}
|
||||
|
||||
prepend-path PATH %{hpc_bindir}
|
||||
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
|
||||
if {[file isdirectory %{hpc_includedir}]} {
|
||||
prepend-path C_INCLUDE_PATH %{hpc_includedir}
|
||||
prepend-path INCLUDE %{hpc_includedir}
|
||||
}
|
||||
|
||||
setenv %{hpc_upcase %pname}_DIR %{hpc_prefix}
|
||||
setenv %{hpc_upcase %pname}_LIB %{hpc_libdir}
|
||||
|
||||
EOF
|
||||
|
||||
%check
|
||||
%hpc_setup
|
||||
export CC=mpicc
|
||||
export CXX=mpicxx
|
||||
export FC=mpifort
|
||||
export F77=$FC
|
||||
export FFLAGS="-std=legacy"
|
||||
LD_LIBRARY_PATH=$(pwd)${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
make FFLAGS+=${FFLAGS} check || exit 0
|
||||
|
||||
%postun
|
||||
%hpc_module_delete_if_default
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{hpc_dirs}
|
||||
%{hpc_modules_files}
|
||||
%{hpc_libdir}/*so
|
||||
%{hpc_bindir}
|
||||
|
||||
%files doc
|
||||
%defattr(0644,root,root,-)
|
||||
%{_docdir}/%{name}/
|
||||
|
||||
%files devel
|
||||
%{hpc_includedir}
|
||||
|
||||
%files devel-static
|
||||
%defattr(0644,root,root,-)
|
||||
%{hpc_libdir}/*.a
|
||||
|
||||
%changelog
|
||||
|
@ -12,8 +12,8 @@ diff -ruN mpiP-3.4.1.old/Defs.mak.in mpiP-3.4.1/Defs.mak.in
|
||||
CPPFLAGS += -DIA32
|
||||
endif
|
||||
diff -ruN mpiP-3.4.1.old/mpiPi.h.in mpiP-3.4.1/mpiPi.h.in
|
||||
--- mpiP-3.4.1.old/mpiPi.h.in 2014-03-13 19:46:07.000000000 +0000
|
||||
+++ mpiP-3.4.1/mpiPi.h.in 2017-01-10 07:52:48.783447707 +0000
|
||||
--- mpiP-3.4.1.old/mpiPi.h 2014-03-13 19:46:07.000000000 +0000
|
||||
+++ mpiP-3.4.1/mpiPi.h 2017-01-10 07:52:48.783447707 +0000
|
||||
@@ -276,6 +276,12 @@
|
||||
#define FramePC(fp) ((void *) *(long *) (((long) fp) + (2 * sizeof (void *))))
|
||||
#define NextFP(fp) ((void *) *(long *) fp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user