Supercomputer -Betriebssystem

A Supercomputer -Betriebssystem ist ein Betriebssystem bestimmt für Supercomputer. Seit dem Ende des 20. Jahrhunderts haben Supercomputer -Betriebssysteme größere Transformationen durchlaufen, da sich grundlegende Veränderungen in aufgetreten haben Supercomputerarchitektur.[1] Während frühe Betriebssysteme auf jeden Supercomputer maßgeschneidert waren, um Geschwindigkeit zu erreichen Linux,[2] damit alle Supercomputer auf der Top500 Liste im November 2017. Im Jahr 2021 werden die Top 10 Computer zum Beispiel ausgeführt Red Hat Enterprise Linux (Rhel) oder eine Variante davon oder andere Linux -Verteilung, z. Ubuntu.

Angesichts dieser modernen massiv parallel Supercomputer trennen in der Regel Berechnungen von anderen Diensten mit mehreren Arten von KnotenSie führen normalerweise verschiedene Betriebssysteme auf verschiedenen Knoten aus, z. B. unter Verwendung eines kleinen und effizienten Leichter Kernel wie zum Beispiel Berechnen Sie den Knotenkern (CNK) oder Berechnen Sie Knoten Linux (CNL) auf Rechenknoten, aber ein größeres System wie ein Linux-Derivat auf dem Server und Input-Output (I/o) Knoten.[3][4]

Während eines herkömmlichen Multi-User-Computersystems Arbeit planen ist praktisch a Aufgabe Das Problem für die Verarbeitung und periphere Ressourcen in einem massiv parallelen System muss das Arbeitsmanagementsystem die Zuweisung sowohl Rechen- als auch Kommunikationsressourcen verwalten sowie mit unvermeidlichen Hardwarefehlern zu tun, wenn Zehntausende von Prozessoren vorhanden sind.[5]

Obwohl die meisten modernen Supercomputer das Linux -Betriebssystem verwenden,[6] Jeder Hersteller hat seine eigenen spezifischen Änderungen an dem von ihm verwendeten Linux-Derivat vorgenommen, und es gibt keinen Industriestandard, teilweise, weil die Unterschiede in den Hardwarearchitekturen Änderungen erfordern, um das Betriebssystem für jedes Hardwaredesign zu optimieren.[1][7]

Kontext und Überblick

In den frühen Tagen des Supercomputings entwickelten sich die grundlegenden architektonischen Konzepte rasant und Systemsoftware Musste Hardware -Innovationen folgen, die normalerweise schnelle Kurven nahmen.[1] In den frühen Systemen wurden Betriebssysteme auf jeden Supercomputer zugeschnitten, um Geschwindigkeit zu gewinnen. In der Eile, sie zu entwickeln Hardware.[1]

Das Supercomputerzentrum bei NASA Ames

In den 1980er Jahren die Kosten für die Softwareentwicklung bei Cray entsprach dem, was sie für Hardware ausgegeben haben, und dieser Trend war teilweise für einen Abzug von den internen Betriebssystemen zur Anpassung der generischen Software verantwortlich.[2] Die erste Welle in den Änderungen des Betriebssystems kam Mitte der 1980er Jahre, da die anhand von Anbietern spezifischen Betriebssystemen zugunsten von aufgegeben wurden Unix. Trotz der frühen Skepsis erwies sich dieser Übergang als erfolgreich.[1][2]

In den frühen neunziger Jahren traten in der Supercomputing -Systemsoftware große Veränderungen auf.[1] Zu diesem Zeitpunkt hatte die wachsende Verwendung von Unix begonnen, die Art und Weise zu ändern, wie Systemsoftware gesehen wurde. Die Verwendung einer hochstufigen Sprache (C) Um das Betriebssystem zu implementieren, und die Abhängigkeit von standardisierten Schnittstellen stand im Gegensatz zur Montagesprache Orientierte Ansätze der Vergangenheit.[1] Als Hardwareanbieter Unix an ihre Systeme anpassten, wurden Unix neue und nützliche Funktionen hinzugefügt, z. B. schnelle Dateisysteme und einstellbar Prozessplaner.[1] Alle Unternehmen, die UNIX anpassten, nahmen jedoch einzigartige Änderungen daran vor, anstatt an einem Branchenstandard zusammenzuarbeiten, um "Unix für Supercomputer" zu erstellen. Dies lag zum Teil daran, dass Unterschiede in ihren Architekturen diese Änderungen erforderten, um Unix für jede Architektur zu optimieren.[1]

Als Allzweck -Betriebssysteme stabil wurden, begannen die Supercomputer, den kritischen Systemcode von ihnen auszuleihen und anzupassen, und stützten sich auf die reichhaltigen Sekundärfunktionen, die damit einhergingen, und mussten das Rad nicht neu erfinden.[1] Gleichzeitig wuchs die Größe des Codes für Allzweck -Betriebssysteme schnell. Als Unix-basierter Code 500.000 Zeilen lang erreicht hatte, war seine Wartung und Verwendung eine Herausforderung.[1] Dies führte dazu, dass die Bewegung verwendet wurde Mikrokernel Dies verwendete einen minimalen Satz der Betriebssystemfunktionen. Systeme wie Mach bei Carnegie Mellon Universität und Chorusos bei INRIA waren Beispiele für frühe Mikrokernel.[1]

Die Trennung des Betriebssystems in separate Komponenten wurde notwendig, da Supercomputer verschiedene Arten von Knoten entwickelten, z. B. Rechenknoten gegenüber E/A -Knoten. So führen moderne Supercomputer normalerweise verschiedene Betriebssysteme auf verschiedenen Knoten aus, z. B. unter Verwendung eines kleinen und effizienten Leichter Kernel wie zum Beispiel CNK oder CNL auf Berechnung Knoten, aber ein größeres System wie a Linux-Deivativ auf Server- und E/A -Knoten.[3][4]

Frühe Systeme

Der Erste Cray-1 (Die Probe, die mit Interna gezeigt wurde) wurde dem Kunden ohne Betriebssystem geliefert.[8]

Das CDC 6600, allgemein als der erste Supercomputer der Welt angesehen, leitete die Chippewa -Betriebssystem, was dann auf verschiedenen anderen eingesetzt wurde CDC 6000 -Serie Computers.[9] Die Chippewa war ziemlich einfach Jobkontrolle Orientiertes System, das aus dem früheren abgeleitet ist CDC 3000, aber es beeinflusste das später Kronos und UMFANG Systeme.[9][10]

Der Erste Cray-1 wurde an das Los Alamos Labor ohne Betriebssystem oder eine andere Software geliefert.[11] Los Alamos hat die Anwendungssoftware dafür und das Betriebssystem entwickelt.[11] Das Haupt -Timesharing -System für den Cray 1, das Cray Time Sharing System (CTSS), wurde dann in den Livermore Labs als direkter Nachkomme des Livermore Time Sharing System (LTSS) für das CDC 6600 -Betriebssystem von zwanzig Jahren zuvor.[11]

Bei der Entwicklung von Supercomputern dominierte steigende Softwarekosten bald, wie die Kosten für die Softwareentwicklung bei Cray wachsen, um ihren Kosten für Hardware zu entsprechen.[2] Dieser Trend war teilweise für einen Abzug vom Inhouse verantwortlich Cray -Betriebssystem zu Unicos System basierend auf Unix.[2] 1985 die Cray-2 war das erste System, das mit dem Unicos -Betriebssystem versendet wurde.[12]

Etwa zur gleichen Zeit die EOS Das Betriebssystem wurde von entwickelt von ETA -Systeme für den Einsatz in ihrem ETA10 Supercomputer.[13] Geschrieben in Cybil, eine pascalartige Sprache von SteuerungsdatengesellschaftEOS hob die Stabilitätsprobleme bei der Entwicklung stabiler Betriebssysteme für Supercomputer hervor, und schließlich wurde auf derselben Maschine ein Unix-ähnliches System angeboten.[13][14] Zu den Lehren, die aus der Entwicklung der ETA -Systemsoftware gezogen wurden, gehörten das hohe Risiko, das mit der Entwicklung eines neuen Supercomputer -Betriebssystems verbunden ist, und die Vorteile der Verwendung von UNIX mit seiner großen bestehenden Basis von System -Software -Bibliotheken.[13]

Bis zur Mitte der neunziger Jahre ging der Trend trotz der vorhandenen Investitionen in ältere Betriebssysteme zur Verwendung von UNIX-basierten Systemen, was auch die Verwendung von interaktiver Einsatz erleichterte Grafische Benutzeroberflächen (GUIS) für Wissenschaftliches rechnen über mehrere Plattformen hinweg.[15] Die Bewegung in Richtung a Warenbetrieb Hatten Gegner, die das schnelle Tempo und den Fokus der Linux -Entwicklung als Haupthindernis gegen die Adoption zitierten.[16] Ein Autor schrieb "Linux wird wahrscheinlich aufholen, aber wir haben jetzt große Systeme". Trotzdem gewann dieser Trend weiter und bis 2005 verwendeten praktisch alle Supercomputer einige Unix-artig OS.[17] Diese Varianten von Unix enthalten IBM AIX, die Open Source Linux System und andere Anpassungen wie z. Unicos Aus Cray.[17] Bis zum Ende des 20. Jahrhunderts wurde Linux schätzungsweise den höchsten Anteil am Supercomputing -Kuchen beherrscht.[1][18]

Moderne Ansätze

Das Blaues Gen/P Supercomputer bei Argonne National Lab

Das IBM Blaues Gen Supercomputer verwendet die CNK -Betriebssystem Auf den Rechenknoten, verwendet aber eine modifizierte Linux-basierter Kernel namens I/O -Knotenkern (TINTE) auf den E/O -Knoten.[3][19] CNK ist a Leichter Kernel Das wird auf jedem Knoten ausgeführt und unterstützt eine einzelne Anwendung für einen einzelnen Benutzer auf diesem Knoten. Aus Gründen des effizienten Betriebs wurde das Design von CNK einfach und minimal gehalten, wobei das physische Gedächtnis statisch zugeordnet wurde und der CNK weder eine Planung oder Kontextschaltung liefert.[3] CNK implementiert nicht einmal Datei i/o Auf dem Rechenknoten, aber delegiert das an dedizierte E/A -Knoten.[19] Angesichts der Tatsache, dass auf dem Blue-Gen mehrere Rechenknoten einen einzelnen E/A-Knoten teilen, erfordert das E/A-Knoten-Betriebssystem Multitasking, daher die Auswahl des Linux-basierten Betriebssystems.[3][19]

Während des traditionellen Multi-User-Computersystems und der frühen Supercomputer, Arbeit planen war praktisch a Aufgabenplanung Problem für die Verarbeitung und periphere Ressourcen in einem massiv parallelen System muss das Arbeitsmanagementsystem die Zuteilung sowohl der Rechen- als auch der Kommunikationsressourcen verwalten.[5] Es ist wichtig, die Aufgabenplanung und das Betriebssystem in unterschiedlichen Konfigurationen eines Supercomputers abzustimmen. Ein typischer paralleler Jobplaner hat eine Master Scheduler Dadurch wird eine Reihe von Sklavenplanern angewiesen, zu starten, zu überwachen und zu kontrollieren Parallele Jobsund erhält regelmäßig Berichte von ihnen über den Status des Arbeitsfortschritts.[5]

Einige, aber nicht alle Supercomputerplaner versuchen, die Lokalität der Arbeitsplatzausführung aufrechtzuerhalten. Das PBS Pro Scheduler verwendet auf der Cray XT3 und Cray XT4 Systeme versuchen nicht, die Lokalität für seine dreidimensionale Optimierung zu optimieren Torusverbindungverwendet aber einfach den ersten verfügbaren Prozessor.[20] Andererseits zielt der Scheduler von IBM auf den Blue Gene Supercomputers darauf ab, die Lokalität zu nutzen und die Netzwerkkonkurrenz zu minimieren, indem Aufgaben aus derselben Anwendung einer oder mehreren Mittelplanen einer 8x8x8 -Knotengruppe zugewiesen werden.[20] Das Slurm Workload Manager Scheduler verwendet einen besten Passalgorithmus und führt aus Hilbert Curve Planing Optimierung der Lokalität von Aufgabenzuweisungen.[20] Mehrere moderne Supercomputer wie die Tianhe-2 Verwenden Sie Slurm, das die Konkurrenz um Ressourcen im gesamten System schlichte. Slurm ist Open Source, Linux-basiert, sehr skalierbar und können Tausende von Knoten in einem Computercluster mit einem anhaltenden Durchsatz von über 100.000 Arbeitsplätzen pro Stunde verwalten.[21][22]

Siehe auch

Verweise

  1. ^ a b c d e f g h i j k l m Encyclopedia of Parallel Computing von David Padua 2011 ISBN0-387-09765-1 Seiten 426–429.
  2. ^ a b c d e Kenntnismaschinen: Essays zum technischen Wandel von Donald MacKenzie 1998 ISBN0-262-63188-1 Seite 149–151.
  3. ^ a b c d e Parallelverarbeitung Euro-Par 2004: 10. Internationale Euro-Par-Konferenz 2004 von Marco Danelutto, Marco Vanneschi und Domenico Laforenza ISBN3-540-22924-8 Seite 835.
  4. ^ a b Eine Bewertung des Oak Ridge National Laboratory Cray XT3 von Sadaf R. Alam et al., International Journal of High Performance Computing Applications, Februar 2008 Vol. 22 Nr. 1 52–80.
  5. ^ a b c Open Job Management Architecture für den Blue Gene/L Supercomputer von Yariv Aridor et al. In Jobplanungsstrategien für die parallele Verarbeitung von Dror G. Feitelson 2005 ISBN978-3-540-31024-2 Seiten 95–101.
  6. ^ Vaughn-Nichols, Steven J. (18. Juni 2013). "Linux regiert weiterhin Supercomputer". ZDNET. Abgerufen 20. Juni, 2013.
  7. ^ "Top500 OS -Diagramm". Top500.org. Archiviert von das Original Am 2012-03-05. Abgerufen 2010-10-31.
  8. ^ Targeting des Computers: Unterstützung der Regierung und internationaler Wettbewerb von Kenneth Flamm 1987 ISBN0-8157-2851-4 Seite 82 [1]
  9. ^ a b Die Computerrevolution in Kanada von John N. Vardalas 2001 ISBN0-262-22064-4 Seite 258.
  10. ^ Design eines Computers: Die Steuerungsdaten 6600 Von James E. Thornton, Scott, Foresman Press 1970 Seite 163.
  11. ^ a b c Targeting des Computers: Unterstützung der Regierung und internationaler Wettbewerb von Kenneth Flamm 1987 ISBN0-8157-2851-4 Seiten 81–83.
  12. ^ Lester T. Davis, Das Kräfteverhältnis, eine kurze Geschichte der Hardwarearchitekturen von Cray Research In "High Performance Computing: Technologie, Methoden und Anwendungen" von J. J. Donglarra 1995 ISBN0-444-82163-5 Seite 126 [2].
  13. ^ a b c Lloyd M. Thorndyke, Der Niedergang der ETA -Systeme In "Frontiers of Supercomputing II von Karyn R. Ames, Alan Brenner 1994 ISBN0-520-08401-2 Seiten 489–497.
  14. ^ Vergangenheit, Gegenwart, parallel: Eine Übersicht über verfügbare parallele Computersysteme von Arthur Trew 1991 ISBN3-540-19664-1 Seite 326.
  15. ^ Grenzen des Supercomputings II von Karyn R. Ames, Alan Brenner 1994 ISBN0-520-08401-2 Seite 356.
  16. ^ Brightwell, Ron Riesen, Rolf Maccabe, Arthur. "Über die Angemessenheit von Warenbetriebssystemen für großflächige, ausgewogene Computersysteme" (PDF). Abgerufen 29. Januar, 2013.{{}}: Cs1 montiert: Mehrfachnamen: Autorenliste (Link)
  17. ^ a b Auf dem neuesten Stand: Die Zukunft des Supercomputings Von Susan L. Graham, Marc Snir, Cynthia A. Patterson, Nationaler Forschungsrat 2005 ISBN0-309-09502-6 Seite 136.
  18. ^ Forbes Magazine, 03.15.05: Linux Rules Supercomputer
  19. ^ a b c Parallelverarbeitung Euro-Par 2006: 12. Internationale Euro-Par-Konferenz, 2006, von Wolfgang E. Nagel, Wolfgang V. Walter und Wolfgang Lehner ISBN3-540-37783-2.
  20. ^ a b c Stellenplanungsstrategien für die parallele Verarbeitung: von Eitan Fratenberg und Uwe Schwagershohn 2010 ISBN3-642-04632-0 Seiten 138–144.
  21. ^ Slurm bei Schedmd
  22. ^ Jette, M. und M. Grondona, Slurm: Einfaches Linux -Dienstprogramm für das Ressourcenmanagement In den Proceedings of Clusterworld Conference, San Jose, Kalifornien, Juni 2003 [3]