Update ButterflyPACK and STRUMPACK (#13661)

* Add new strumpack version (3.2.0), with new
dependency on ButterflyPACK.

* add ButterflyPACK version 1.1.0

* Add strumpack version 3.3.0, add dependency on ButterflyPACK 1.1.0

* Sort ButterflyPACk versions from newest to oldest

* Add a shared variant for STRUMPACK

* Also allow possible newer versions of ButterflyPACK
This commit is contained in:
Pieter Ghysels 2019-11-11 10:24:13 -08:00 committed by Adam J. Stewart
parent 4934448065
commit 6fc3e73f8d
2 changed files with 20 additions and 5 deletions

View File

@ -22,13 +22,14 @@ class Butterflypack(CMakePackage):
homepage = "https://github.com/liuyangzhuan/ButterflyPACK"
git = "https://github.com/liuyangzhuan/ButterflyPACK.git"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.0.3.tar.gz"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.1.0.tar.gz"
maintainers = ['liuyangzhuan']
version('master', branch='master')
version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232')
version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5')
version('1.1.0', sha256='0e6fd0f9e27b3ee8a273dc52f4d24b8737e7279dc26d461ef5658b317215f1dc')
version('1.0.3', sha256='acf9bc98dd7fea31ab73756b68b3333228b53ab0e85400a8250fcc749a1a6656')
version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5')
version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232')
variant('shared', default=True, description='Build shared libraries')

View File

@ -18,12 +18,14 @@ class Strumpack(CMakePackage):
iterative solvers."""
homepage = "http://portal.nersc.gov/project/sparse/strumpack"
url = "https://github.com/pghysels/STRUMPACK/archive/v3.0.3.tar.gz"
url = "https://github.com/pghysels/STRUMPACK/archive/v3.3.0.tar.gz"
git = "https://github.com/pghysels/STRUMPACK.git"
maintainers = ['pghysels']
version('master', branch='master')
version('3.3.0', sha256='499fd3b58656b4b6495496920e5372895861ebf15328be8a7a9354e06c734bc7')
version('3.2.0', sha256='34d93e1b2a3b8908ef89804b7e08c5a884cbbc0b2c9f139061627c0d2de282c1')
version('3.1.1', sha256='c1c3446ee023f7b24baa97b24907735e89ce4ae9f5ef516645dfe390165d1778')
version('3.1.0', sha256='b4f91b7d433955518b04538be1c726afc5de4bffb163e982ef8844d391b26fa7')
version('3.0.3', sha256='2bd2a40d9585b769ae4ba461de02c6e36433bf2b21827f824a50f2fdf73389f7')
@ -32,6 +34,7 @@ class Strumpack(CMakePackage):
version('3.0.0', sha256='7acd9b4653b8b11380de733c80b164348ca00f9226904f5dc166a8e3db88cd20')
version('2.2.0', sha256='8fe73875cbbb29ed1faf714e3bf13ad538eb062e39d7d5e73cb9c4aafb571e24')
variant('shared', default=True, description='Build shared libraries')
variant('mpi', default=True, description='Use MPI')
variant('openmp', default=True,
description='Enable thread parallellism via tasking with OpenMP')
@ -39,6 +42,8 @@ class Strumpack(CMakePackage):
description='Enable use of ParMetis')
variant('scotch', default=False,
description='Enable use of Scotch')
variant('butterflypack', default=True,
description='Enable use of ButterflyPACK')
variant('c_interface', default=True,
description='Enable C interface')
variant('count_flops', default=False,
@ -59,8 +64,11 @@ class Strumpack(CMakePackage):
depends_on('parmetis', when='+parmetis')
depends_on('scotch~metis', when='+scotch')
depends_on('scotch~metis+mpi', when='+scotch+mpi')
depends_on('butterflypack@1.1.0:', when='+butterflypack+mpi')
conflicts('+parmetis', when='~mpi')
conflicts('+butterflypack', when='~mpi')
conflicts('+butterflypack', when='strumpack@:3.2.0')
patch('intel-19-compile.patch', when='@3.1.1')
@ -90,11 +98,17 @@ def on_off(varstr):
if spec.satisfies('@3.0.4:'):
args.extend([
'-DTPL_ENABLE_PARMETIS=%s' % on_off('+parmetis'),
'-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch')
'-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch'),
'-DTPL_ENABLE_BPACK=%s' % on_off('+butterflypack')
])
else:
args.extend([
'-DSTRUMPACK_USE_PARMETIS=%s' % on_off('+parmetis'),
'-DSTRUMPACK_USE_SCOTCH=%s' % on_off('+scotch')
])
args.extend([
'-DBUILD_SHARED_LIBS=%s' % on_off('+shared')
])
return args