From 72f57ffedef280dd8c043d5f1ed44c9f37ace811 Mon Sep 17 00:00:00 2001 From: Bill Williams Date: Thu, 9 Feb 2023 19:50:50 +0100 Subject: Score-P updates for version 8.0 (#35256) * Add Score-P 8.0 and Cube 4.7/4.8 packages. * Score-P 8.0 requires 4.8, not 4.7, Cube packages * Add maintainer * Add CUDA and HIP variants. Add version checks for CUDA (Score-P 8 requires CUDA 7), ROCm (variant only valid as of Score-P 8), and MPI (Score-P 7 requires at least version 2.2 of the MPI standard). * Deprecate everything pre-7.0. * Fix HIP dependencies and enable CUDA and HIP variants for configure. * Deprecate OTF2 pre-2.3 and Cube pre-4.6 --- .../repos/builtin/packages/cubelib/package.py | 32 ++++++++-- var/spack/repos/builtin/packages/cubew/package.py | 33 ++++++++-- var/spack/repos/builtin/packages/otf2/package.py | 36 +++++++++-- var/spack/repos/builtin/packages/scorep/package.py | 74 ++++++++++++++++++---- 4 files changed, 148 insertions(+), 27 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cubelib/package.py b/var/spack/repos/builtin/packages/cubelib/package.py index b505e0fb5f..2c8aab34ab 100644 --- a/var/spack/repos/builtin/packages/cubelib/package.py +++ b/var/spack/repos/builtin/packages/cubelib/package.py @@ -12,12 +12,34 @@ class Cubelib(AutotoolsPackage): homepage = "https://www.scalasca.org/software/cube-4.x/download.html" url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubelib-4.4.tar.gz" + version("4.8", sha256="171c93ac5afd6bc74c50a9a58efdaf8589ff5cc1e5bd773ebdfb2347b77e2f68") + version("4.7", sha256="e44352c80a25a49b0fa0748792ccc9f1be31300a96c32de982b92477a8740938") version("4.6", sha256="36eaffa7688db8b9304c9e48ca5dc4edc2cb66538aaf48657b9b5ccd7979385b") - version("4.5", sha256="98f66837b4a834b1aacbcd4480a242d7a8c4a1b8dd44e02e836b8c7a4f0ffd98") - version("4.4.4", sha256="adb8216ee3b7701383884417374e7ff946edb30e56640307c65465187dca7512") - version("4.4.3", sha256="bcd4fa81a5ba37194e590a5d7c3e6c44b448f5e156a175837b77c21206847a8d") - version("4.4.2", sha256="843335c7d238493f1b4cb8e07555ccfe99a3fa521bf162e9d8eaa6733aa1f949") - version("4.4", sha256="77548e1732fa5e82b13cc8465c8a21349bf42b45a382217d2e70d18576741d5c") + version( + "4.5", + sha256="98f66837b4a834b1aacbcd4480a242d7a8c4a1b8dd44e02e836b8c7a4f0ffd98", + deprecated="true", + ) + version( + "4.4.4", + sha256="adb8216ee3b7701383884417374e7ff946edb30e56640307c65465187dca7512", + deprecated="true", + ) + version( + "4.4.3", + sha256="bcd4fa81a5ba37194e590a5d7c3e6c44b448f5e156a175837b77c21206847a8d", + deprecated="true", + ) + version( + "4.4.2", + sha256="843335c7d238493f1b4cb8e07555ccfe99a3fa521bf162e9d8eaa6733aa1f949", + deprecated="true", + ) + version( + "4.4", + sha256="77548e1732fa5e82b13cc8465c8a21349bf42b45a382217d2e70d18576741d5c", + deprecated="true", + ) depends_on("pkgconfig", type="build") depends_on("zlib") diff --git a/var/spack/repos/builtin/packages/cubew/package.py b/var/spack/repos/builtin/packages/cubew/package.py index af013e7ae0..099564d785 100644 --- a/var/spack/repos/builtin/packages/cubew/package.py +++ b/var/spack/repos/builtin/packages/cubew/package.py @@ -12,12 +12,35 @@ class Cubew(AutotoolsPackage): homepage = "https://www.scalasca.org/software/cube-4.x/download.html" url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubew-4.4.tar.gz" + version("4.8", sha256="73c7f9e9681ee45d71943b66c01cfe675b426e4816e751ed2e0b670563ca4cf3") + version("4.7.1", sha256="0d364a4930ca876aa887ec40d12399d61a225dbab69e57379b293516d7b6db8d") + version("4.7", sha256="a7c7fca13e6cb252f08d4380223d7c56a8e86a67de147bcc0279ebb849c884a5") version("4.6", sha256="99fe58ce7ab13061ebfbc360aedaecc28099a30636c5269a42c0cbaf57149aa8") - version("4.5", sha256="16bd8fd864197a74ca65f7325761ad75d73d555072326e95e1338cff39f28a5c") - version("4.4.3", sha256="93fff6cc1e8b0780f0171ef5302a2e1a257f99b6383fbfc1b9b82f925ceff501") - version("4.4.2", sha256="31a71e9a05e6523de2b86b4026821bbb75fb411eb5b18ae38b27c1f44158014a") - version("4.4.1", sha256="c09e3f5a3533ebedee2cc7dfaacd7bac4680c14c3fa540669466583a23f04b67") - version("4.4", sha256="b1d6fecb546bc645ced430ea3fc166e85835f3b997d4e5f0dece71919fc95a99") + version( + "4.5", + sha256="16bd8fd864197a74ca65f7325761ad75d73d555072326e95e1338cff39f28a5c", + deprecated="true", + ) + version( + "4.4.3", + sha256="93fff6cc1e8b0780f0171ef5302a2e1a257f99b6383fbfc1b9b82f925ceff501", + deprecated="true", + ) + version( + "4.4.2", + sha256="31a71e9a05e6523de2b86b4026821bbb75fb411eb5b18ae38b27c1f44158014a", + deprecated="true", + ) + version( + "4.4.1", + sha256="c09e3f5a3533ebedee2cc7dfaacd7bac4680c14c3fa540669466583a23f04b67", + deprecated="true", + ) + version( + "4.4", + sha256="b1d6fecb546bc645ced430ea3fc166e85835f3b997d4e5f0dece71919fc95a99", + deprecated="true", + ) depends_on("pkgconfig", type="build") depends_on("zlib") diff --git a/var/spack/repos/builtin/packages/otf2/package.py b/var/spack/repos/builtin/packages/otf2/package.py index 95611af603..74dd87d715 100644 --- a/var/spack/repos/builtin/packages/otf2/package.py +++ b/var/spack/repos/builtin/packages/otf2/package.py @@ -17,12 +17,36 @@ class Otf2(AutotoolsPackage): version("3.0", sha256="6fff0728761556e805b140fd464402ced394a3c622ededdb618025e6cdaa6d8c") version("2.3", sha256="36957428d37c40d35b6b45208f050fb5cfe23c54e874189778a24b0e9219c7e3") - version("2.2", sha256="d0519af93839dc778eddca2ce1447b1ee23002c41e60beac41ea7fe43117172d") - version("2.1.1", sha256="01591b42e76f396869ffc84672f4eaa90ee8ec2a8939755d9c0b5b8ecdcf47d3") - version("2.1", sha256="8ad38ea0461099e34f00f2947af4409ce9b9c379e14c3f449ba162e51ac4cad3") - version("2.0", sha256="bafe0ac08e0a13e71568e5774dc83bd305d907159b4ceeb53d2e9f6e29462754") - version("1.5.1", sha256="a4dc9f6c99376030b43a4c7b1ee77cfb530b03928ea688c6d1a380b3f4e8e488") - version("1.4", sha256="fb5fe169003c01e40848e224f09c440014e9872e84d2ca02ce7fffdd3f879a2f") + version( + "2.2", + sha256="d0519af93839dc778eddca2ce1447b1ee23002c41e60beac41ea7fe43117172d", + deprecated=True, + ) + version( + "2.1.1", + sha256="01591b42e76f396869ffc84672f4eaa90ee8ec2a8939755d9c0b5b8ecdcf47d3", + deprecated=True, + ) + version( + "2.1", + sha256="8ad38ea0461099e34f00f2947af4409ce9b9c379e14c3f449ba162e51ac4cad3", + deprecated=True, + ) + version( + "2.0", + sha256="bafe0ac08e0a13e71568e5774dc83bd305d907159b4ceeb53d2e9f6e29462754", + deprecated=True, + ) + version( + "1.5.1", + sha256="a4dc9f6c99376030b43a4c7b1ee77cfb530b03928ea688c6d1a380b3f4e8e488", + deprecated=True, + ) + version( + "1.4", + sha256="fb5fe169003c01e40848e224f09c440014e9872e84d2ca02ce7fffdd3f879a2f", + deprecated=True, + ) version( "1.3.1", sha256="c4605ace845d89fb1a19223137b92cc503b01e3db5eda8c9e0715d0cfcf2e4b9", diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index b08352a299..51d4e67b3a 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -14,18 +14,56 @@ class Scorep(AutotoolsPackage): homepage = "https://www.vi-hps.org/projects/score-p" url = "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.1/scorep-7.1.tar.gz" + maintainers = ["wrwilliams"] + version("8.0", sha256="4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311") version("7.1", sha256="98dea497982001fb82da3429ca55669b2917a0858c71abe2cfe7cd113381f1f7") version("7.0", sha256="68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996") - version("6.0", sha256="5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8") - version("5.0", sha256="0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1") - version("4.1", sha256="7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63") - version("4.0", sha256="c050525606965950ad9b35c14077b88571bcf9bfca08599279a3d8d1bb00e655") - version("3.1", sha256="49efe8a4e02afca752452809e1b21cba42e8ccb0a0772f936d4459d94e198540") - version("3.0", sha256="c9e7fe0a8239b3bbbf7628eb15f7e90de9c36557818bf3d01aecce9fec2dc0be") - version("2.0.2", sha256="d19498408781048f0e9039a1a245bce6b384f09fbe7d3643105b4e2981ecd610") - version("1.4.2", sha256="d7f3fcca2efeb2f5d5b5f183b3b2c4775e66cbb3400ea2da841dd0428713ebac") - version("1.3", sha256="dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254") + version( + "6.0", + sha256="5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8", + deprecated="true", + ) + version( + "5.0", + sha256="0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1", + deprecated="true", + ) + version( + "4.1", + sha256="7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63", + deprecated="true", + ) + version( + "4.0", + sha256="c050525606965950ad9b35c14077b88571bcf9bfca08599279a3d8d1bb00e655", + deprecated="true", + ) + version( + "3.1", + sha256="49efe8a4e02afca752452809e1b21cba42e8ccb0a0772f936d4459d94e198540", + deprecated="true", + ) + version( + "3.0", + sha256="c9e7fe0a8239b3bbbf7628eb15f7e90de9c36557818bf3d01aecce9fec2dc0be", + deprecated="true", + ) + version( + "2.0.2", + sha256="d19498408781048f0e9039a1a245bce6b384f09fbe7d3643105b4e2981ecd610", + deprecated="true", + ) + version( + "1.4.2", + sha256="d7f3fcca2efeb2f5d5b5f183b3b2c4775e66cbb3400ea2da841dd0428713ebac", + deprecated="true", + ) + version( + "1.3", + sha256="dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254", + deprecated="true", + ) def url_for_version(self, version): if version < Version("7.0"): @@ -45,11 +83,16 @@ class Scorep(AutotoolsPackage): variant("pdt", default=False, description="Enable PDT") variant("shmem", default=False, description="Enable shmem tracing") variant("unwind", default=False, description="Enable sampling via libunwind and lib wrapping") - + variant("cuda", default=False, description="Enable CUDA support") + variant("hip", default=False, description="Enable ROCm/HIP support", when="@8.0:") # Dependencies for SCORE-P are quite tight. See the homepage for more # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on # two components of cube -- cubew and cubelib. + # SCOREP 8 + depends_on("otf2@3:", when="@8:") + depends_on("cubew@4.8:", when="@8:") + depends_on("cubelib@4.8:", when="@8:") # SCOREP 7 depends_on("otf2@2.3:2.3.99", when="@7:") depends_on("cubew@4.6:", when="@7:") @@ -78,12 +121,17 @@ class Scorep(AutotoolsPackage): depends_on("opari2@1.1.4", when="@1.3") depends_on("cube@4.2.3", when="@1.3") + depends_on("mpi@2.2:", when="@7.0:+mpi") depends_on("mpi", when="+mpi") depends_on("papi", when="+papi") depends_on("pdt", when="+pdt") depends_on("llvm", when="+unwind") depends_on("libunwind", when="+unwind") - + depends_on("cuda@7:", when="@8.0:+cuda") + depends_on("cuda", when="+cuda") + depends_on("hip@4.2:", when="+hip") + depends_on("rocprofiler-dev", when="+hip") + depends_on("rocm-smi-lib", when="+hip") # Score-P requires a case-sensitive file system, and therefore # does not work on macOS # https://github.com/spack/spack/issues/1609 @@ -117,6 +165,10 @@ class Scorep(AutotoolsPackage): if "+unwind" in spec: config_args.append("--with-libunwind=%s" % spec["libunwind"].prefix) + if "+cuda" in spec: + config_args.append("--with-libcuda=%s" % spec["cuda"].prefix) + if "+hip" in spec: + config_args.append("--with-rocm=%s" % spec["hip"].prefix) config_args += self.with_or_without("shmem") if not spec.satisfies("platform=cray"): -- cgit v1.2.3-60-g2f50