Accepting request 746509 from home:badshah400:branches:science

New package

OBS-URL: https://build.opensuse.org/request/show/746509
OBS-URL: https://build.opensuse.org/package/show/science/diy?expand=0&rev=1
This commit is contained in:
Ana Guerrero 2019-11-08 09:04:08 +00:00 committed by Git OBS Bridge
commit 6f676f83b1
7 changed files with 224 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

3
3.5.0.tar.gz Normal file
View File

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

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>serial</package>
<package>mpich</package>
</multibuild>

View File

@ -0,0 +1,33 @@
Index: diy-3.5.0/tests/CMakeLists.txt
===================================================================
--- diy-3.5.0.orig/tests/CMakeLists.txt
+++ diy-3.5.0/tests/CMakeLists.txt
@@ -133,14 +133,6 @@ if (mpi AND MPI
endforeach (b)
endforeach (p)
- foreach (p 2 3)
- math (EXPR b "${p} + 1")
- add_test (NAME simple-test-p${p}-b${b}
- COMMAND ${MPIEXEC} -np ${p} $<TARGET_FILE:simple-test> -b ${b}
- )
- set_tests_properties (simple-test-p${p}-b${b} PROPERTIES TIMEOUT 300 RUN_SERIAL ON)
- endforeach (p)
-
foreach (p RANGE 1 ${maxp})
foreach (b 2 4 8 9 12 24 36)
add_test (NAME rexchange-test-p${p}-b${b}
@@ -191,13 +183,6 @@ else (mpi AND MPI
)
endforeach (b)
- foreach (b 3 4)
- add_test (NAME simple-test-nompi-b${b}
- COMMAND simple-test -b ${b}
- )
- set_tests_properties (simple-test-nompi-b${b} PROPERTIES TIMEOUT 300 RUN_SERIAL ON)
- endforeach (b)
-
foreach (b 2 4 8 9 12 24 36)
add_test (NAME rexchange-test-nompi-b${b}
COMMAND rexchange-test -b ${b}

17
diy.changes Normal file
View File

@ -0,0 +1,17 @@
-------------------------------------------------------------------
Thu Nov 7 23:39:44 UTC 2019 - Atri Bhattacharya <badshah400@gmail.com>
- Update to version 3.5.0
* Release notes unavailable.
- Implement multibuild using mpich and serial flavours (others
fail during %%check and are not recommended anyway).
- Implement %%check section.
- Disable all but x86_64: no other arch supported.
- Add diy-disable-memory-heavy-tests.patch: disable a few tests
that are extremely memory expensive (>= 10 GB).
-------------------------------------------------------------------
Wed Nov 23 10:51:08 UTC 2016 - badshah400@gmail.com
- Initial package.

143
diy.spec Normal file
View File

@ -0,0 +1,143 @@
#
# spec file for package diy
#
# Copyright (c) 2019 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 https://bugs.opensuse.org/
#
# SECTION Multibuild Definitions
%global flavor @BUILD_FLAVOR@%{nil}
%define pname diy
%if "%{flavor}" == ""
%define package_name %{pname}
ExclusiveArch: do_not_build
%else
ExclusiveArch: x86_64
%endif
%if "%{flavor}" == "serial"
%undefine suffix
%undefine mpi_flavor
%endif
%if "%{flavor}" == "mpich"
%global mpi_flavor mpich
%global mpi_min_ver 3.3.0
%endif
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
%{?with_mpi:%{!?mpi_flavor:error "No MPI family specified!"}}
%if 0%{!?package_name:1}
%define package_name %{pname}%{?my_suffix}
%endif
%if %{without mpi}
%define my_prefix %{_prefix}
%define my_bindir %{_bindir}
%define my_libdir %{_libdir}
%define my_incdir %{_includedir}
%else
%define my_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}%{?mpi_ext}
%define my_bindir %{my_prefix}/bin
%define my_libdir %{my_prefix}/%{_lib}
%define my_incdir %{my_prefix}/include
%define my_suffix -%{mpi_flavor}%{?mpi_ext}
%endif
# /SECTION
Name: %{package_name}
Version: 3.5.0
Release: 0
Summary: A block-parallel library
License: BSD-3-Clause
URL: https://github.com/diatomic/diy
Source: https://github.com/diatomic/diy/archive/%{version}.tar.gz
# PATCH-FIX-UPSTREAM diy-disable-memory-heavy-tests.patch badshah400@gmail.com -- Disable a few tests requiring more than 10 GB memory
Patch0: diy-disable-memory-heavy-tests.patch
BuildRequires: cmake >= 3.2
BuildRequires: gcc-c++
%if %{with mpi}
BuildRequires: %{mpi_flavor}%{?mpi_ext}-devel
%endif
%description
Diy is a block-parallel library for implementing scalable algorithms
that can execute both in-core and out-of-core. The same program can be
executed with one or more threads per MPI process, seamlessly
combining distributed-memory message passing with shared-memory thread
parallelism. The abstraction enabling these capabilities is block
parallelism; blocks and their message queues are mapped onto
processing elements (MPI processes or threads) and are migrated
between memory and storage by the diy runtime. Complex communication
patterns, including neighbor exchange, merge reduction, swap
reduction, and all-to-all exchange, are possible in- and out-of-core
in diy.
%package devel
Summary: A block-parallel library
%description devel
Diy is a block-parallel library for implementing scalable
algorithms that can execute both in-core and out-of-core. The same
program can be executed with one or more threads per MPI process,
seamlessly combining distributed-memory message passing with
shared-memory thread parallelism. The abstraction enabling these
capabilities is block parallelism; blocks and their message queues
are mapped onto processing elements (MPI processes or threads) and
are migrated between memory and storage by the diy runtime. Complex
communication patterns, including neighbor exchange, merge reduction,
swap reduction, and all-to-all exchange, are possible in- and
out-of-core in diy.
This package provides the header files for development with diy.
%prep
%autosetup -p1 -n %{pname}-%{version}
%build
mkdir -p build
pushd build
# %%cmake can't be used directly because of custom INSTALL_PREFIX requirement
cmake .. \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX="%{my_prefix}" \
%if %{with mpi}
-DCMAKE_C_COMPILER="%{my_bindir}/mpicc" \
-DCMAKE_CXX_COMPILER="%{my_bindir}/mpicxx"
%else
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-Dmpi=OFF
%endif
%cmake_build
popd
%install
%cmake_install
%check
%if %{with mpi}
source %{my_bindir}/mpivars.sh
%endif
%ctest
%files devel
%doc README.md
%license LICENSE.txt LEGAL.txt
%{my_incdir}/*
%changelog