SHA256
1
0
forked from pool/mpiP

Accepting request 851546 from home:eeich:branches: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/851546
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpiP?expand=0&rev=33
This commit is contained in:
Egbert Eich 2020-11-28 16:53:30 +00:00 committed by Git OBS Bridge
parent a584927757
commit 598ebb31b2
6 changed files with 199 additions and 22 deletions

View File

@ -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>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:688bf37d73211e6a915f9fc59c358282a266d166c0a10af07a38a01a473296f0
size 216045

3
mpiP-3.5.tgz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e366843d53fa016fb03903e51c8aac901aa5155edabe64698a8d6fa618a03bbd
size 336942

View File

@ -1,3 +1,71 @@
-------------------------------------------------------------------
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.
-------------------------------------------------------------------
Wed May 13 19:38:31 UTC 2020 - Egbert Eich <eich@suse.com>
@ -8,6 +76,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>

140
mpiP.spec
View File

@ -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"
%{?DisOMPI3}
%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,19 @@ 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
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: 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,10 +286,21 @@ 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.
@ -235,9 +327,9 @@ CC=mpicc
CXX=mpicxx
FC=mpif90
CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\""
export LDFLAGS=-Wl,-soname,libmpiP.so
%hpc_configure \
--enable-demangling \
--disable-libunwind \
%ifarch aarch64
--enable-setjmp \
%endif
@ -246,11 +338,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,7 +371,12 @@ 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}
@ -282,17 +387,18 @@ EOF
%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

View File

@ -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)