summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/dlb/package.py
blob: 32dca653ee6ced896220e82978662bc2dfac1e51 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Copyright 2013-2024 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.package import *


class Dlb(AutotoolsPackage):
    """DLB is a dynamic library designed to speed up HPC hybrid applications
    (i.e., two levels of parallelism) by improving the load balance of the
    outer level of parallelism (e.g., MPI) by dynamically redistributing the
    computational resources at the inner level of parallelism (e.g., OpenMP).
    at run time."""

    homepage = "https://pm.bsc.es/dlb"
    url = "https://pm.bsc.es/ftp/dlb/releases/dlb-3.2.tar.gz"
    git = "https://github.com/bsc-pm/dlb.git"

    maintainers("vlopezh")

    license("LGPL-3.0-or-later")

    version("main", branch="main")
    version("3.3.1", sha256="1b245acad80b03eb83e815fd59dcfc598cfddd899de4504cf6a9572fe5359f40")
    version("3.3", sha256="55b87aea14f3954d8878912f3134938db235e6984fae26fdf5134148007eb722")
    version("3.2", sha256="b1c65ce3179b5275cfdf0bf921c0565a4a3ebcfdab72d7cef014957c17136c7e")
    version("3.1", sha256="d63ee89429fdb54af5510ed956f86d11561911a7860b46324f25200d32d0d333")
    version("3.0.2", sha256="75b6cf83ea24bb0862db4ed86d073f335200a0b54e8af8fee6dcf32da443b6b8")
    version("3.0.1", sha256="04f8a7aa269d02fc8561d0a61d64786aa18850367ce4f95d086ca12ab3eb7d24")
    version("3.0", sha256="e3fc1d51e9ded6d4d40d37f8568da4c4d72d1a8996bdeff2dfbbd86c9b96e36a")

    variant("debug", default=False, description="Builds additional debug libraries")
    variant("mpi", default=False, description="Builds MPI libraries")

    depends_on("mpi", when="+mpi")
    depends_on("python", type="build")
    depends_on("autoconf", type="build", when="@main")
    depends_on("automake", type="build", when="@main")
    depends_on("libtool", type="build", when="@main")

    def configure_args(self):
        args = []
        args.extend(self.enable_or_disable("debug"))
        args.extend(self.enable_or_disable("instrumentation-debug", variant="debug"))
        args.extend(self.with_or_without("mpi"))

        return args