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
7 changed files with 388 additions and 0 deletions
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 a new issue