We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Keeping the HPC ecosystem working with Spack CI

00:00

Formale Metadaten

Titel
Keeping the HPC ecosystem working with Spack CI
Untertitel
Scaling a modern CI workflow to the Spack ecosystem
Serientitel
Anzahl der Teile
542
Autor
Mitwirkende
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
The Spack package manager is widely used by HPC sites, users, and developers to install HPC software, and the Spack project began offering a public binary cache in June of 2022. The cache includes builds for x86_64, Power, and aarch64, as well as for AMD and NVIDIA GPUs and Intel's oneapi compiler. Currently, the system handles nearly 40,000 builds per week to maintain a core set of Spack packages. Keeping this many different stacks working continuously has been a challenge, and this talk will dive into the build infrastructure we use to make it happen. Spack is hosted on GitHub, but the CI system is orchestrated by GitLab CI in the cloud. Builds are automated and triggered by pull requests, with runners both in the cloud and on bare metal. We will talk about the architecture of the CI system, from the user-facing stack descriptions in YAML to backend services like Kubernetes, Karpenter, S3, CloudFront, and the challenges of tuning runners to give good build performance. We'll also talk about how we've implemented security in a completely PR-driven CI system, and the difficulty of serving all the relevant HPC platforms when most commits are from untrusted contributors. Finally, we'll talk about some of the architectural decisions in Spack itself that had to change to better support CI.
SupercomputerBinärcodeProjektive EbeneComputeranimation
SupercomputerSoftwareKonfigurationsraumBenutzerfreundlichkeitCachingQuellcodeGebäude <Mathematik>Klon <Mathematik>Konvexe HülleVersionsverwaltungSoftwaretestStellenringPhysikalisches SystemNummernsystemBimodulDesintegration <Mathematik>BinärdatenDistributionenraumSoftwarewartungSkalierbarkeitProgrammierumgebungGleitendes MittelMobiles EndgerätKeller <Informatik>VersionsverwaltungGebäude <Mathematik>Stabilitätstheorie <Logik>Deskriptive StatistikQuick-SortDemoszene <Programmierung>Virtuelle MaschineRandomisierungHook <Programmierung>MereologieMultiplikationsoperatorVerzeichnisdienstInstallation <Informatik>MathematikRepository <Informatik>Verzweigendes ProgrammBenutzerfreundlichkeitSpeicherabzugDifferenteSoftwarewartungBinärcodeRechter WinkelCASE <Informatik>AusnahmebehandlungCachingBitKartesische KoordinatenKonfigurationsraumProgrammierumgebungPhysikalisches SystemQuellcodeEndliche ModelltheorieRechenschieberFahne <Mathematik>Elektronische PublikationPhysikalische TheorieSoftwareProjektive EbeneDistributionenraumIntegralSchaltnetzProgrammfehlerKeller <Informatik>Fermi National Accelerator LaboratorySoftwareentwicklerUniversal product codeKomponententestComputerspielGraphiktablettDateiverwaltungSoftwaretestComputerImplementierungProzessautomationKomplex <Algebra>Mechanismus-Design-TheorieComputeranimation
Keller <Informatik>SoftwareUmwandlungsenthalpieÜbersetzer <Informatik>BenutzerfreundlichkeitSystemprogrammierungBinärdatenGebäude <Mathematik>KonfigurationsraumComputerarchitekturManufacturing Execution SystemMenütechnikMailing-ListeLie-GruppeKommandospracheBildschirmmaskeLemma <Logik>DistributionenraumSupercomputerVersionsverwaltungLeistung <Physik>BefehlsprozessorParametersystemCompilerIntelVersuchsplanungFehlermeldungVerschlingungGraphAbstraktionsebeneElektronischer FingerabdruckAttributierte GrammatikVariableTextur-MappingIterationCachingSchlüsselverwaltungVorzeichen <Mathematik>CodeSoftwarewartungParametersystemDeskriptive StatistikGrenzschichtablösungKonfigurationsraumGamecontrollerMailing-ListeBenchmarkProgrammierumgebungBildgebendes VerfahrenOpen SourceSchaltnetzPunktwolkeCachingMereologieMatchingDifferenteBinärcodePolstelleProgrammierungQuick-SortSoftwareInstantiierungGebäude <Mathematik>HalbleiterspeicherProjektive EbeneAusnahmebehandlungComputerarchitekturFront-End <Software>ParallelrechnerKeller <Informatik>Physikalisches SystemTextbausteinVerfügbarkeitQuellcodeMultiplikationsoperatorGarbentheorieSampler <Musikinstrument>Vorzeichen <Mathematik>SelbstrepräsentationCompilerProzess <Informatik>VersionsverwaltungFehlermeldungGRASS <Programm>CodeSchnittmengeWeb Sitep-BlockSoftwaretestVerzeichnisdienstMathematische LogikDistributionenraumMapping <Computergraphik>BefehlsprozessorSpieltheorieServiceorientierte ArchitekturZentrische StreckungProdukt <Mathematik>GraphDreiecksfreier GraphKonfiguration <Informatik>RoboterSoundverarbeitungUmwandlungsenthalpieProgrammfehlerMobiles EndgerätMatrizenrechnungEuler-Lagrange-GleichungRepository <Informatik>Computeranimation
SchlüsselverwaltungVorzeichen <Mathematik>BinärdatenCodeCachingCDN-NetzwerkHash-AlgorithmusEindeutigkeitSkalierbarkeitGebäude <Mathematik>MaßstabExtreme programmingKeller <Informatik>SoftwareRuhmasseSchreib-Lese-KopfVersionsverwaltungKonfiguration <Informatik>FehlermeldungPhysikalisches SystemSoftwaretestAggregatzustandWarteschlangeIterationDatenmodellComputersicherheitFolge <Mathematik>ParallelrechnerMechanismus-Design-TheorieInterface <Schaltung>MenütechnikWiderspruchsfreiheitFrequenzGerichtete MengePrognoseverfahrenPhysikalisches SystemIterationGraphMikroblogSoftwareAggregatzustandCachingSoftwaretestFehlermeldungBinärcodeRootkitCoxeter-GruppeVorzeichen <Mathematik>MultiplikationsoperatorGebäude <Mathematik>ServerElektronische UnterschriftGüte der AnpassungBitEinsWarteschlangeSoftwarewartungGrundraumEndliche ModelltheorieParallelrechnerMathematikSampler <Musikinstrument>ProgrammierumgebungVirtuelle MaschineDateiformatRelationentheorieOrdnung <Mathematik>Patch <Software>VerkehrsinformationSoftwareentwicklerService providerKonfiguration <Informatik>SchlüsselverwaltungSummengleichungKeller <Informatik>Schwach besetzte MatrixVersionsverwaltungQuick-SortComputersicherheitExogene VariableHash-AlgorithmusDistributionenraumKonfigurationsraumsinc-FunktionComputeranimation
Elektronische PublikationMinkowski-MetrikInformationsspeicherungE-MailProgrammierumgebungGraphiktablettMehrrechnersystemTypentheorieRelativitätstheorieDickeGebäude <Mathematik>Computeranimation
RechenschieberDickeComputeranimationFlussdiagramm
Transkript: Englisch(automatisch erzeugt)