ECP VELOC (#8581)
* kvtree package file * MPI is default on * proper mpi compiler * rankstr package * better rankstr description * typo * redset package * shuffile package * er package * axl package * proper pythor * mpi is default on * alpha releases and master versions * veloc package with boost headers dep * cmake version * added C++11 requirement * flake8 * flake8 * ecp tag * axl: better async api option handling * veloc package description * prettier args list * C++11 flag handler * v1.0 of veloc
This commit is contained in:
parent
891aa6ad7a
commit
c907937ff4
74
var/spack/repos/builtin/packages/axl/package.py
Normal file
74
var/spack/repos/builtin/packages/axl/package.py
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
from spack.error import SpackError
|
||||||
|
|
||||||
|
|
||||||
|
def async_api_validator(values):
|
||||||
|
if 'none' in values and len(values) != 1:
|
||||||
|
raise SpackError("The value 'none' is not usable"
|
||||||
|
" with other async_api values.")
|
||||||
|
if 'ibm_bbapi' in values and 'cray_dw' in values:
|
||||||
|
raise SpackError("The 'ibm_bbapi' and 'cray_dw' asynchronous"
|
||||||
|
" APIs are incompatible.")
|
||||||
|
|
||||||
|
|
||||||
|
class Axl(CMakePackage):
|
||||||
|
"""Asynchronous transfer library"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/AXL"
|
||||||
|
url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.0.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('0.1.0', '1ff16c046c3a080c252e0bf4251b83bc')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/axl.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
variant('async_api', default='daemon',
|
||||||
|
description="Set of async transfer APIs to enable",
|
||||||
|
values=['cray_dw', 'ibm_bbapi', 'daemon', 'none'], multi=True,
|
||||||
|
validator=async_api_validator)
|
||||||
|
|
||||||
|
# not-yet implemented functionality
|
||||||
|
conflicts('async_api=cray_dw', when='@0.1.0')
|
||||||
|
conflicts('async_api=ibm_bbapi', when='@0.1.0')
|
||||||
|
|
||||||
|
depends_on('kvtree')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DAXL_LINK_STATIC=ON")
|
||||||
|
args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
|
||||||
|
|
||||||
|
apis = self.spec.variants['async_api'].value.split(',')
|
||||||
|
if 'daemon' in apis:
|
||||||
|
args.append('-DAXL_ASYNC_DAEMON=ON')
|
||||||
|
apis.remove('daemon')
|
||||||
|
|
||||||
|
for api in apis:
|
||||||
|
args.append('-DAXL_ASYNC_API={0}'.format(api))
|
||||||
|
|
||||||
|
return args
|
52
var/spack/repos/builtin/packages/er/package.py
Normal file
52
var/spack/repos/builtin/packages/er/package.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Er(CMakePackage):
|
||||||
|
"""Encoding and redundancy on a file set"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/er"
|
||||||
|
url = "https://github.com/ECP-VeloC/er/archive/v0.0.1.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('0.0.2', '24ad8f87bce2b6d900f1fb67452c3672')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/er.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
depends_on('mpi')
|
||||||
|
depends_on('kvtree')
|
||||||
|
depends_on('redset')
|
||||||
|
depends_on('shuffile')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DER_LINK_STATIC=ON")
|
||||||
|
args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
|
||||||
|
args.append("-DWITH_REDSET_PREFIX=%s" % self.spec['redset'].prefix)
|
||||||
|
args.append("-DWITH_SHUFFILE_PREFIX=%s" % self.spec['shuffile'].prefix)
|
||||||
|
return args
|
52
var/spack/repos/builtin/packages/kvtree/package.py
Normal file
52
var/spack/repos/builtin/packages/kvtree/package.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Kvtree(CMakePackage):
|
||||||
|
"""KVTree provides a fully extensible C datastructure modeled after perl
|
||||||
|
hashes."""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/KVTree"
|
||||||
|
url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.0.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('1.0.1', 'f007b4b930d12fc0eb784b4dc3af823e')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/kvtree.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
variant('mpi', default=True, description="Build with MPI message packing")
|
||||||
|
depends_on('mpi', when='+mpi')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
if self.spec.satisfies('+mpi'):
|
||||||
|
args.append("-DMPI=ON")
|
||||||
|
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
|
||||||
|
else:
|
||||||
|
args.append("-DMPI=OFF")
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DKVTREE_LINK_STATIC=ON")
|
||||||
|
return args
|
46
var/spack/repos/builtin/packages/rankstr/package.py
Normal file
46
var/spack/repos/builtin/packages/rankstr/package.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Rankstr(CMakePackage):
|
||||||
|
"""Assign one-to-one mapping of MPI ranks to strings"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/rankstr"
|
||||||
|
url = "https://github.com/ECP-VeloC/rankstr/archive/v0.0.1.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('0.0.1', 'abe06fa6a78cfe20ec0c78717ac2f2ed')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/rankstr.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
depends_on('mpi')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DRANKSTR_LINK_STATIC=ON")
|
||||||
|
return args
|
50
var/spack/repos/builtin/packages/redset/package.py
Normal file
50
var/spack/repos/builtin/packages/redset/package.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Redset(CMakePackage):
|
||||||
|
"""Create MPI communicators for disparate redundancy sets"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/redset"
|
||||||
|
url = "https://github.com/ECP-VeloC/redset/archive/v0.0.1.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('0.0.2', '370d4dd477ebcfdd28dcc6375c22f731')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/redset.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
depends_on('mpi')
|
||||||
|
depends_on('rankstr')
|
||||||
|
depends_on('kvtree+mpi')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DREDSET_LINK_STATIC=ON")
|
||||||
|
args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
|
||||||
|
args.append("-DWITH_RANKSTR_PREFIX=%s" % self.spec['rankstr'].prefix)
|
||||||
|
return args
|
48
var/spack/repos/builtin/packages/shuffile/package.py
Normal file
48
var/spack/repos/builtin/packages/shuffile/package.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Shuffile(CMakePackage):
|
||||||
|
"""Shuffle files between MPI ranks"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/shuffile"
|
||||||
|
url = "https://github.com/ECP-VeloC/shuffile/archive/v0.0.1.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('0.0.2', 'eca45150d83e21ac51049133a2308d34')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/shuffile.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
depends_on('mpi')
|
||||||
|
depends_on('kvtree')
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
|
||||||
|
if self.spec.satisfies('platform=cray'):
|
||||||
|
args.append("-DSHUFFILE_LINK_STATIC=ON")
|
||||||
|
args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
|
||||||
|
return args
|
66
var/spack/repos/builtin/packages/veloc/package.py
Normal file
66
var/spack/repos/builtin/packages/veloc/package.py
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Veloc(CMakePackage):
|
||||||
|
"""Very-Low Overhead Checkpointing System. VELOC is a multi-level
|
||||||
|
checkpoint-restart runtime for HPC supercomputing infrastructures"""
|
||||||
|
|
||||||
|
homepage = "https://github.com/ECP-VeloC/VELOC"
|
||||||
|
url = "https://github.com/ECP-VeloC/VELOC/archive/veloc-1.0rc1.zip"
|
||||||
|
tags = ['ecp']
|
||||||
|
|
||||||
|
version('1.0', '98fe2d9abd2a1b53d7a52267dab91fae')
|
||||||
|
version('1.0rc1', 'c6db0de56b5b865183b1fa719ac74c1d')
|
||||||
|
version('master', git='https://github.com/ecp-veloc/veloc.git',
|
||||||
|
branch='master')
|
||||||
|
|
||||||
|
depends_on('boost~atomic~chrono~clanglibcpp~date_time~debug~exception'
|
||||||
|
'~filesystem~graph~icu~iostreams~locale~log~math~mpi'
|
||||||
|
'~multithreaded~numpy~program_options~python~random~regex'
|
||||||
|
'~serialization~shared~signals~singlethreaded~system'
|
||||||
|
'~taggedlayout~test~thread~timer~versionedlayout~wave')
|
||||||
|
depends_on('libpthread-stubs')
|
||||||
|
depends_on('mpi')
|
||||||
|
depends_on('er')
|
||||||
|
depends_on('axl')
|
||||||
|
depends_on('cmake@3.9:', type='build')
|
||||||
|
|
||||||
|
# requires C++11
|
||||||
|
def flag_handler(self, name, flags):
|
||||||
|
flags = list(flags)
|
||||||
|
if name == 'cxxflags':
|
||||||
|
flags.append(self.compiler.cxx11_flag)
|
||||||
|
return (None, None, flags)
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = [
|
||||||
|
"-DWITH_AXL_PREFIX=%s" % self.spec['axl'].prefix,
|
||||||
|
"-DWITH_ER_PREFIX=%s" % self.spec['er'].prefix,
|
||||||
|
"-DBOOST_ROOT=%s" % self.spec['boost'].prefix
|
||||||
|
]
|
||||||
|
|
||||||
|
return args
|
Loading…
Reference in New Issue
Block a user