Skip to content

Commit

Permalink
cray-mpich: add aarch64 versions / set rpaths (#160)
Browse files Browse the repository at this point in the history
* cray-mpich package.py: set rpath for gtl library
* cray-mpich: extend for multiple archs
* update cray-mpich-nvgpu sha
* add 8.1.29 (nvhpc only)
* fix patchelf for cray-gtl (rocm)
  • Loading branch information
simonpintarelli authored Jan 29, 2024
1 parent db66c7d commit 25f5200
Show file tree
Hide file tree
Showing 4 changed files with 154 additions and 123 deletions.
76 changes: 41 additions & 35 deletions stackinator/repo/packages/cray-gtl/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,50 +4,56 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import os
import platform

import spack.compilers
from spack.package import *

_versions = {
"8.1.28": {
"Linux-aarch64": "0bb881cba502b199dadce7875bba62e7403e1c55abc6669c76a7cba7c05fa5ad",
"Linux-x86_64": "2e82c618648e79bdc4b8bf9394be8fd59c34ccd77f172afd11fce38beca1ecab",
},
"8.1.27": {
"Linux-x86_64": "80c7e94d30b5a3573ac6b2cc5fb0373046760a0acdff44a178e723ab3c8fdfb9"
},
"8.1.26": {
"Linux-x86_64": "37d9626cb5f851f63c9799c18a419354c6f21c77f90558472552156df9eef311"
},
"8.1.25": {
"Linux-x86_64": "a2e2af2037e63b64ef74d870c0bab91a8109e75eef82a30250b81b0d785ff6ae"
},
"8.1.24": {
"Linux-x86_64": "2fa8635f829e67844e7b30dffb092a336d257e0e769d2225030f2ccf4c1d302f"
},
"8.1.23": {
"Linux-x86_64": "034667c2ea49eec76ef8f79494231bad94884b99683edabf781beed01ec681e4"
},
"8.1.21": {
"Linux-x86_64": "78072edfcb6cc24cfefab06e824111b5b2b839551235ece68cd154bec7936a24"
},
"8.1.18": {
"Linux-x86_64": "5ac6b0877fd0f6afaaf391fffef41daf4d3150edc3250721c9abd4ded6b58486"
},
}


class CrayGtl(Package):
"""Install cray-gtl"""

homepage = "https://www.hpe.com/us/en/compute/hpc/hpc-software.html"
url = "https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-gtl-8.1.26.tar.gz"
maintainers = ["bcumming"]

version(
"8.1.28",
sha256="2e82c618648e79bdc4b8bf9394be8fd59c34ccd77f172afd11fce38beca1ecab",
)
version(
"8.1.27",
sha256="80c7e94d30b5a3573ac6b2cc5fb0373046760a0acdff44a178e723ab3c8fdfb9",
)
version(
"8.1.26",
sha256="37d9626cb5f851f63c9799c18a419354c6f21c77f90558472552156df9eef311",
)
version(
"8.1.25",
sha256="a2e2af2037e63b64ef74d870c0bab91a8109e75eef82a30250b81b0d785ff6ae",
)
version(
"8.1.24",
sha256="2fa8635f829e67844e7b30dffb092a336d257e0e769d2225030f2ccf4c1d302f",
)
version(
"8.1.23",
sha256="034667c2ea49eec76ef8f79494231bad94884b99683edabf781beed01ec681e4",
)
version(
"8.1.21",
sha256="78072edfcb6cc24cfefab06e824111b5b2b839551235ece68cd154bec7936a24",
)
version(
"8.1.18",
sha256="5ac6b0877fd0f6afaaf391fffef41daf4d3150edc3250721c9abd4ded6b58486",
)
maintainers = ["bcumming", "simonpintarelli"]

for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
sha = packages.get(key)
if sha:
version(
ver,
sha256=sha,
url=f"https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-gtl-{ver}.{platform.machine()}.tar.gz",
)

variant("cuda", default=False)
variant("rocm", default=False)
Expand Down Expand Up @@ -109,6 +115,6 @@ def fixup_binaries(self):
# __gxx_personality_v0 but wasn't linked against libstdc++.
if "libmpi_gtl_cuda.so" in str(f):
patchelf("--add-needed", "libstdc++.so", f, fail_on_error=False)
if "@8.1.27" in self.spec:
if "@8.1.27+cuda" in self.spec:
patchelf("--add-needed", "libcudart.so", f, fail_on_error=False)
patchelf("--add-needed", "libcuda.so", f, fail_on_error=False)
80 changes: 45 additions & 35 deletions stackinator/repo/packages/cray-mpich/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,42 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import os
import platform

import spack.compilers
from spack.package import *

_versions = {
"8.1.29": {
"Linux-aarch64": "6133ce31b20612a8152323d2d64211085a026ec62beacda4e8a2566d7b807605",
},
"8.1.28": {
"Linux-aarch64": "dfd6c685adfbf070fe9d546d95b31e108ee7089a738447fa7326973a3e696e8d",
"Linux-x86_64": "55a0a068bd8bff14f302c5371d7e2b4cf732d5c1ec875bb03e375644e1a6beab",
},
"8.1.27": {
"Linux-x86_64": "5d59cc69b7ae2ef692ae49843bb2c7a44b5a8478d72eaf2ab1f1f6c5983eee0b"
},
"8.1.26": {
"Linux-x86_64": "d308cf3e254ce5873af6caee5ec683a397fed5ce92975f57e5c9215a98d8edad"
},
"8.1.25": {
"Linux-x86_64": "024ab0c4526670a37df7e2995172ba264454fd69c05d8ffe140c9e519397a65c"
},
"8.1.24": {
"Linux-x86_64": "2c3fa339511ed822892e112d3e4d5a39a634d00a31cf22e02ce843f0efcc5ae8"
},
"8.1.23": {
"Linux-x86_64": "ed7ff286ede30ea96dede4c53aa2ef98e8090c988a0bea764cd505ba5fcc0520"
},
"8.1.21": {
"Linux-x86_64": "5fda115f356c26e5d9f8cc68fe578e954a70edd10ebf007182d945345886b61a"
},
"8.1.18": {
"Linux-x86_64": "45d519be217cea89c58893d25826b15d99183247d15ecee9c3f64913660d79c2"
},
}


class CrayMpich(Package):
"""Install cray-mpich as a binary package"""
Expand All @@ -17,39 +49,15 @@ class CrayMpich(Package):
homepage = "https://www.hpe.com/us/en/compute/hpc/hpc-software.html"
url = "https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-mpich-8.1.26.tar.gz"
maintainers = ["bcumming"]

version(
"8.1.28",
sha256="935fca183dabfcae1a4cfc664234537f25f1e87fb2765f32636be7352514f476",
)
version(
"8.1.27",
sha256="c7f2f5366aba9ff9781084a430b5b9462427ee8120069ff530d1965065ef220b",
)
version(
"8.1.26",
sha256="3c23cfe24b8f05e0c68a059919ac7dd77c45a333cad9aea41872a51d256b12d1",
)
version(
"8.1.25",
sha256="46e8c2804f5d34815bcf381e1957e749e6d7b286853bd94ae2bff73a6df39263",
)
version(
"8.1.24",
sha256="96876331bb7098e9ef2eea2c8bb25e479838c48b294ae5790094c19644e73a7d",
)
version(
"8.1.23",
sha256="c0985424ef376b29e6f1b9c2016b8cfe6430b9ce434da9700a6c14433b47cf20",
)
version(
"8.1.21",
sha256="8b4e0ff9cba48ef7dcd4dd8092b35bb6456420de2dcf7b4f05d7c69f8e266de3",
)
version(
"8.1.18",
sha256="45d519be217cea89c58893d25826b15d99183247d15ecee9c3f64913660d79c2",
)
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
sha = packages.get(key)
if sha:
version(
ver,
sha256=sha,
url=f"https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-mpich-{ver}.{platform.machine()}.tar.gz",
)

variant("cuda", default=False)
variant("rocm", default=False)
Expand All @@ -70,6 +78,7 @@ class CrayMpich(Package):
"8.1.26",
"8.1.27",
"8.1.28",
"8.1.29",
]:
with when("+cuda"):
depends_on(f"cray-gtl@{ver} +cuda", type="link", when="@" + ver)
Expand All @@ -82,6 +91,7 @@ class CrayMpich(Package):

conflicts("%gcc@:7")
conflicts("%gcc@:11", when="@8.1.28:")
conflicts("%nvhpc", when="@8.1.29")

def setup_run_environment(self, env):
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
Expand Down Expand Up @@ -148,10 +158,10 @@ def fixup_compiler_paths(self):
# link with the relevant gtl lib
if "+cuda" in self.spec:
lpath = self.spec["cray-gtl"].prefix.lib
gtl_library = f"-L{lpath} -lmpi_gtl_cuda"
gtl_library = f"-L{lpath} -Wl,-rpath,{lpath} -lmpi_gtl_cuda"
elif "+rocm" in self.spec:
lpath = self.spec["cray-gtl"].prefix.lib
gtl_library = f"-L{lpath} -lmpi_gtl_hsa"
gtl_library = f"-L{lpath} -Wl,-rpath,{lpath} -lmpi_gtl_hsa"
else:
gtl_library = ""
print("==== GTL_LIBRARY", gtl_library)
Expand Down
56 changes: 32 additions & 24 deletions stackinator/repo/packages/cray-pals/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,33 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import os
import platform

import spack.compilers
from spack.package import *

_versions = {
"1.3.2": {
"Linux-aarch64": "f7b97a10cc8dde17e804f79235ab1aa98f83e0c7c178e58d6ca3e9170f89c6da",
"Linux-x86_64": "deea749476de0f545b31fcd0912f133d7ba60b84f673e47d8b4b15d5a117254c",
},
"1.2.12": {
"Linux-x86_64": "c94d29c09ed650c4e98a236df7ced77f027bdf987919a91a1a1382f704a85bb9"
},
"1.2.11": {
"Linux-x86_64": "e1af09e39d70e28381de806548c6cb29c23abf891a078f46eb71c301a3f0994c"
},
"1.2.9": {
"Linux-x86_64": "ceec6f99bea9df3f7f657a7df499445e62976064dda3f3e437d61e895ec31601"
},
"1.2.5": {
"Linux-x86_64": "d7269ed8f4deab816e3d4006090ec68b25ccc585200d16728ed9a914baf4d9bf"
},
"1.2.4": {
"Linux-x86_64": "a253939585bad2bb9061b98be6e517f18bda0602ecfd38f75c734a01d12003f2"
},
}


class CrayPals(Package):
"""Install cray-pals"""
Expand All @@ -18,30 +41,15 @@ class CrayPals(Package):
url = "https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-pals-1.2.12.tar.gz"
maintainers = ["simonpintarelli"]

version(
"1.3.2",
sha256="deea749476de0f545b31fcd0912f133d7ba60b84f673e47d8b4b15d5a117254c",
)
version(
"1.2.12",
sha256="c94d29c09ed650c4e98a236df7ced77f027bdf987919a91a1a1382f704a85bb9",
)
version(
"1.2.11",
sha256="e1af09e39d70e28381de806548c6cb29c23abf891a078f46eb71c301a3f0994c",
)
version(
"1.2.9",
sha256="ceec6f99bea9df3f7f657a7df499445e62976064dda3f3e437d61e895ec31601",
)
version(
"1.2.5",
sha256="d7269ed8f4deab816e3d4006090ec68b25ccc585200d16728ed9a914baf4d9bf",
)
version(
"1.2.4",
sha256="a253939585bad2bb9061b98be6e517f18bda0602ecfd38f75c734a01d12003f2",
)
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
sha = packages.get(key)
if sha:
version(
ver,
sha256=sha,
url=f"https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-pals-{ver}.{platform.machine()}.tar.gz",
)

# Fix up binaries with patchelf.
depends_on("patchelf", type="build")
Expand Down
65 changes: 36 additions & 29 deletions stackinator/repo/packages/cray-pmi/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,36 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import os
import platform

import spack.compilers
from spack.package import *

_versions = {
"6.1.13": {
"Linux-aarch64": "f865f410145a66bb05520c32ee5b64b6dfcb9ae33aace6d3db5f870e4f4714bc",
"Linux-x86_64": "217ac554cf84a4c7f08cd149c6a18428e1e3533d73e350fa291b6800895b632e",
},
"6.1.12": {
"Linux-x86_64": "d1a4bd929b73197823dd9b4bcb3c8ef06d80326297a07291b24e5996b60330a8"
},
"6.1.11": {
"Linux-x86_64": "5ebcece6a610da02cd41a9a386fd7463ee909bd55e3370d6d372603f90be9afe"
},
"6.1.10": {
"Linux-x86_64": "f4fbe75c201a171dcfe6ada773a4bf0c606767a0b7a8a76fd19d10852abe1290"
},
"6.1.9": {
"Linux-x86_64": "8fd4194c6c5167f8b81b1cf9b76341669e40d647d0caecef287be6f0f5d95290"
},
"6.1.8": {
"Linux-x86_64": "6c7e5d3038e26b9d0e82428b25b570d00401a6fc9f2fd3c008f15a253a8e2305"
},
"6.1.7": {
"Linux-x86_64": "574b21bd6f8970521c2bc4f096aced896fec8b749f854272cc7bbb7130ae92d8"
},
}


class CrayPmi(Package):
"""Install cray-pmi"""
Expand All @@ -16,36 +42,17 @@ class CrayPmi(Package):

homepage = "https://www.hpe.com/us/en/compute/hpc/hpc-software.html"
url = "https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-pmi-6.1.11.tar.gz"
maintainers = ["bcumming"]
maintainers = ["bcumming", "simonpintarelli"]

version(
"6.1.13",
sha256="217ac554cf84a4c7f08cd149c6a18428e1e3533d73e350fa291b6800895b632e",
)
version(
"6.1.12",
sha256="d1a4bd929b73197823dd9b4bcb3c8ef06d80326297a07291b24e5996b60330a8",
)
version(
"6.1.11",
sha256="5ebcece6a610da02cd41a9a386fd7463ee909bd55e3370d6d372603f90be9afe",
)
version(
"6.1.10",
sha256="f4fbe75c201a171dcfe6ada773a4bf0c606767a0b7a8a76fd19d10852abe1290",
)
version(
"6.1.9",
sha256="8fd4194c6c5167f8b81b1cf9b76341669e40d647d0caecef287be6f0f5d95290",
)
version(
"6.1.8",
sha256="6c7e5d3038e26b9d0e82428b25b570d00401a6fc9f2fd3c008f15a253a8e2305",
)
version(
"6.1.7",
sha256="574b21bd6f8970521c2bc4f096aced896fec8b749f854272cc7bbb7130ae92d8",
)
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
sha = packages.get(key)
if sha:
version(
ver,
sha256=sha,
url=f"https://jfrog.svc.cscs.ch/artifactory/cray-mpich/cray-pmi-{ver}.{platform.machine()}.tar.gz",
)

# Fix up binaries with patchelf.
depends_on("patchelf", type="build")
Expand Down

0 comments on commit 25f5200

Please sign in to comment.