Accepting request 532069 from science:HPC:EnvMod

Add mpiP

OBS-URL: https://build.opensuse.org/request/show/532069
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpiP?expand=0&rev=1
This commit is contained in:
Nicolas Morey-Chaisemartin 2017-10-06 06:36:48 +00:00 committed by Git OBS Bridge
commit b4bf7eca11
7 changed files with 232 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>gnu-openmpi-hpc</package>
<package>gnu-mvapich2-hpc</package>
</multibuild>

3
mpiP-3.4.1.tar.gz Normal file
View File

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

6
mpiP.changes Normal file
View File

@ -0,0 +1,6 @@
-------------------------------------------------------------------
Fri Sep 1 16:00:04 UTC 2017 - eich@suse.com
- Initial package creation (FATE#321721).
- mpip.unwinder.patch:
Fix AARCH64.

166
mpiP.spec Normal file
View File

@ -0,0 +1,166 @@
#
# spec file for package mpiP
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%define pname mpiP
%define vers 3.4.1
%define _vers 3_4_1
%if "%flavor" == ""
ExclusiveArch: do_not_build
%endif
%if "%{flavor}" == "gnu-openmpi-hpc"
%global compiler_family gnu
%undefine c_f_ver
%define mpi_family openmpi
%define mpi_ver 1
%endif
%if "%{flavor}" == "gnu-mvapich2-hpc"
%global compiler_family gnu
%undefine c_f_ver
%define mpi_family mvapich2
%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}
Summary: A lightweight profiling library for MPI applications
Version: %vers
Release: 0
License: BSD-3-Clause
Group: Development/Tools/Debuggers
URL: http://mpip.sourceforge.net/
Source0: http://sourceforge.net/projects/mpip/files/mpiP/mpiP-3.4.1/mpiP-%{version}.tar.gz
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: lua-lmod
BuildRequires: suse-hpc
BuildRequires: python
%hpc_requires
%description
mpiP is a lightweight profiling library for MPI applications. Because
it only collects statistical information about MPI functions, mpiP
generates considerably less overhead and much less data than tracing
tools. All the information captured by mpiP is task-local. It only
uses communication during report generation, typically at the end of
the experiment, to merge results from all of the tasks into one output
file.
%{hpc_master_package -L}
%package devel-static
Summary: Static version of profiling library for MPI applications
Group: Development/Tools/Debuggers
%description devel-static
mpiP is a lightweight profiling library for MPI applications. Because
it only collects statistical information about MPI functions, mpiP
generates considerably less overhead and much less data than tracing
tools. All the information captured by mpiP is task-local. It only
uses communication during report generation, typically at the end of
the experiment, to merge results from all of the tasks into one output
file.
%package doc
Summary: Documentation for the mpiP profiling library for MPI applications
Group: Documentation/Other
%description doc
mpiP is a lightweight profiling library for MPI applications. Because
it only collects statistical information about MPI functions, mpiP
generates considerably less overhead and much less data than tracing
tools. All the information captured by mpiP is task-local. It only
uses communication during report generation, typically at the end of
the experiment, to merge results from all of the tasks into one output
file.
%prep
%setup -q -n %{pname}-%{version}
%patch1 -p1
%build
%hpc_setup
CC=mpicc
CXX=mpicxx
FC=mpif90
CFLAGS="-D__DATE__=\\\"NODATE\\\" -D__TIME__=\\\"NOTIME\\\""
%hpc_configure \
--enable-demangling \
--disable-libunwind \
%ifarch aarch64
--enable-setjmp \
%endif
--docdir=%{_docdir}/%{name}
make %{?_smp_mflags} shared
%install
%hpc_setup
make DESTDIR=$RPM_BUILD_ROOT install
%hpc_write_modules_files
#%%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler"
puts stderr "toolchain and the %{mpi_family} MPI stack."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family} MPI"
module-whatis "Version: %{version}"
module-whatis "Category: Profiling library"
module-whatis "Description: %{summary}"
module-whatis "URL %{url}"
set version %{version}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
setenv %{upcase %pname}_DIR %{hpc_prefix}
setenv %{upcase %pname}_LIB %{hpc_libdir}
EOF
%postun
%hpc_module_delete_if_default
%files
%defattr(-,root,root,-)
%{hpc_dirs}
%{hpc_modules_files}
%{hpc_libdir}/*so
%files doc
%attr(644,root,root) %{_docdir}/%{name}/
%files devel-static
%defattr(644,root,root,-)
%{hpc_libdir}/*.a
%changelog

29
mpip.unwinder.patch Normal file
View File

@ -0,0 +1,29 @@
diff -ruN mpiP-3.4.1.old/Defs.mak.in mpiP-3.4.1/Defs.mak.in
--- mpiP-3.4.1.old/Defs.mak.in 2014-03-13 19:46:07.000000000 +0000
+++ mpiP-3.4.1/Defs.mak.in 2017-01-10 07:51:53.771837043 +0000
@@ -63,6 +63,9 @@
endif
ifeq ($(OS),Linux)
+ ifeq ($(ARCH), aarch64)
+ CPPFLAGS += -DAARCH64
+ endif
ifeq ($(ARCH),i686)
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
@@ -276,6 +276,12 @@
#define FramePC(fp) ((void *) *(long *) (((long) fp) + (2 * sizeof (void *))))
#define NextFP(fp) ((void *) *(long *) fp)
+/* AArch64 Linux */
+#elif defined(Linux) && defined(AARCH64)
+#define ParentFP(jb) ((void*) jb[0].__jmpbuf[10])
+#define FramePC(fp) ((void*)(((void**)fp)[1]))
+#define NextFP(fp) ((void*)((void**)fp)[0])
+
/* IA32 Linux */
#elif defined(Linux) && defined(IA32)
#define ParentFP(jb) ((void*) jb[0].__jmpbuf[3])