diff options
author | Alex Margolin <alex--m@users.noreply.github.com> | 2020-08-09 20:55:49 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-09 12:55:49 -0500 |
commit | c0492efc113ff0188dcf16b05664ed9ffac77258 (patch) | |
tree | d0e28da7c20e09c22c5f21e5d3480ec3ab3d282f | |
parent | 4493d311705f6440b7619ed152e359c9ff94b2ef (diff) | |
download | spack-c0492efc113ff0188dcf16b05664ed9ffac77258.tar.gz spack-c0492efc113ff0188dcf16b05664ed9ffac77258.tar.bz2 spack-c0492efc113ff0188dcf16b05664ed9ffac77258.tar.xz spack-c0492efc113ff0188dcf16b05664ed9ffac77258.zip |
KNEM and XPMEM support for UCX (#17215)
* KNEM url updated
Signed-off-by: Alex Margolin <alex.margolin@huawei.com>
* Allow UCX to be built against KNEM and XPMEM
Signed-off-by: Alex Margolin <alex.margolin@huawei.com>
-rw-r--r-- | var/spack/repos/builtin/packages/knem/package.py | 20 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/ucx/package.py | 59 |
2 files changed, 39 insertions, 40 deletions
diff --git a/var/spack/repos/builtin/packages/knem/package.py b/var/spack/repos/builtin/packages/knem/package.py index 473a178319..def620ab4f 100644 --- a/var/spack/repos/builtin/packages/knem/package.py +++ b/var/spack/repos/builtin/packages/knem/package.py @@ -11,18 +11,26 @@ class Knem(AutotoolsPackage): communication for large messages.""" homepage = "http://knem.gforge.inria.fr" - url = "http://gforge.inria.fr/frs/download.php/37186/knem-1.1.3.tar.gz" - list_url = "http://knem.gforge.inria.fr/download" + url = "https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz" + list_url = "https://knem.gitlabpages.inria.fr/download" + git = "https://gitlab.inria.fr/knem/knem.git" maintainers = ['skosukhin'] - version('1.1.3', sha256='50d3c4a20c140108b8ce47aaafd0ade0927d6f507e1b5cc690dd6bddeef30f60') + version('master', branch='master') + version('1.1.4', sha256='9f0e360579ae7655e07d6644583fd325515e9ff2b42ef5decb5421a003510937', + url="https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz") + version('1.1.3', sha256='50d3c4a20c140108b8ce47aaafd0ade0927d6f507e1b5cc690dd6bddeef30f60', + url="https://gitlab.inria.fr/knem/knem/uploads/59375c38537e6ff2d94209f190c54aa6/knem-1.1.3.tar.gz") variant('hwloc', default=True, description='Enable hwloc in the user-space tools') - depends_on('hwloc', when='+hwloc') + depends_on('hwloc', when='+hwloc') depends_on('pkgconfig', type='build', when='+hwloc') + depends_on('autoconf', type='build', when='@master') + depends_on('automake', type='build', when='@master') + depends_on('m4', type='build', when='@master') # The support for hwloc was added in 0.9.1: conflicts('+hwloc', when='@:0.9.0') @@ -44,3 +52,7 @@ class Knem(AutotoolsPackage): def configure_args(self): return self.enable_or_disable('hwloc') + + @when('@master') + def autoreconf(self, spec, prefix): + Executable('./autogen.sh')() diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py index 2b3cfa4ab8..a2a2898b96 100644 --- a/var/spack/repos/builtin/packages/ucx/package.py +++ b/var/spack/repos/builtin/packages/ucx/package.py @@ -50,63 +50,50 @@ class Ucx(AutotoolsPackage, CudaPackage): description='Builds with Java bindings') variant('gdrcopy', default=False, description='Enable gdrcopy support') + variant('knem', default=False, + description='Enable KNEM support') + variant('xpmem', default=False, + description='Enable XPMEM support') depends_on('numactl') depends_on('rdma-core') + depends_on('pkgconfig', type='build') depends_on('java@8', when='+java') depends_on('maven', when='+java') depends_on('gdrcopy@1.3', when='+gdrcopy') conflicts('+gdrcopy', when='~cuda', msg='gdrcopy currently requires cuda support') + depends_on('xpmem', when='+xpmem') + depends_on('knem', when='+knem') def configure_args(self): spec = self.spec config_args = [] + if '+thread_multiple' in spec: config_args.append('--enable-mt') else: config_args.append('--disable-mt') - if '+optimizations' in spec: - config_args.append('--enable-optimizations') - else: - config_args.append('--disable-optimizations') - - if '+logging' in spec: - config_args.append('--enable-logging') - else: - config_args.append('--disable-logging') - - if '+assertions' in spec: - config_args.append('--enable-assertions') - else: - config_args.append('--disable-assertions') - if '+paramter_checking' in spec: config_args.append('--enable-params-check') else: config_args.append('--disable-params-check') - if '+pic' in spec: - config_args.append('--with-pic') - else: - config_args.append('--without-pic') - - if '+java' in spec: - config_args.append('--with-java=%s' % spec['java'].prefix) - else: - config_args.append('--without-java') - - if '+cuda' in spec: - config_args.append('--with-cuda={0}'.format( - self.spec['cuda'].prefix)) - else: - config_args.append('--without-cuda') - - if '+gdrcopy' in spec: - config_args.append('--with-gdrcopy={0}'.format( - self.spec['gdrcopy'].prefix)) - else: - config_args.append('--without-gdrcopy') + config_args.extend(self.enable_or_disable('optimizations')) + config_args.extend(self.enable_or_disable('assertions')) + config_args.extend(self.enable_or_disable('logging')) + + config_args.extend(self.with_or_without('pic')) + config_args.extend(self.with_or_without('java', + activation_value='prefix')) + config_args.extend(self.with_or_without('cuda', + activation_value='prefix')) + config_args.extend(self.with_or_without('gdrcopy', + activation_value='prefix')) + config_args.extend(self.with_or_without('knem', + activation_value='prefix')) + config_args.extend(self.with_or_without('xpmem', + activation_value='prefix')) return config_args |