diff options
author | Daniele Cesarini <d.cesarini@cineca.it> | 2024-01-25 22:56:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-25 13:56:29 -0800 |
commit | 295e36efa34cb307f6ebcef2e19861fdac08c76a (patch) | |
tree | 699e98c61d962ed11277f4719718ed7cf1766fba | |
parent | 3f47cc8d00fe0828995858139baef9fb4771cef0 (diff) | |
download | spack-295e36efa34cb307f6ebcef2e19861fdac08c76a.tar.gz spack-295e36efa34cb307f6ebcef2e19861fdac08c76a.tar.bz2 spack-295e36efa34cb307f6ebcef2e19861fdac08c76a.tar.xz spack-295e36efa34cb307f6ebcef2e19861fdac08c76a.zip |
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>
-rw-r--r-- | var/spack/repos/builtin/packages/countdown/package.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/countdown/package.py b/var/spack/repos/builtin/packages/countdown/package.py new file mode 100644 index 0000000000..b2ba2aab72 --- /dev/null +++ b/var/spack/repos/builtin/packages/countdown/package.py @@ -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 |