COUNTDOWN package (#42123)
* Added countdown repo * Added fixed version of COUNTDOWN * Style fixes * Changed mantainer syntax * Variants listed in alphabetical order by name * Added conflicts and some reordering * Fixed conflicts syntax * Style fixes * [@spackbot] updating style on behalf of danielecesarini --------- Co-authored-by: danielecesarini <danielecesarini@users.noreply.github.com>
This commit is contained in:
parent
3f47cc8d00
commit
295e36efa3
1 changed files with 87 additions and 0 deletions
87
var/spack/repos/builtin/packages/countdown/package.py
Normal file
87
var/spack/repos/builtin/packages/countdown/package.py
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
# 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 Countdown(CMakePackage, CudaPackage):
|
||||||
|
"""COUNTDOWN is a tool for identifying and automatically reducing the power
|
||||||
|
consumption of the computing elements, during communication and
|
||||||
|
synchronization primitives, filtering out phases which would detriment the
|
||||||
|
time to solution of the application."""
|
||||||
|
|
||||||
|
homepage = "https://github.com/EEESlab/countdown"
|
||||||
|
url = "https://github.com/EEESlab/countdown/archive/refs/tags/v1.1.1.tar.gz"
|
||||||
|
|
||||||
|
license("BSD-3-Clause")
|
||||||
|
|
||||||
|
maintainers("f-tesser", "danielecesarini")
|
||||||
|
|
||||||
|
version("1.1.1", sha256="ee7f00ffc047f000a21a7a71f6ea6f4049afb1a8407608adc04993929ceba917")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"acc_mpi",
|
||||||
|
default=True,
|
||||||
|
description="Enable the instrumentation of all accessory MPI functions",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"coll_mpi",
|
||||||
|
default=True,
|
||||||
|
description="Enable the instrumentation of all collective MPI functions",
|
||||||
|
)
|
||||||
|
variant("debug_mpi", default=False, description="Enable the debug prints on MPI functions")
|
||||||
|
variant(
|
||||||
|
"excl_all_mpi",
|
||||||
|
default=False,
|
||||||
|
description="Disable the instrumentation of all MPI functions, "
|
||||||
|
"except for initialization and finalization",
|
||||||
|
)
|
||||||
|
variant("hwp_auto_discovery", default=True, description="Autodiscovery of hwp-states")
|
||||||
|
variant("mosquitto", default=False, description="Enable MQTT message passing")
|
||||||
|
variant("no_profiling", default=False, description="Disable MPI profiling")
|
||||||
|
variant("use_cpufreq", default=True, description="Manual set of cpufreq interface")
|
||||||
|
variant("use_hwp", default=False, description="Manual set if hwp-states are available")
|
||||||
|
variant(
|
||||||
|
"p2p_mpi",
|
||||||
|
default=True,
|
||||||
|
description="Enable the instrumentation of all point-to-point MPI functions",
|
||||||
|
)
|
||||||
|
variant("shared", default=True, description="Build shared libraries")
|
||||||
|
|
||||||
|
conflicts("+acc_mpi", when="+excl_all_mpi")
|
||||||
|
conflicts("+coll_mpi", when="+excl_all_mpi")
|
||||||
|
conflicts("+p2p_mpi", when="+excl_all_mpi")
|
||||||
|
conflicts("+excl_all_mpi", when="+acc_mpi")
|
||||||
|
conflicts("+excl_all_mpi", when="+coll_mpi")
|
||||||
|
conflicts("+excl_all_mpi", when="+p2p_mpi")
|
||||||
|
conflicts("+hwp_auto_discovery", when="+use_cpufreq")
|
||||||
|
conflicts("+hwp_auto_discovery", when="+use_hwp")
|
||||||
|
conflicts("+use_cpufreq", when="+hwp_auto_discovery")
|
||||||
|
conflicts("+use_cpufreq", when="+use_hwp")
|
||||||
|
conflicts("+use_hwp", when="+hwp_auto_discovery")
|
||||||
|
conflicts("+use_hwp", when="+use_cpufreq")
|
||||||
|
|
||||||
|
depends_on("cmake@3.0.0:", type="build")
|
||||||
|
depends_on("hwloc", type="link")
|
||||||
|
depends_on("mpi@3.0.0:", type="link")
|
||||||
|
depends_on("mosquitto", when="+mosquitto", type="link")
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = [
|
||||||
|
self.define_from_variant("CNTD_ENABLE_CUDA", "cuda"),
|
||||||
|
self.define_from_variant("CNTD_DISABLE_ACCESSORY_MPI", "acc_mpi"),
|
||||||
|
self.define_from_variant("CNTD_ENABLE_COLLECTIVE_MPI", "coll_mpi"),
|
||||||
|
self.define_from_variant("CNTD_ENABLE_DEBUG_MPI", "debug_mpi"),
|
||||||
|
self.define_from_variant("CNTD_DISABLE_ALL_MPI_EXCEPT_INI_FIN", "excl_all_mpi"),
|
||||||
|
self.define_from_variant("CNTD_HWP_AUTO_DISCOVER", "hwp_auto_discovery"),
|
||||||
|
self.define_from_variant("CNTD_ENABLE_MOSQUITTO", "mosquitto"),
|
||||||
|
self.define_from_variant("CNTD_DISABLE_PROFILING_MPI", "no_profiling"),
|
||||||
|
self.define_from_variant("CNTD_USE_CPUFREQ", "use_cpufreq"),
|
||||||
|
self.define_from_variant("CNTD_HWP_DISCOVERED", "use_hwp"),
|
||||||
|
self.define_from_variant("CNTD_ENABLE_P2P_MPI", "p2p_mpi"),
|
||||||
|
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||||
|
]
|
||||||
|
|
||||||
|
return args
|
Loading…
Reference in a new issue