From 8804fbd891ae0d166604f631e74d6efd25b41115 Mon Sep 17 00:00:00 2001 From: Dustin Wheeler Date: Wed, 29 May 2019 13:38:55 -0400 Subject: Add LSF dependency for OpenMPI (#11532) * Add LSF package, which cannot be installed by Spack and must be system-installed. The package install will fail if no external LSF is registered in packages.yaml (LSF may not be installed in a well-known location and the external entry helps Spack locate it for dependents). * Add LSF dependency to OpenMPI when schedulers=lsf is chosen --- var/spack/repos/builtin/packages/lsf/package.py | 25 ++++++++++++++++++++++ .../repos/builtin/packages/openmpi/package.py | 1 + 2 files changed, 26 insertions(+) create mode 100644 var/spack/repos/builtin/packages/lsf/package.py diff --git a/var/spack/repos/builtin/packages/lsf/package.py b/var/spack/repos/builtin/packages/lsf/package.py new file mode 100644 index 0000000000..7c8827c0bf --- /dev/null +++ b/var/spack/repos/builtin/packages/lsf/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Lsf(Package): + """IBM Platform LSF is a batch scheduler for HPC environments""" + + homepage = "https://www.ibm.com/marketplace/hpc-workload-management" + url = "https://www.ibm.com/marketplace/hpc-workload-management" + + # LSF needs to be added as an external package to SPACK. For this, the + # config file packages.yaml needs to be adjusted: + # lsf: + # version: [10.1] + # paths: + # lsf@10.1: /usr/local/lsf/10.1 (path to your LSF installation) + # buildable: False + + def install(self, spec, prefix): + raise InstallError('LSF is not installable; it is vendor supplied') diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 218befee78..4b054cf610 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -259,6 +259,7 @@ class Openmpi(AutotoolsPackage): depends_on('ucx', when='fabrics=ucx') depends_on('libfabric', when='fabrics=libfabric') depends_on('slurm', when='schedulers=slurm') + depends_on('lsf', when='schedulers=lsf') depends_on('binutils+libiberty', when='fabrics=mxm') conflicts('+cuda', when='@:1.6') # CUDA support was added in 1.7 -- cgit v1.2.3-60-g2f50