From c0492efc113ff0188dcf16b05664ed9ffac77258 Mon Sep 17 00:00:00 2001 From: Alex Margolin Date: Sun, 9 Aug 2020 20:55:49 +0300 Subject: KNEM and XPMEM support for UCX (#17215) * KNEM url updated Signed-off-by: Alex Margolin * Allow UCX to be built against KNEM and XPMEM Signed-off-by: Alex Margolin --- var/spack/repos/builtin/packages/knem/package.py | 20 ++++++-- 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 -- cgit v1.2.3-70-g09d2