Definition: Open-Source-Software für HPC-Containerlösungen Was ist Singularity?

Von zeroshope |

Anbieter zum Thema

Singularity ist eine von Sylabs entwickelte und verwaltete Software, die der Virtualisierung auf Ebene des Betriebssystems dient. Gedacht ist sie für hochperformante Aufgaben z.B. in der Wissenschaft. Es handelt sich um ein BSD-lizensiertes Open-Source-Angebot.

Die Open-Source-Software Singularity unterstützt das Erstellen und Ausspielen von Containern.
Die Open-Source-Software Singularity unterstützt das Erstellen und Ausspielen von Containern.
(Bild: gemeinfrei / Pixabay)

Singularity (Software - Sylabs.io) ist ein mit einer BSD („Berkeley Software Distribution“)-Lizenz ausgestattetes Open-Source-Angebot, das erstmals 2016 erschien. Gedacht ist es für die Erstellung und Ausführung von Containern. Es ist also beispielsweise mit Docker vergleichbar. Das Alleinstellungsmerkmal der von Sylabs verwalteten Lösung ist ihr besonderer Schwerpunkt: Sie macht hochperformantes Computing (HPC) durch die Virtualisierung der über die Container ausgespielten Anwendungen auf der Betriebssystemebene zugänglich.

Für die Forschung ist dies beispielsweise wertvoll, weil diese nicht selbst entsprechende IT-Hardware vorhalten muss - oder dies nur in einem deutlich geringeren Rahmen zu tun haben. Ein Supercomputer reicht beispielsweise für eine Hochschule. Zu den Nutzern zählen deshalb Institutionen wie die Universitäten Harvard und Stanford sowie das Fraunhofer-Institut für Techno- und Wirtschaftsinformatik.

Um diesen Effekt zu erhöhen, wurde Singularity 2021 aufgespalten. Das ursprüngliche Singularity trat im November des Jahres der Linux Foundation bei und wurde deshalb in Apptainer umgenannt. Zudem entstand eine Singularity Community Edition (SingularityCE). Dabei steht die Gemeinschaft im Mittelpunkt: Die Nutzergruppe möchte unter Anwendung der Software zusammen bestimmte Probleme lösen und hält deshalb beispielsweise auch immer wieder Meetings ab. Der Beitritt steht allen Interessenten frei und kann via Slack, Google Groups und GitHub erfolgen. Die Nutzung der Software bleibt auch in diesem Fall kostenlos.

Seit 2018 Unterstützung für die Programmiersprache Go

Ursprünglich wurde die Softwarelösung in C verfasst. 2018 entschieden sich die Entwickler jedoch, auf die nach Google benannte Programmiersprache Go auszuweichen. Viele Projekte auf der Welt vertrauen dieser. Dadurch entsteht für Singularity eine größere Interoperabilität. Die Hoffnung ist, dass sich deshalb noch mehr Nutzer für die Softwarelösung entscheiden.

Im selben Jahr führten die Entwickler auch das neue Format SIF („Singularity Image Format“) zum Packen von Containern ein. Mit dabei sind die Remote Builder Services, die eine Container-Erstellung ohne Root-Zugriff ermöglichen. Das SIF verfügt außerdem über einen automatischen Mechanismus zur kryptografischen Signierung und Validierung der Container.

Diese Vorteile bietet die Nutzung von Singularity:

  • Die Anwendung und ihre Dependenzen (alles, was zur Nutzung der App notwendig ist) liegen stets in der identischen und unveränderlichen Form vor. Dies erleichtert die Reproduzierbarkeit wissenschaftlicher Ergebnisse erheblich.
  • Container werden als einzelne Dateien ausgespielt. Dies erleichtert es, sie mit anderen Anwendern zu teilen.
  • Wer möchte, kann auch andere Formate als SIF nutzen. Unterstützt wird beispielsweise ebenfalls das Pendant von Docker. Dies erleichtert die Ausspielung von Containern.
  • Das System ist deutlich sicherer als viele vergleichbare Lösungen.
  • Der InfiniBand-Standard und die Omni-Path Architektur (OPA) werden unterstützt.
  • Die Software kann Grafikbeschleuniger in die eigene Nutzung einbinden.
  • Nativ wird Open Message Passing Interface (MPI) unterstützt, das diverse Supercomputer nutzen, um Ressourcen und Technologien von anderen Projekten einzusetzen.
  • Singularity ist deshalb auch für Nutzer abseits von Hochschulen und Laboren nützlich, die in den Bereichen künstliche Intelligenz sowie maschinellem Lernen tätig sind und/oder mit datenintensiven Workloads umgehen müssen.

Die wichtigsten Befehle für Einsteiger

Singularity ist modulartig aufgebaut und wird deshalb über den Linux-Terminal gesteuert. Die wichtigsten Befehle für Einsteiger lauten:

  • module load singularity: Laden der Software.
  • singularity help: Ausgabe der wichtigsten Befehle der Lösung für die Containervirtualisierung.
  • singularity build: Erstellung eines Containers.
  • singularity run : Ausführung eines Containers.

Häufige Probleme

In Institutionen müssen die Namespaces aus Sicherheitsgründen häufig deaktiviert sein. Dies ist beispielsweise bei der Universität Siegen der Fall, bei der die Software auf dem Hochleistungs-OMNI-Cluster läuft. Dies kann verschiedene Funktionen von Singularity einschränken. Das Problem ist, dass die beigeordneten Maschinen die Container in der Regel mit „-fakeroot“-Befehl ausführen, der vorgaukelt, der Nutzer würde über bestimmte Rechte verfügen, um Funktionen auf diese Weise verfügbar zu machen. Ohne die Namespaces scheidet diese Option aus, was die Erstellung von Containern deutlich erschwert. Der Online Build Service von Sylabs eignet sich, um dieses Problem zu lösen.

Über die kostenpflichtigen Pro- und Enterprise-Versionen

Nicht alle Versionen von Singularity sind kostenlos. Sylabs hat die kostenpflichtigen Pro- und Enterprise-Variante geschaffen, die sich speziell an Unternehmen richten. Diese verfügen noch einmal über mehr Funktionen. Das wichtigste zusätzliche Feature ist die Registry. Dabei handelt es sich um eine Bibliothek der Container. Erwähnenswert ist außerdem, dass die kostenpflichtigen Varianten zusätzliche Linux-Distributionen wie z.B. Ubuntu LTS unterstützen, was bei der Community-Version nicht der Fall ist.

Microservices, Cloud Native, REST API , Kubernetes & Co.: Cloud Computing Wiki

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie verständlich erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier neutral verfasste und leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Erläuterungen direkt dort nachschlagen.  

Zum Special: Definitionen rund um Cloud Computing

(ID:48724494)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Cloud Computing

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung