From 6f676f83b1528b89f626a2618880c4293a1fcb84ab456cd3aaf4b86fa0cc94f8 Mon Sep 17 00:00:00 2001 From: Ana Guerrero Date: Fri, 8 Nov 2019 09:04:08 +0000 Subject: [PATCH] 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 --- .gitattributes | 23 +++++ .gitignore | 1 + 3.5.0.tar.gz | 3 + _multibuild | 4 + diy-disable-memory-heavy-tests.patch | 33 +++++++ diy.changes | 17 ++++ diy.spec | 143 +++++++++++++++++++++++++++ 7 files changed, 224 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 3.5.0.tar.gz create mode 100644 _multibuild create mode 100644 diy-disable-memory-heavy-tests.patch create mode 100644 diy.changes create mode 100644 diy.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/3.5.0.tar.gz b/3.5.0.tar.gz new file mode 100644 index 0000000..0de56c8 --- /dev/null +++ b/3.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3b5490441d521b6e9b33471c782948194bf95c7c3df3eb97bc5cf4530b91576 +size 283256 diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..47e6c69 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + serial + mpich + diff --git a/diy-disable-memory-heavy-tests.patch b/diy-disable-memory-heavy-tests.patch new file mode 100644 index 0000000..22d8bd2 --- /dev/null +++ b/diy-disable-memory-heavy-tests.patch @@ -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} $ -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} diff --git a/diy.changes b/diy.changes new file mode 100644 index 0000000..7c96861 --- /dev/null +++ b/diy.changes @@ -0,0 +1,17 @@ +------------------------------------------------------------------- +Thu Nov 7 23:39:44 UTC 2019 - Atri Bhattacharya + +- 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. + diff --git a/diy.spec b/diy.spec new file mode 100644 index 0000000..1e74563 --- /dev/null +++ b/diy.spec @@ -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