From 8e914308f056e876a98aff55988cde3d477dd0e9 Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Mon, 25 Nov 2024 16:12:55 +0100 Subject: gromacs: add itt variant (#47764) Permit configuring GROMACS with support for mdrun to trace its timing regions by calling the ITT API. This permits tools like VTune and unitrace to augment their analysis with GROMACS-specific annotation. --- var/spack/repos/builtin/packages/gromacs/package.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 90d1766118..486c36af8e 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -296,6 +296,15 @@ class Gromacs(CMakePackage, CudaPackage): + "The g++ location is written to icp{c,x}.cfg", ) + variant( + "itt", + default=False, + when="@2024:", + description="Enable Instrumentation and Tracing Technology (ITT)" + + " profiling API (from Intel)", + ) + depends_on("intel-oneapi-vtune", "+itt") + depends_on("fftw-api@3") depends_on("cmake@2.8.8:3", type="build") depends_on("cmake@3.4.3:3", type="build", when="@2018:") @@ -614,6 +623,13 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder): options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8") options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1") + if "+itt" in self.spec: + options.append("-DGMX_USE_ITT=on") + options.append( + "-DITTNOTIFY_INCLUDE_DIR=%s" + % join_path(self.spec["intel-oneapi-vtune"].package.headers) + ) + if self.spec.satisfies("~nblib"): options.append("-DGMX_INSTALL_NBLIB_API=OFF") if self.spec.satisfies("~gmxapi"): -- cgit v1.2.3-70-g09d2