DE112021001470T5 - Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie - Google Patents

Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie Download PDF

Info

Publication number
DE112021001470T5
DE112021001470T5 DE112021001470.6T DE112021001470T DE112021001470T5 DE 112021001470 T5 DE112021001470 T5 DE 112021001470T5 DE 112021001470 T DE112021001470 T DE 112021001470T DE 112021001470 T5 DE112021001470 T5 DE 112021001470T5
Authority
DE
Germany
Prior art keywords
node
computing nodes
topology
computer
bandwidth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021001470.6T
Other languages
English (en)
Inventor
Alexis Asseman
Ahmet Ozcan
Charles Cox
Pritish Narayanan
Nicolas Antoine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021001470T5 publication Critical patent/DE112021001470T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/247Multipath using M:N active or standby paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity

Abstract

Es wird ein auf einem Computer implementiertes Verfahren zur Verwendung mit einer umkonfigurierbaren Datenverarbeitungseinheit bereitgestellt, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N x M x Z angeordnet sind, wobei die Datenverarbeitungsknoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind. Das Verfahren umfasst ein Verwenden der Datenverarbeitungseinheit zum Durchführen von Berechnungen, die durch (i) eine ursprüngliche System-E/A-Bandbreite und (ii) eine ursprüngliche Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind; ein Umkonfigurieren der Einheit in ein Netz der Topologie N' × M' × Z', wobei sich mindestens zwei der Werte N, M und Z von ihren entsprechenden Werten N', M' und Z' unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Verwenden der Einheit zum Durchführen von Berechnungen, die durch (i) eine modifizierte System-E/A-Bandbreite und (ii) eine modifizierte Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf Parallelverarbeitungssysteme und insbesondere bezieht sich die Erfindung auf ein Optimieren einer Eingabe-/Ausgabe-(E/A-) Bandbreite und einer Knoten-zu-Knoten-Latenz innerhalb von Parallelverarbeitungssystemen.
  • Parallelverarbeitungssysteme dienen dazu, Berechnungen mit vielen verschiedenen Arten und Mengen von Daten durchzuführen. Zum Beispiel können Parallelverarbeitungssysteme verwendet werden, um ein oder mehrere neuronale Netzwerke zu implementieren. Allerdings sind Parallelverarbeitungssysteme derzeit nicht in der Lage, ihre Leistungsmerkmale an sich ändernde Arbeitsanforderungen anzupassen.
  • ZUSAMMENFASSUNG
  • Ein auf einem Computer implementiertes Verfahren gemäß einer Ausführungsform umfasst ein Identifizieren vordefinierter Operationen, die von einer Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; ein Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-)Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; ein Anpassen der Dimensionen der 3D-Netztopologie, um eine angepasste 3D-Netztopologie (an adjusted 3D mesh topology) zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein 3D-Netz der Topologie N' × M' × Z' umfasst, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Ausführen der vordefinierten Operationen, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  • Gemäß einer anderen Ausführungsform umfasst ein Computerprogrammprodukt zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie ein durch einen Computer lesbares Speichermedium, in dem Programmanweisungen verkörpert sind, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal an sich ist und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: ein Identifizieren vordefinierter Operationen durch die Verarbeitungseinheit, die von der Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; ein Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-) Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz durch die Verarbeitungseinheit für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; ein Anpassen der Dimensionen der 3D-Netztopologie durch die Verarbeitungseinheit, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein 3D-Netz der Topologie N' × M' × Z' durch die Verarbeitungseinheit umfasst, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden, und wobei N × M × Z gleich N' × M' × Z' ist; und ein Ausführen der vordefinierten Operationen durch die Verarbeitungseinheit, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  • Gemäß einer anderen Ausführungsform umfasst ein System eine Sammlung von Datenverarbeitungsknoten, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Knoten Datenverarbeitungs-Hardware enthalten, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind; eine Sammlung von E/A-Verbindungen, die mit einer der Seiten des Netzes verbunden sind, wobei die Seite N × M Knoten aufweist, wobei jede der E/A-Verbindungen mit einem bestimmten Knoten von dieser Seite verbunden ist; und E/A-Karten, die an die E/A-Verbindungen angeschlossen sind.
  • Gemäß einer anderen Ausführungsform wird ein auf einem Computer implementiertes Verfahren zur Verwendung mit einer umkonfigurierbaren Datenverarbeitungseinheit bereitgestellt, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Datenverarbeitungsknoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind. Das Verfahren umfasst ein Verwenden der Datenverarbeitungseinheit zum Durchführen von Berechnungen, die durch (i) eine ursprüngliche System-E/A-Bandbreite und (ii) eine ursprüngliche Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind; ein Umkonfigurieren der Einheit in ein Netz der Topologie N' × M' × Z', wobei sich mindestens zwei der Werte N, M und Z von ihren entsprechenden Werten N', M' und Z' unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Verwenden der Einheit zum Durchführen von Berechnungen, die durch (i) eine modifizierte System-E/A-Bandbreite und (ii) eine modifizierte Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung werden anhand der folgenden ausführlichen Beschreibung deutlich, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung zeigt.
  • Figurenliste
    • 1 zeigt eine Netzwerkarchitektur gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 zeigt eine beispielhafte Hardware-Umgebung, die den Servern und/oder Clients von 1 gemäß einer Ausführungsform der vorliegenden Erfindung zugehörig sein kann.
    • 3 zeigt ein mehrstufiges Datenspeichersystem gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 4 zeigt eine beispielhafte 3x3x3-Netztopologie einer einzelnen Hardware-Karte gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5 zeigt eine beispielhafte 12x12x3-Netztopologie gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 zeigt eine beispielhafte Implementierung einer allgemeinen Konnektivitätskarte mit hoher Bandbreite gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 7 zeigt eine beispielhafte 3D-Netztopologie, die gemäß einer Ausführungsform der vorliegenden Erfindung über eine ihrer Seiten Eingaben erhält.
    • 8 zeigt ein Verfahren zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 9 zeigt ein Verfahren zum Umkonfigurieren einer Datenverarbeitungseinheit, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N × M × Z angeordnet sind, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung und soll die hier beanspruchten erfinderischen Konzepte nicht einschränken. Darüber hinaus können bestimmte hier beschriebene Funktionen in Kombination mit anderen beschriebenen Funktionen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.
  • Sofern hier nicht ausdrücklich anders definiert, sind alle Begriffe so weit wie möglich auszulegen, zum Beispiel die aus der Beschreibung hervorgehenden Bedeutungen sowie die Bedeutungen, die der Fachmann versteht und/oder die in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Es ist auch zu beachten, dass die in der Beschreibung und den beigefügten Ansprüchen verwendeten Singularformen „einer“, „eine“ und „der, die, das“ die Pluralformen umfassen, wenn nicht anders angegeben. Es wird ferner darauf hingewiesen, dass die Begriffe „umfasst“ und/oder „aufweisen“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Funktionen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder Hinzufügen von einer/einem oder mehreren anderen Funktionen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie.
  • In einer allgemeinen Ausführungsform umfasst ein auf einem Computer implementiertes Verfahren ein Identifizieren vordefinierter Operationen, die von einer Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; ein Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-)Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; ein Anpassen der Dimensionen der 3D-Netztopologie, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein 3D-Netz der Topologie N' × M' × Z' umfasst, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Ausführen der vordefinierten Operationen, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  • In einer anderen allgemeinen Ausführungsform umfasst ein Computerprogrammprodukt zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie ein durch einen Computer lesbares Speichermedium, in dem Programmanweisungen verkörpert sind, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal an sich ist und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: ein Identifizieren vordefinierter Operationen durch die Verarbeitungseinheit, die von der Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; ein Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-) Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz durch die Verarbeitungseinheit für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; ein Anpassen der Dimensionen der 3D-Netztopologie durch die Verarbeitungseinheit, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein 3D-Netz der Topologie N' × M' × Z' durch die Verarbeitungseinheit umfasst, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Ausführen der vordefinierten Operationen durch die Verarbeitungseinheit, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  • In einer anderen allgemeinen Ausführungsform umfasst ein System eine Sammlung von Datenverarbeitungsknoten, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Knoten Datenverarbeitungs-Hardware enthalten, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind; eine Sammlung von E/A-Verbindungen, die mit einer der Seiten des Netzes verbunden sind, wobei die Seite N × M Knoten aufweist, wobei jede der E/A-Verbindungen mit einem bestimmten Knoten von dieser Seite verbunden ist; und E/A-Karten, die an die E/A-Verbindungen angeschlossen sind.
  • In einer anderen allgemeinen Ausführungsform wird ein auf einem Computer implementiertes Verfahren zur Verwendung mit einer umkonfigurierbaren Datenverarbeitungseinheit bereitgestellt, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Datenverarbeitungsknoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind. Das Verfahren umfasst ein Verwenden der Datenverarbeitungseinheit zum Durchführen von Berechnungen, die durch (i) eine ursprüngliche System-E/A-Bandbreite und (ii) eine ursprüngliche Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind; ein Umkonfigurieren der Einheit in ein Netz der Topologie N' × M' × Z', wobei sich mindestens zwei der Werte N, M und Z von ihren entsprechenden Werten N', M' und Z' unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und ein Verwenden der Einheit zum Durchführen von Berechnungen, die durch (i) eine modifizierte System-E/A-Bandbreite und (ii) eine modifizierte Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind.
  • 1 zeigt eine Architektur 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 1 dargestellt, wird eine Mehrzahl von entfernt angeordneten Netzwerken 102 bereitgestellt, die ein erstes entfernt angeordnetes Netzwerk 104 und ein zweites entfernt angeordnetes Netzwerk 106 umfassen. Ein Gateway 101 kann zwischen die entfernt angeordneten Netzwerke 102 und ein nahe gelegenes Netzwerk 108 geschaltet werden. Im Rahmen der vorliegenden Architektur 100 können die Netzwerke 104, 106 jede beliebige Form annehmen, zum Beispiel ein LAN, ein WAN wie das Internet, ein öffentliches Telefonnetz (PSTN, public switched telephone network), ein internes Telefonnetz, usw., ohne auf diese beschränkt zu sein.
  • In der Anwendung dient das Gateway 101 als Zugangspunkt von den entfernt angeordneten Netzwerken 102 zum nahe gelegenen Netzwerk 108. So kann das Gateway 101 als Router fungieren, der in der Lage ist, ein bestimmtes Datenpaket weiterzuleiten, das am Gateway 101 ankommt, sowie als Schalter, der den tatsächlichen Pfad in das und aus dem Gateway 101 für ein bestimmtes Paket bereitstellt.
  • Ferner ist mindestens ein Datenserver 114 enthalten, der mit dem nahe gelegenen Netzwerk 108 verbunden und von den entfernten Netzwerken 102 über das Gateway 101 zugänglich ist. Es ist zu beachten, dass der/die Datenserver 114 jede Art von Datenverarbeitungseinheit/Groupware umfassen kann. Mit jedem Datenserver 114 ist eine Mehrzahl von Benutzereinheiten 116 verbunden. Die Benutzereinheiten 116 können auch direkt über eines der Netzwerke 104, 106, 108 verbunden werden. Die Benutzereinheiten 116 können einen Desktop-Computer, Laptop-Computer, Handheld-Computer, Drucker oder eine andere Art von Logik umfassen. Es ist zu beachten, dass eine Benutzereinheit 111 in einer Ausführungsform auch direkt mit einem der Netzwerke verbunden sein kann.
  • Eine periphere Einheit 120 oder eine Reihe von peripheren Einheiten 120, zum Beispiel Faxgeräte, Drucker, vernetzte und/oder lokale Speichereinheiten oder-systeme usw., können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden sein. Es ist zu beachten, dass Datenbanken und/oder zusätzliche Komponenten mit jeder Art von Netzwerkelement, das mit den Netzwerken 104, 106, 108 verbunden ist, verwendet oder in diese integriert werden können. Im Rahmen der vorliegenden Beschreibung kann sich ein Netzwerkelement auf jede Komponente eines Netzwerks beziehen.
  • Gemäß einigen Ansätzen können die hierin beschriebenen Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen implementiert werden, die ein oder mehrere andere Systeme emulieren, zum Beispiel ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung hostet, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann in einigen Ausführungsformen durch die Verwendung von VMWARE-Software verbessert werden.
  • In weiteren Ansätzen können ein oder mehrere Netzwerke 104, 106, 108 ein Cluster von Systemen darstellen, die gemeinhin als „Cloud“ bezeichnet werden. Beim Cloud Computing werden gemeinsam genutzte Ressourcen wie zum Beispiel Rechenleistung, periphere Einheiten, Software, Daten, Server usw. jedem System in der Cloud auf Abruf bereitgestellt, wodurch der Zugang und die Verteilung von Diensten über viele Datenverarbeitungssysteme hinweg ermöglicht wird. Beim Cloud Computing wird in der Regel eine Internetverbindung zwischen den in der Cloud betriebenen Systemen hergestellt, es können aber auch andere Techniken zur Verbindung der Systeme verwendet werden.
  • 2 zeigt eine beispielhafte Hardware-Umgebung, die einer Benutzereinheit 116 und/oder Server 114 von 1 gemäß einer Ausführungsform zugehörig ist. Diese Figur zeigt eine typische Hardware-Konfiguration einer Workstation mit einer Zentraleinheit 210, zum Beispiel einem Mikroprozessor, und einer Reihe anderer Einheiten, die über einen Systembus 212 miteinander verbunden sind.
  • Die in 2 dargestellte Workstation umfasst einen Direktzugriffsspeicher (RAM) 214, einen Nur-Lese-Speicher (ROM) 216, einen E/A-Adapter 218 für den Anschluss von peripheren Einheiten wie Plattenspeichereinheiten 220 an den Bus 212, einen Benutzerschnittstellenadapter 222 für den Anschluss einer Tastatur 224, einer Maus 226, eines Lautsprechers 228, eines Mikrofons 232und/oder anderer Benutzerschnittstelleneinheiten wie ein Berührungsbildschirm und eine Digitalkamera (nicht dargestellt) an den Bus 212, ein Datenübertragungsadapter 234 für den Anschluss der Workstation an ein Verkehrsnetz 235 (z.B. ein Datenverarbeitungsnetz) und ein Anzeigeadapter 236 für den Anschluss des Busses 212 an eine Anzeigeeinheit 238.
  • Auf der Workstation kann ein Betriebssystem wie zum Beispiel das Betriebssystem (OS) Microsoft Windows®, ein MAC OS, ein UNIX OS usw. installiert sein. Es versteht sich von selbst, dass eine bevorzugte Ausführungsform auch auf anderen als den genannten Plattformen und Betriebssystemen implementiert werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung der Sprachen XML, C und/oder C++ oder anderer Programmiersprachen zusammen mit einer objektorientierten Programmiermethodik geschrieben werden. Es kann eine objektorientierte Programmierung (object oriented programming, OOP) verwendet werden, die zunehmend zum Entwickeln komplexer Anwendungen eingesetzt wird.
  • Unter Bezugnahme auf 3 wird nun ein Speichersystem 300 gemäß einer Ausführungsform gezeigt. Es ist zu beachten, dass einige der in 3 dargestellten Elemente gemäß verschiedener Ausführungsformen als Hardware und/oder Software implementiert werden können. Das Speichersystem 300 kann einen Speichersystemmanager 312 zum Datenaustausch mit einer Mehrzahl von Medien auf mindestens einer höheren Speicherebene 302 und mindestens einer niedrigeren Speicherebene 306 umfassen. Die höhere(n) Speicherebene(n) 302 kann/können vorzugsweise ein oder mehrere Medien mit wahlfreiem Zugriff oder Direktzugriff 304 umfassen, zum Beispiel Festplatten in Festplattenlaufwerken (HDDs), nichtflüchtige Speicher (nonvolatile memory, NVM), Halbleiterspeicher in Halbleiterdatenträgern (SSDs), Flash-Speicher, SSD-Arrays, Flash-Speicher-Arrays usw. und/oder andere hierin erwähnte oder in der Technik bekannte Medien. Die niedrigere(n) Speicherebene(n) 306 kann/können vorzugsweise ein oder mehrere leistungsschwächere Speichermedien 308 umfassen, darunter Medien mit sequenziellem Zugriff wie Magnetbänder in Bandlaufwerken und/oder optische Medien, Festplatten mit langsamerem Zugriff, SSDs mit langsamerem Zugriff usw. und/oder andere hierin erwähnte oder in der Technik bekannte Medien. Eine oder mehrere zusätzliche Speicherebenen 316 können jede von einem Entwickler des Systems 300 gewünschte Kombination von Speichermedien umfassen. Ferner kann jede der höheren Speicherebenen 302 und/oder der niedrigeren Speicherebenen 306 eine Kombination von Speichereinheiten und/oder Speichermedien umfassen.
  • Die Speichersystemverwaltung 312 kann mit den Speichermedien 304, 308 auf der/den höheren Speicherebene(n) 302 und der/den niedrigeren Speicherebene(n) 306 über ein Netzwerk 310, zum Beispiel ein Speichernetzwerk (storage area network, SAN) wie in 3 dargestellt, oder einen anderen geeigneten Netzwerktyp Daten austauschen. Die Speichersystemverwaltung 312 kann auch mit einem oder mehreren Hostsystemen (nicht dargestellt) über eine Hostschnittstelle 314 Daten austauschen, die gegebenenfalls ein Teil der Speichersystemverwaltung 312 sein kann. Die Speichersystemverwaltung 312 und/oder jede andere Komponente des Speichersystems 300 kann als Hardware und/oder Software implementiert werden und kann unter Verwendung eines (nicht dargestellten) Prozessors Befehle eines in der Technik bekannten Typs ausführen, zum Beispiel eine Zentraleinheit (CPU), eine vor Ort programmierbaren Gatter-Anordnung (FPGA, field programmable gate array), eine anwendungsspezifischen integrierten Schaltung (ASIC) usw. Natürlich kann jede beliebige Anordnung eines Speichersystems verwendet werden, wie dem Fachmann beim Lesen der vorliegenden Beschreibung klar sein wird.
  • In weiteren Ausführungsformen kann das Speichersystem 300 eine beliebige Anzahl von Datenspeicherebenen umfassen und innerhalb jeder Speicherebene die gleichen oder unterschiedliche Speichermedien enthalten. Zum Beispiel kann jede Datenspeicherebene denselben Typ von Speichermedien wie HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platten in optischen Laufwerken usw.), Medien mit Direktzugriff (CD-ROM, DVD-ROM usw.) oder eine beliebige Kombination von Medienspeichertypen umfassen. In einer solchen Konfiguration kann eine höhere Speicherebene 302 eine Mehrheit von SSD-Speichermedien umfassen, um Daten in einer leistungsstärkeren Speicherumgebung zu speichern, und die restlichen Speicherebenen, zum Beispiel die untere Speicherebene 306 und zusätzliche Speicherebenen 316, können eine beliebige Kombination von SSDs, HDDs, Bandlaufwerken usw. umfassen, um Daten in einer leistungsschwächeren Speicherumgebung zu speichern. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit höherer Priorität, Daten, auf die schneller zugegriffen werden muss, usw. auf der höheren Speicherebene 302 gespeichert werden, während Daten, die keines dieser Attribute aufweisen, auf den zusätzlichen Speicherebenen 316, einschließlich der niedrigeren Speicherebene 306, gespeichert werden können. Natürlich kann ein Fachmann nach dem Lesen der vorliegenden Beschreibungen viele andere Kombinationen von Speichermedientypen entwickeln, um sie gemäß den hier vorgestellten Ausführungsformen in verschiedene Speicherschemata zu implementieren.
  • Gemäß einigen Ausführungsformen kann das Speichersystem (zum Beispiel 300) eine Logik umfassen, die so konfiguriert ist, dass sie eine Anforderung zum Öffnen eines Datensatzes empfängt, eine Logik, die so konfiguriert ist, dass sie ermittelt, ob der angeforderte Datensatz auf einer niedrigeren Speicherebene 306 eines mehrstufigen Datenspeichersystems 300 in mehreren zugehörigen Teilen gespeichert ist, eine Logik, die so konfiguriert ist, dass sie jeden zugehörigen Teil des angeforderten Datensatzes auf eine höhere Speicherebene 302 des mehrstufigen Datenspeichersystems 300 verschiebt, und eine Logik, die so konfiguriert ist, dass sie den angeforderten Datensatz auf der höheren Speicherebene 302 des mehrstufigen Datenspeichersystems 300 aus den zugehörigen Teilen zusammensetzt.
  • Selbstverständlich kann diese Logik gemäß verschiedener Ausführungsformen als Verfahren auf einer beliebigen Einheit und/oder einem beliebigen System oder als Computerprogrammprodukt implementiert werden.
  • Beispielhaftes System mit mehreren Knoten
  • Ein beispielhaftes Hardware-System mit mehreren Knoten umfasst ein großes, hochskalierbares Parallelverarbeitungssystem mit Datenverarbeitungsknoten, die in einer 3D-Netztopologie miteinander verbunden sind. Jeder Datenverarbeitungsknoten kann eine ARM A9-CPU und eine FPGA-Logik auf demselben Chip (System-on-Chip) enthalten sowie 1 GB zweckbestimmter Speicher. Die Verfügbarkeit von FPGA-Ressourcen auf jedem Knoten ermöglicht eine anwendungsspezifische Prozessorentlastung.
  • Das Verkehrsnetz, das die 3D-Netztopologie realisiert, wird unter Verwendung von Einfach- und Mehrfach-SERDES-Verbindungen (Serializer-Deserializer) implementiert, die mit der FPGA-Hardware verbunden sind. Da die FPGA-Logik Zugriff auf diese physischen Verbindungen hat, können auf der Grundlage von Datenübertragungsmodi, die für die jeweilige Anwendung am besten geeignet sind, maßgeschneiderte Netzsteuerungen entwickelt werden. Eine beispielhafte Funktion des Systems ist das Optimieren der Systemleistung über Anwendungscode, Middleware, System-Software und Hardware hinweg.
  • In einer Ausführungsform kann diese 3D-Topologie verteilter Speicher- und Datenverarbeitungsressourcen mit der Möglichkeit, dass die Knoten untereinander Signale/Nachrichten austauschen, eine Hardware-Plattform ermöglichen, die auf unzählige Arten verwendet werden kann, um Bereiche der Datenverarbeitung wie die maschinelle Intelligenz weiterzuentwickeln.
  • Ein beispielhaftes System kann eine Entwicklungsplattform für neue Algorithmen der maschinellen Intelligenz umfassen. Es kann ein Parallelverarbeitungssystem mit einer großen Anzahl von Datenverarbeitungsknoten umfassen, die in einem 3D-Netz mit hoher Bandbreite organisiert sind. Diese beispielhafte Plattform ist auf hohe Flexibilität ausgelegt. In jedem Knoten befinden sich ein Dual-Core Cortex A9 ARM-Prozessor und eine FPGA auf demselben Chip, so dass das System für jeden Knoten umkonfiguriert werden kann. Jeder Knoten umfasst außerdem 1 GB zweckbestimmter DRAM, der als Programm- und Datenspeicher verwendet werden kann und auf den sowohl vom Prozessor als auch von der FPGA aus zugegriffen werden kann. Als Reaktion auf das Empfangen einer Hochleistungs-Lernaufgabe können viele der leistungskritischen Schritte auf die FPGA verlagert und dort optimiert werden, wobei der ARM nur zusätzliche Unterstützung bereitstellt (z.B. Initialisierung, Diagnose, Ausgabeübertragung usw.).
  • In einer Ausführungsform kann der Zugang zu den physischen Datenübertragungsverbindungen des Systems über eine oder mehrere FPGAs erfolgen. Darüber hinaus können mehrere unterschiedliche „logische“ Datenübertragungskanäle eingerichtet werden, die alle dieselben zugrundeliegenden SERDES-Verbindungen nutzen. Auf diese Weise können die Netzwerkschnittstellen so gestaltet (und sogar schrittweise optimiert) werden, dass sie sich optimal für die auf INC ausgeführten Anwendungen eignen.
  • Hardware-Karte
  • Ein beispielhafter Baustein des Systems ist eine Hardware-Karte. In einer Ausführungsform enthält jede Karte siebenundzwanzig Knoten, die in einem Würfel mit den Abmessungen 3x3x3 angeordnet sind. In einer anderen Ausführungsform kann ein System mit einer bis N Karten aufgebaut werden (z.B. würden 512 Karten 13.824 Knoten umfassen).
  • 4 zeigt eine beispielhafte 3x3x3-Netztopologie 400 einer einzelnen Hardware-Karte gemäß einer beispielhaften Ausführungsform. Die Knoten innerhalb der Netztopologie 400 sind so auf der Karte angeordnet, dass die Verbindungslängen zwischen logisch benachbarten Knoten minimiert werden. Die Knoten auf einer einzigen Karte können bis auf drei Ausnahmen identisch sein. Ein erster Knoten 402 umfasst einen Ethernet-Anschluss und fungiert als Gateway, das ein auf den FPGAs implementiertes internes Ethernet-Netzwerk mit einem herkömmlichen externen Netzwerk verbindet. Ein zweiter Knoten 404 ist ein Steuerungsknoten, der einen 4-Lane PCIe 2.0-Anschluss umfasst, der mit einem Host-PC verbunden werden kann. Der zweite Knoten 404 verfügt ebenfalls über eine serielle Verbindung, die während des Bootvorgangs als Konsole dienen kann oder an die anderen Knoten auf der Karte weitergeleitet werden kann. Ein dritter Knoten 406 bietet die Möglichkeit, eine PCIe-Schnittstelle zu unterstützen.
  • 5 zeigt eine beispielhafte 12x12x3-Netztopologie 500 gemäß einer beispielhaften Ausführungsform. Wie dargestellt, sind sechzehn Hardware-Karten, die jeweils ein kubisches 3x3x3-Netz implementieren (siehe zum Beispiel 4), über eine Rückwandplatine verbunden, um die 12x12x3-Netztopologie 500 zu bilden.
  • Rückwandplatine, Gehäuse und Racks
  • In einem beispielhaften System werden die einzelnen Karten in eine Rückwandplatine eingesteckt. Jede Rückwandplatine kann eine vordefinierte Anzahl von Karten aufnehmen (z.B. sechzehn), und die Verdrahtung der Rückwandplatine ordnet die Knoten der Karten in einem vordefinierten Netz an (z.B. ergeben sechzehn Karten ein 12x12x3-Netz). Die Rückwandplatine und die Karten können in einem Kartengehäuse montiert sein. Anschlüsse auf der Rückseite der Rückwandplatine ermöglichen die vertikale Verbindung von Gehäusen.
  • 6 zeigt eine beispielhafte Implementierung 600 einer allgemeinen Konnektivitätskarte mit hoher Bandbreite 602 gemäß einer Ausführungsform. Wie dargestellt, ist die allgemeine Konnektivitätskarte mit hoher Bandbreite 602 direkt mit einer Rückwandplatine 604 verbunden, die eine Mehrzahl von Datenverarbeitungsknoten unterstützt, die in einer dreidimensionalen (3D) Netztopologie angeordnet sind. Die allgemeine Konnektivitätskarte mit hoher Bandbreite 602 ist auch mit externen Datenquellen 606, externen Speichern 608 und externen Servern 610 über Verbindungen wie InfiniBand 612, Hochgeschwindigkeits-Ethernet 614 und eine Verbindung mit hoher Bandbreite 616 verbunden. Auf diese Weise kann die allgemeine Konnektivitätskarte mit hoher Bandbreite 602 die Datenübertragung zwischen der Mehrzahl von Datenverarbeitungsknoten, die in einer dreidimensionalen (3D) Netztopologie angeordnet sind, und den externen Datenquellen 606, dem externen Speicher 608 und den externen Servern 610 ermöglichen.
  • 7 zeigt eine beispielhafte 3D-Netztopologie 700, die gemäß einer beispielhaften Ausführungsform über eine ihrer Seiten 702 Eingaben erhält. Wie dargestellt, führt eine Oberseite 702 der 3D-Netztopologie 700 E/A-Operationen für die Mehrzahl der Datenverarbeitungsknoten innerhalb der 3D-Netztopologie 700 durch, wodurch eine Begrenzung der 3D-Netztopologie 700 verdeutlicht wird.
  • Physische Verbindungen
  • Jeder Knoten auf einer Karte kann mit seinen nächstgelegenen orthogonalen Nachbarn über eine Einfachverbindung (single span link) verbunden sein, wobei eine vordefinierte Anzahl (z.B. sechs) bidirektionaler Einfachverbindungen pro Knoten vorliegt. Die Knoten auf den Seiten des Würfels (d.h. alle Knoten außer dem zentralen Knoten usw.) haben Einfachverbindungen, die von der Karte ausgehen, und solche Knoten können ihre nächsten Nachbarn auf anderen Karten im System haben. Zusätzlich zu den Einfachverbindungen ermöglichen sechs bidirektionale Mehrfachverbindungen (multi-span link) eine effizientere Datenübertragung in einem größeren System. Mehrfachverbindungen verbinden Knoten, die in einer beliebigen orthogonalen Richtung drei Knoten voneinander entfernt sind und auf verschiedenen Karten beginnen und enden können. In einer Ausführungsform kann mit insgesamt 432 Verbindungen, die von der Karte ausgehen oder in sie eingehen, und 1 Gigabyte (GB) pro Sekunde pro Verbindung eine potenzielle Höchstbandbreite von 432 GB pro Sekunde pro Karte erreicht werden.
  • Die Datenübertragungsverbindungen können serielle, unidirektionale SERDES-Verbindungen mit hoher Geschwindigkeit umfassen. Die Verbindung kann aus zwei Leitungen bestehen (z.B. die differentiellen Datenleitungen). Die Verbindungen können durch ein Guthabensystem kontrolliert werden, um sicherzustellen, dass keine Übertragungsfehler auftreten und keine Daten verloren gehen. Eine empfangende Verbindung sendet (über ihre gepaarte Übertragungsverbindung) eine Anzahl von Datenbytes, die sie zu empfangen bereit ist. Eine sendende Verbindung verringert ihre Anzahl, wenn sie Daten sendet, und darf nie mehr Daten senden, als dem Guthaben entsprechen, über das sie beim Empfänger verfügt. Die empfangende Seite erhöht das Guthaben, wenn sie Pufferplatz freigibt. Dieses Guthabensystem ist vollständig in der Hardware-Struktur implementiert und darf weder den ARM-Prozessor noch die Software betreffen.
  • Paketweiterleitung
  • In einer Ausführungsform kann das Verkehrsnetz gerichtete und Broadcast-Paketweiterleitungs-Schemata sowie Multicast- oder Netzwerk-Defektvermeidungs-Schemata unterstützen.
  • In einem gerichteten Weiterleitungsmodus kann ein Paket, das aus dem Prozessorkomplex oder dem FPGA-Teil eines Datenverarbeitungsknotens stammt, an ein einziges Ziel weitergeleitet werden. Für die Weiterleitung können sowohl Einfach- als auch Mehrfachverbindungen verwendet werden, und Pakete werden mit einer möglichst geringen Anzahl von Zwischenstationen zugestellt. Der Paketweiterleitungs-Mechanismus kann vollständig in der FPGA-Struktur implementiert sein, und die ARM-Prozessoren sollten nur an den Quell- und Zielknoten beteiligt sein.
  • In einer Ausführungsform kann ein Broadcast-Paket vom Quellknoten in alle Richtungen verbreitet (broadcast) und an jeden Knoten im System zugestellt werden. Broadcast-Pakete verwenden im System nur die Einfachverbindungen, um die Weiterleitung zu vereinfachen. In Abhängigkeit davon, welche Verbindung ein Broadcast-Paket empfangen hat, kann der empfangende Knoten entscheiden, ob er a) an alle anderen Verbindungen weiterleitet, b) an eine Teilmenge von Verbindungen weiterleitet oder c) die Weiterleitung einstellt. Durch eine sorgfältige Auswahl der Regeln für diese drei Szenarien kann sichergestellt werden, dass alle Knoten im System genau eine Kopie des Broadcast-Pakets erhalten.
  • Konnektivität und Datenübertragung
  • Es können mehrere virtuelle Kanäle ausgestaltet werden, die auf der oben beschriebenen zugrundeliegenden Weiterleitungslogik aufbauen, um dem Prozessor und der FPGA-Logik verschiedene virtuelle oder logische Schnittstellen zum Verkehrsnetz bereitzustellen.
  • Beispielhafte Konfiguration
  • Unter Bezugnahme auf 8 wird nun ein Ablaufplan eines Verfahrens 800 zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie gemäß einer Ausführungsform dargestellt. Das Verfahren 800 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in 1 bis 7 dargestellten Umgebungen durchgeführt werden. Es versteht sich von selbst, dass das Verfahren 800 mehr oder weniger Operationen als die konkret in 8 beschriebenen umfassen kann, wie ein Fachmann nach dem Lesen der vorliegenden Beschreibungen verstehen dürfte.
  • Jeder der Schritte des Verfahrens 800 kann von jeder geeigneten Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 800 in verschiedenen Ausführungsformen teilweise oder vollständig von einem oder mehreren Servern, Computern oder einer anderen Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, zum Beispiel Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), der/die/das in Hardware und/oder Software implementiert ist (sind) und vorzugsweise mindestens eine Hardware-Komponente aufweist (aufweisen), kann in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 800 durchzuführen. Beispielhafte Prozessoren umfassen, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatter-Anordnung (FPGA) usw., sowie Kombinationen davon oder jede andere geeignete, in der Technik bekannte Datenverarbeitungseinheit.
  • Wie in 8 dargestellt, kann das Verfahren 800 mit der Operation 802 ausgelöst werden, bei der vordefinierte Operationen identifiziert werden, die von einer Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind. In einer Ausführungsform kann jeder der Mehrzahl von Datenverarbeitungsknoten eine programmierbare integrierte Schaltung umfassen (z.B. eine vor Ort programmierbare Gatter-Anordnung (FPGA, field programmable gate array), eine Zentraleinheit (CPU), eine Grafikverarbeitungseinheit (GPU) usw.). In einer anderen Ausführungsform können die Datenverarbeitungsknoten physisch auf einer oder mehreren Hardware-Karten unter Verwendung von Schaltkreisplatinen (PCB, printed circuit board) verschaltet sein.
  • Zusätzlich kann in einer Ausführungsform eine Mehrzahl von Hardware-Karten, die die Datenverarbeitungsknoten enthalten, unter Verwendung einer oder mehrerer Rückwandplatinen miteinander verbunden sein. Zum Beispiel kann jede Rückwandplatine die Datenübertragung zwischen verschiedenen Gruppen von Hardware-Karten ermöglichen. In einer anderen Ausführungsform können die Datenverarbeitungsknoten über eine Rückwandplatine und eine Konnektivitätskarte mit externen Datenquellen Daten austauschen. Zum Beispiel kann eine allgemeine Konnektivitätskarte mit hoher Bandbreite die Datenübertragung zwischen der Mehrzahl von Datenverarbeitungsknoten (über eine Rückwandplatine) und externen Datenquellen wie externen Speichern, Servern usw. (über eine oder mehrere Verbindungen wie Infiniband, Hochgeschwindigkeits-Ethernet usw.) ermöglichen.
  • Ferner kann die 3D-Netztopologie in einer Ausführungsform eine dreidimensionale Gruppierung der Mehrzahl von Datenverarbeitungsknoten umfassen. Zum Beispiel kann die 3D-Netztopologie eine Höhendimension (N), eine Breitendimension (M) und eine Tiefendimension (Z) haben. In einer anderen Ausführungsform können die vordefinierten Operationen alle Verarbeitungsvorgänge umfassen, die von der Mehrzahl der Datenverarbeitungsknoten durchgeführt werden können.
  • Zum Beispiel können die vordefinierten Operationen eine oder mehrere der folgenden Operationen umfassen: Erstellen von Daten, Ändern von Daten, Löschen von Daten, Übertragen von Daten, Kopieren von Daten usw. In einem anderen Beispiel können die vordefinierten Operationen von einer oder mehreren vordefinierten Anwendungen an die Mehrzahl der Datenverarbeitungsknoten gesendet werden. In einem weiteren Beispiel können die vordefinierten Operationen auch in der Implementierung eines neuronalen Netzwerks enthalten sein.
  • In noch einer weiteren Ausführungsform können die vordefinierten Operationen von einer oder mehreren externen Datenquellen (z.B. einem oder mehreren externen Servern usw.) gesendet werden.
  • Außerdem kann das Verfahren 800 mit der Operation 804 fortgesetzt werden, in der eine optimale Eingabe-/Ausgabe-(E/A-)Bandbreite und/oder eine optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermittelt wird, die bei der Durchführung der vordefinierten Operationen zu verwenden sind. In einer Ausführungsform kann die 3D-Netztopologie sechs Seiten aufweisen (z.B. kann es sich bei jeder der sechs Seiten um eine Seite der 3D-Netztopologie handeln). In einer anderen Ausführungsform kann die 3D-Netztopologie vordefinierte Beschränkungen auf der Grundlage einer physischen Konstruktion der 3D-Netztopologie aufweisen.
  • Zum Beispiel darf eine Rückwandplatine, die mit der Mehrzahl von Datenverarbeitungsknoten Daten austauscht, nur mit einer einzigen Seite des 3D-Netzes Daten austauschen (z.B. E/A-Operationen durchführen). In einem anderen Beispiel kann die Rückwandplatine eine Datenübertragung mit externen Datenquellen ermöglichen. So kann die Datenübertragung zum Beispiel den Empfang von vordefinierten Operationen von den externen Datenquellen sowie die Ausgabe der aus diesen vordefinierten Operationen resultierenden Daten an die externen Datenquellen umfassen. In einem anderen Beispiel kann jeder der Mehrzahl von Datenverarbeitungsknoten nur mit direkten Nachbarn des Knotens innerhalb der 3D-Netztopologie Daten austauschen.
  • Darüber hinaus kann in einer Ausführungsform die E/A-Bandbreite eine maximale Bandbreite zu und von der Mehrzahl von Datenverarbeitungsknoten über eine verfügbare Rückwandplatine anzeigen. In einer anderen Ausführungsform kann die Knoten-zu-Knoten-Latenz eine Worst-Case-Latenz zwischen Datenverarbeitungsknoten anzeigen, die innerhalb der 3D-Netztopologie am weitesten voneinander entfernt sind. In noch einer anderen Ausführungsform können die optimale Eingabe-/Ausgabe-(E/A-)Bandbreite und die optimale Knoten-zu-Knoten-Latenz vordefinierte Bandbreiten- und Latenzzahlen umfassen, die für die vordefinierten Operationen ermittelt wurden und die Leistung einer Ausführung der vordefinierten Operationen durch die Mehrzahl von Datenverarbeitungsknoten optimieren.
  • Des Weiteren kann das Verfahren 800 mit der Operation 806 fortgesetzt werden, bei der die Dimensionen der 3D-Netztopologie angepasst werden, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein Netz der Topologie N' × M' × Z' umfasst, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden, und wobei N × M × Z gleich N' × M' × Z' ist. In einer Ausführungsform können angesichts der vordefinierten Einschränkungen der 3D-Netztopologie Anpassungen an den Dimensionen der 3D-Netztopologie vorgenommen werden, die eine E/A-Bandbreite und eine Knoten-zu-Knoten-Latenz für die Mehrzahl der Datenverarbeitungsknoten verändern.
  • In einer Ausführungsform kann darüber hinaus eine aktuelle E/A-Bandbreite der Mehrzahl der Datenverarbeitungsknoten in einer ursprünglichen 3D-Netztopologie mit der optimalen E/A-Bandbreite verglichen werden. In einer anderen Ausführungsform kann als Reaktion auf ein Feststellen, dass die optimale E/A-Bandbreite größer ist als die aktuelle E/A-Bandbreite, eine Seite der 3D-Netztopologie, die E/A durchführt, vergrößert werden, um eine E/A-Bandbreite der Mehrzahl der Datenverarbeitungsknoten zu erhöhen.
  • Zum Beispiel kann die Größe der Seite der 3D-Netztopologie vergrößert werden, indem die vordefinierten Operationen von einer externen Datenquelle über eine Rückwandplatine an eine größere Anzahl von Datenverarbeitungsknoten innerhalb der 3D-Netztopologie geleitet werden. In einem anderen Beispiel kann jeder Datenverarbeitungsknoten innerhalb der 3D-Netztopologie über eine oder mehrere E/A-Verbindungen verfügen. In noch einem anderen Beispiel kann durch das Senden der vordefinierten Operationen von der externen Datenquelle an eine größere Anzahl von Datenverarbeitungsknoten über die Rückwandplatine die Anzahl der Knoten zunehmen, die an der E/A mit der externen Datenquelle beteiligt sind, wodurch sich eine Größe der einzelnen Seite des 3D-Netzes, die über die Rückwandplatine Daten austauscht, erhöhen kann. In noch einem anderen Beispiel kann ein Vergrößern der Seite der 3D-Netztopologie, die E/A durchführt, auch den Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie vergrößern, was die Knoten-zu-Knoten-Latenz erhöhen kann.
  • In einer Ausführungsform kann als Reaktion auf ein Feststellen, dass die optimale E/A-Bandbreite geringer ist als die aktuelle E/A-Bandbreite, die aktuelle 3D-Netztopologie auch unverändert bleiben.
  • Darüber hinaus kann in einer Ausführungsform eine aktuelle Knoten-zu-Knoten-Latenz der Mehrzahl der Datenverarbeitungsknoten in der ursprünglichen 3D-Netztopologie mit der optimalen Knoten-zu-Knoten-Latenz verglichen werden. In einer anderen Ausführungsform kann als Reaktion auf ein Feststellen, dass die optimale Knoten-zu-Knoten-Latenz geringer ist als die aktuelle Knoten-zu-Knoten-Latenz, der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie verringert werden, um die Knoten-zu-Knoten-Latenz innerhalb der Mehrzahl der Datenverarbeitungsknoten zu verringern.
  • Zum Beispiel kann der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie durch Anpassen einer Größe der einzelnen Seiten innerhalb der 3D-Netztopologie angepasst werden. In einem anderen Beispiel wird der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie auf ein Minimum reduziert, wenn alle Seiten der 3D-Netztopologie gleich groß sind. In noch einem anderen Beispiel kann die Größe der Seite der 3D-Netztopologie, die E/A durchführt, vergrößert oder verkleinert werden (z.B. unter Verwendung der oben genannten Techniken), um eine Größe der Seite an die Größen der anderen Seiten der 3D-Netztopologie anzunähern, wodurch der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie auf ein Minimum reduziert wird. In noch einem anderen Beispiel kann ein Verringern der Größe der Seite der 3D-Netztopologie, die E/A durchführt, die E/A-Bandbreite der Mehrzahl der Datenverarbeitungsknoten verringern.
  • Ferner kann in einer Ausführungsform als Reaktion auf ein Feststellen, dass die optimale Knoten-zu-Knoten-Latenz größer ist als die aktuelle Knoten-zu-Knoten-Latenz, die aktuelle 3D-Netztopologie unverändert bleiben.
  • Weiterhin kann das Verfahren 800 mit der Operation 808 fortgesetzt werden, bei der die vordefinierten Operationen ausgeführt werden, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist. In einer Ausführungsform können die vordefinierten Operationen als Eingabe an die Mehrzahl von Datenverarbeitungsknoten gesendet werden, die in der angepassten 3D-Netztopologie angeordnet sind. In einer anderen Ausführungsform können die vordefinierten Operationen mittels einer Konnektivitätskarte, einer oder mehrerer Rückwandplatinen usw. an die Datenverarbeitungsknoten gesendet werden.
  • Zum Beispiel können die vordefinierten Operationen von einer externen Datenquelle an eine Konnektivitätskarte gesendet werden, die ihrerseits die Operationen über eine Rückwandplatine an die Datenverarbeitungsknoten sendet. In einem anderen Beispiel kann jede von der Mehrzahl der Datenverarbeitungsknoten erzeugte Ausgabe über die Rückwandplatine und die Konnektivitätskarte an die externe Datenquelle (oder eine andere externe Datenquelle) zurückgeschickt werden.
  • Auf diese Weise kann die Mehrzahl der Datenverarbeitungsknoten dynamisch in einer optimierten Weise angeordnet werden, wenn die vordefinierten Operationen durchgeführt werden. Diese optimierte Anordnung kann ein Durchführen der vordefinierten Operationen durch die Mehrzahl von Datenverarbeitungsknoten verbessern, was wiederum einen Verarbeitungs- und/oder Leistungsbedarf der Mehrzahl von Datenverarbeitungsknoten verringern kann. Dadurch kann eine Leistung der Mehrzahl von Datenverarbeitungsknoten verbessert werden.
  • Unter Bezugnahme auf 9 wird nun ein Ablaufplan eines Verfahrens 900 zum Umkonfigurieren einer Datenverarbeitungseinheit dargestellt, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N x M x Z angeordnet sind, gemäß einer Ausführungsform. In einer Ausführungsform umfassen die Knoten Datenverarbeitungs-Hardware, Z < N und Z < M, und N und M sind mindestens gleich 4. Das Verfahren 900 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in 1 bis 7 dargestellten Umgebungen durchgeführt werden. Es versteht sich von selbst, dass das Verfahren 900 mehr oder weniger Operationen als die konkret in 9 beschriebenen Operationen umfassen kann, wie ein Fachmann nach dem Lesen der vorliegenden Beschreibungen verstehen dürfte.
  • Jeder der Schritte des Verfahrens 900 kann von jeder geeigneten Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 900 in verschiedenen Ausführungsformen teilweise oder vollständig von einem oder mehreren Servern, Computern oder einer anderen Einheit durchgeführt werden, die einen oder mehrere Prozessoren enthält. Der Prozessor, zum Beispiel Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), der/die/das in Hardware und/oder Software implementiert ist (sind) und vorzugsweise mindestens eine Hardware-Komponente aufweist (aufweisen), kann in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 900 durchzuführen. Beispielhafte Prozessoren umfassen, ohne auf diese beschränkt zu sein, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine vor Ort programmierbare Gatter-Anordnung (FPGA) usw., sowie Kombinationen davon oder jede andere geeignete, in der Technik bekannte Datenverarbeitungseinheit.
  • Wie in 9 dargestellt, kann das Verfahren 900 mit der Operation 902 ausgelöst werden, bei der die Einheit zum Durchführen von Berechnungen verwendet wird, die durch (i) eine ursprüngliche System-E/A-Bandbreite und (ii) eine ursprüngliche Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind. Darüber hinaus kann das Verfahren 900 mit der Operation 904 fortgesetzt werden, bei der die Einheit in ein Netz mit der Topologie N' × M' × Z' umkonfiguriert wird, wobei sich mindestens zwei der Werte N, M und Z von ihren entsprechenden Werten N', M' und Z' unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist.
  • Ferner kann das Verfahren 900 mit der Operation 906 fortgesetzt werden, bei der die Einheit zum Durchführen von Berechnungen verwendet wird, die durch (i) eine modifizierte System-E/A-Bandbreite und (ii) eine modifizierte Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind. In einer Ausführungsform ist die modifizierte E/A-Bandbreite größer als die ursprüngliche E/A-Bandbreite. In einer anderen Ausführungsform ist die modifizierte Knoten-zu-Knoten-Latenz des Systems geringer als die ursprüngliche Knoten-zu-Knoten-Latenz des Systems.
  • In einer Ausführungsform umfasst ein System eine Sammlung von Datenverarbeitungsknoten, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Knoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist und wobei N und M mindestens gleich 4 sind. Das System umfasst ferner eine Sammlung von E/A-Verbindungen, die mit einer der Seiten des Netzes verbunden sind, wobei die Seite N × M Knoten aufweist, wobei jede der Verbindungen mit einem bestimmten Knoten von dieser Seite verbunden ist. Des Weiteren umfasst das System E/A-Karten, die an die E/A-Verbindungen angeschlossen sind. In einer Ausführungsform wird die Datenverarbeitungs-Hardware aus der Gruppe ausgewählt, die aus CPUs, GPUs, FPGAs und Speicherelementen besteht.
  • Darüber hinaus umfasst ein System in einer Ausführungsform eine Sammlung von Datenverarbeitungsknoten, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Knoten Datenverarbeitungs-Hardware umfassen, wobei (i) Z ≤ N/2 und Z ≤ M/2; und (ii) N und M mindestens gleich 4 sind. Zu Beispielen für diese Topologie gehören eine 12 × 12 × 6 Netztopologie und eine 16 × 16 × 3 Netztopologie. Diese Konfiguration kann eine E/A-Leistung des Systems verbessern, indem sie die E/A-Leistung einer Seite der 3D-Netztopologie maximiert.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailstufe der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Flussdiagramm-Darstellungen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Flussdiagramm-Darstellungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Flussdiagramms und/oder des Blockschaubilds festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit in einem Schritt gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine in den Prozessor integrierte und/oder von diesem ausführbare Logik umfassen, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hier genannten Verfahrensschritte durchführt. Der Prozessor kann jede hier beschriebene Konfiguration haben, zum Beispiel einen diskreten Prozessor oder eine Verarbeitungsschaltung, die viele Komponenten wie Verarbeitungs-Hardware, Speicher, E/A-Schnittstellen usw. umfasst. Mit „integriert in“ ist gemeint, dass der Prozessor über eine als Hardware-Logik eingebettete Logik verfügt, zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC), eine FPGA usw. Mit „vom Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie Firmware, ein Teil eines Betriebssystems, ein Teil eines Anwendungsprogramms usw. oder um eine Kombination aus Hardware- und Software-Logik handelt, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass sie den Prozessor veranlasst, bei der Ausführung durch den Prozessor eine bestimmte Funktionalität auszuführen. Die Softwarelogik kann in einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen Speichertyps gespeichert werden, wie er in der Technik bekannt ist. Es kann jeder in der Technik bekannte Prozessor verwendet werden, zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, eine FPGA, eine Zentraleinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es wird offensichtlich sein, dass die verschiedenen Funktionen der vorgenannten Systeme und/oder Methodiken in beliebiger Weise kombiniert werden können, so dass sich aus den vorliegenden Beschreibungen eine Mehrzahl von Kombinationen ergibt.
  • Es ist weiter zu berücksichtigen, dass Ausführungsformen der vorliegenden Erfindung in Form eines Service bereitgestellt werden können, der im Auftrag eines Kunden eingesetzt wird, um einen bedarfsgesteuerten Service anzubieten.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zur Veranschaulichung vorgelegt, sollen aber weder erschöpfend noch auf die offenbarten Ausführungsformen beschränkt sein. Für den Fachmann sind viele Modifikationen und Variationen erkennbar, ohne vom Umfang und Sinngehalt der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es dem Fachmann zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.

Claims (24)

  1. Auf einem Computer implementiertes Verfahren, das aufweist: Identifizieren vordefinierter Operationen, die von einer Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in einem dreidimensionalen (3D) Netz der Topologie N × M × Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-)Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; Anpassen der Dimensionen der 3D-Netztopologie, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein 3D-Netz der Topologie N' × M' × Z' aufweist, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden, und wobei N × M × Z gleich N' × M' × Z' ist; und Ausführen der vordefinierten Operationen, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  2. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei jeder der Mehrzahl von Datenverarbeitungsknoten ausgewählt ist aus der Gruppe bestehend aus: vor Ort programmierbare Gatter-Anordnung (FPGA), Zentraleinheit (CPU), und Grafikverarbeitungseinheit (GPU).
  3. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei die Mehrzahl von Datenverarbeitungsknoten physisch auf einer Mehrzahl von Hardware-Karten unter Verwendung von Schaltkreisplatinen (PCB) verschaltet sind und die Mehrzahl von Hardware-Karten unter Verwendung einer oder mehrerer Rückwandplatinen miteinander verbunden sind.
  4. Auf einem Computer implementiertes Verfahren nach Anspruch 1, das aufweist: als Reaktion auf (i) ein Feststellen, dass die optimale E/A-Bandbreite größer ist als eine aktuelle E/A-Bandbreite, (ii) Erhöhen der Größe einer Seite der 3D-Netztopologie, die E/A durchführt, wodurch die E/A-Bandbreite der Mehrzahl von Datenverarbeitungsknoten erhöht wird.
  5. Auf einem Computer implementiertes Verfahren nach Anspruch 1, das aufweist: als Reaktion auf (i) ein Feststellen, dass die optimale Knoten-zu-Knoten-Latenz geringer ist als eine aktuelle Knoten-zu-Knoten-Latenz, (ii) Verringern des Abstands zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie, um die Knoten-zu-Knoten-Latenz innerhalb der Mehrzahl der Datenverarbeitungsknoten zu verringern, wobei der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie durch Anpassen einer Größe jeder Seite innerhalb der 3D-Netztopologie angepasst wird, wodurch die vordefinierten Operationen von einer externen Datenquelle über eine Rückwandplatine an eine erhöhte oder verringerte Anzahl von Datenverarbeitungsknoten innerhalb der 3D-Netztopologie geleitet werden.
  6. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei die vordefinierten Operationen als Eingabe an die Mehrzahl von Datenverarbeitungsknoten gesendet werden, die in der angepassten 3D-Netztopologie angeordnet sind.
  7. Auf einem Computer implementiertes Verfahren nach Anspruch 1, wobei die vordefinierten Operationen unter Verwendung einer Konnektivitätskarte und einer oder mehrerer Rückwandplatinen an die Mehrzahl von Datenverarbeitungsknoten gesendet werden.
  8. Auf einem Computer implementiertes Verfahren nach Anspruch 1, das ein Senden der von der Mehrzahl der Datenverarbeitungsknoten erzeugten Ausgabe an eine externe Datenquelle über eine Rückwandplatine und eine Konnektivitätskarte aufweist.
  9. Computerprogrammprodukt zum Konfigurieren von Datenverarbeitungsknoten in einer dreidimensionalen (3D) Netztopologie, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin verkörperten Programmanweisungen aufweist, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal an sich ist, wobei die Programmanweisungen durch eine Verarbeitungseinheit ausführbar sind, um die Verarbeitungseinheit zu veranlassen, ein Verfahren durchzuführen, das umfasst: Identifizieren vordefinierter Operationen durch die Verarbeitungseinheit, die von der Verarbeitungseinheit durchzuführen sind, die anfangs eine Mehrzahl von Datenverarbeitungsknoten aufweist, die in dem dreidimensionalen (3D) Netz der Topologie N x M x Z angeordnet sind, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; Ermitteln einer optimalen Eingabe-/Ausgabe-(E/A-)Bandbreite und/oder einer optimalen Knoten-zu-Knoten-Latenz durch die Verarbeitungseinheit für die Mehrzahl von Datenverarbeitungsknoten, die während der Durchführung der vordefinierten Operationen zu verwenden sind; Anpassen der Dimensionen der 3D-Netztopologie durch die Verarbeitungseinheit, um eine angepasste 3D-Netztopologie zu erhalten, die die optimale E/A-Bandbreite und die optimale Knoten-zu-Knoten-Latenz für die Mehrzahl von Datenverarbeitungsknoten ermöglicht, wobei das Anpassen ein Umkonfigurieren der Mehrzahl von Datenverarbeitungsknoten in ein Netz der Topologie N' × M' × Z' durch die Verarbeitungseinheit aufweist, wobei sich mindestens zwei der N-, M- und Z-Werte von ihren entsprechenden N'-, M'- und Z'-Werten unterscheiden, und wobei N × M × Z gleich N' × M' × Z' ist; und Ausführen der vordefinierten Operationen durch die Verarbeitungseinheit, wobei die Mehrzahl von Datenverarbeitungsknoten in dem angepassten 3D-Netz der Topologie N' × M' × Z' angeordnet ist.
  10. Computerprogrammprodukt nach Anspruch 9, wobei jeder der Mehrzahl von Datenverarbeitungsknoten ausgewählt ist aus der Gruppe bestehend aus: vor Ort programmierbare Gatter-Anordnung (FPGA), Zentraleinheit (CPU), und Grafikverarbeitungseinheit (GPU).
  11. Computerprogrammprodukt nach Anspruch 9, wobei die Mehrzahl von Datenverarbeitungsknoten physisch auf einer Mehrzahl von Hardware-Karten unter Verwendung von Schaltkreisplatinen (PCB) verdrahtet sind und die Mehrzahl von Hardware-Karten unter Verwendung einer oder mehrerer Rückwandplatinen miteinander verbunden sind.
  12. Computerprogrammprodukt nach Anspruch 9, das aufweist: als Reaktion auf (i) ein Feststellen, dass die optimale E/A-Bandbreite größer ist als eine aktuelle E/A-Bandbreite, (ii) Erhöhen der Größe einer Fläche der 3D-Netztopologie, die E/A durchführt, wodurch die E/A-Bandbreite der Mehrzahl von Datenverarbeitungsknoten erhöht wird.
  13. Computerprogrammprodukt nach Anspruch 9, das aufweist: als Reaktion auf (i) ein Feststellen, dass die optimale Knoten-zu-Knoten-Latenz geringer ist als eine aktuelle Knoten-zu-Knoten-Latenz, (ii) Verringern des Abstands zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie, um die Knoten-zu-Knoten-Latenz innerhalb der Mehrzahl der Datenverarbeitungsknoten zu verringern, wobei der Abstand zwischen den am weitesten voneinander entfernten Datenverarbeitungsknoten innerhalb der 3D-Netztopologie durch Anpassen einer Größe jeder Seite innerhalb der 3D-Netztopologie angepasst wird, wodurch die vordefinierten Operationen von einer externen Datenquelle über eine Rückwandplatine an eine erhöhte oder verringerte Anzahl von Datenverarbeitungsknoten innerhalb der 3D-Netztopologie geleitet werden.
  14. Computerprogrammprodukt nach Anspruch 9, wobei die vordefinierten Operationen als Eingabe an die Mehrzahl von Datenverarbeitungsknoten gesendet werden, die in der angepassten 3D-Netztopologie angeordnet sind.
  15. Computerprogrammprodukt nach Anspruch 9, wobei die vordefinierten Operationen unter Verwendung einer Konnektivitätskarte und einer oder mehrerer Rückwandplatinen an die Mehrzahl von Datenverarbeitungsknoten gesendet werden.
  16. Computerprogrammprodukt nach Anspruch 9, das ein Senden der von der Mehrzahl der Datenverarbeitungsknoten erzeugten Ausgabe an eine externe Datenquelle über eine Rückwandplatine und eine Konnektivitätskarte aufweist.
  17. System, das aufweist: Sammlung von Datenverarbeitungsknoten, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Knoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind; Sammlung von E/A-Verbindungen, die mit einer der Seiten des Netzes verbunden sind, wobei die Seite N x M Knoten aufweist, wobei jede der E/A-Verbindungen mit einem bestimmten Knoten von dieser Seite verbunden ist; und E/A-Karten, die an die E/A-Verbindungen angeschlossen sind.
  18. System nach Anspruch 17, wobei die Datenverarbeitungs-Hardware aus der Gruppe ausgewählt wird, die aus Zentraleinheiten (CPUs), Grafikverarbeitungseinheiten (GPUs), vor Ort programmierbaren Gatter-Anordnungen (FPGAs) und Speicherelementen besteht.
  19. System nach Anspruch 17, wobei Z ≤ N/2 und Z ≤ M/2.
  20. Auf einem Computer implementiertes Verfahren zur Verwendung mit einer umkonfigurierbaren Datenverarbeitungseinheit, die eine Sammlung von Datenverarbeitungsknoten aufweist, die in einem Netz der Topologie N × M × Z angeordnet sind, wobei die Datenverarbeitungsknoten Datenverarbeitungs-Hardware umfassen, wobei Z < N und Z < M ist, und wobei N und M mindestens gleich 4 sind, wobei das Verfahren aufweist: Verwenden der Datenverarbeitungseinheit, um Berechnungen durchzuführen, die durch (i) eine ursprüngliche System-E/A-Bandbreite und (ii) eine ursprüngliche Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind; Umkonfigurieren der Einheit in ein Netz mit der Topologie N' × M' × Z', wobei sich mindestens zwei der Werte N, M und Z von ihren entsprechenden Werten N', M' und Z' unterscheiden und wobei N × M × Z gleich N' × M' × Z' ist; und Verwenden der Einheit zum Durchführen von Berechnungen, die durch (i) eine modifizierte System-E/A-Bandbreite und (ii) eine modifizierte Knoten-zu-Knoten-Latenz des Systems gekennzeichnet sind.
  21. Auf einem Computer implementiertes Verfahren nach Anspruch 20, wobei die modifizierte System-E/A-Bandbreite größer ist als die ursprüngliche System-E/A-Bandbreite.
  22. Auf einem Computer implementiertes Verfahren nach Anspruch 20, wobei die modifizierte Knoten-zu-Knoten-Latenz des Systems geringer ist als die ursprüngliche Knoten-zu-Knoten-Latenz des Systems.
  23. Auf einem Computer implementiertes Verfahren nach Anspruch 20, wobei die Datenverarbeitungs-Hardware aus der Gruppe ausgewählt wird, die aus CPUs, GPUs, FPGAs und Speicherelementen besteht.
  24. Auf einem Computer implementiertes Verfahren nach Anspruch 20, wobei Z ≤ N/2 und Z ≤ M/2.
DE112021001470.6T 2020-03-06 2021-01-25 Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie Pending DE112021001470T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/812,053 US11184245B2 (en) 2020-03-06 2020-03-06 Configuring computing nodes in a three-dimensional mesh topology
US16/812,053 2020-03-06
PCT/IB2021/050535 WO2021176279A1 (en) 2020-03-06 2021-01-25 Configuring computing nodes in a three-dimensional mesh topology

Publications (1)

Publication Number Publication Date
DE112021001470T5 true DE112021001470T5 (de) 2023-01-05

Family

ID=77556274

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001470.6T Pending DE112021001470T5 (de) 2020-03-06 2021-01-25 Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie

Country Status (6)

Country Link
US (2) US11184245B2 (de)
JP (1) JP2023517172A (de)
CN (1) CN115244900B (de)
DE (1) DE112021001470T5 (de)
GB (1) GB2608556A (de)
WO (1) WO2021176279A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology
CN115514642B (zh) * 2022-09-22 2023-11-17 湖南泛联新安信息科技有限公司 一种基于分割通信需求的多fpga平台网络拓扑优化方法
CN115797572B (zh) * 2023-01-20 2023-04-21 中国空气动力研究与发展中心计算空气动力研究所 一种空间网格生成方法、装置、设备及介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2227341A (en) 1989-01-18 1990-07-25 Intel Corp Message routing in a multiprocessor computer system
US6647428B1 (en) 2000-05-05 2003-11-11 Luminous Networks, Inc. Architecture for transport of multiple services in connectionless packet-based communication networks
CA2360963A1 (en) 2000-11-03 2002-05-03 Telecommunications Research Laboratories Topological design of survivable mesh-based transport networks
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7697443B2 (en) * 2006-04-13 2010-04-13 International Business Machines Corporation Locating hardware faults in a parallel computer
US20080101395A1 (en) 2006-10-30 2008-05-01 Raytheon Company System and Method for Networking Computer Clusters
US8160061B2 (en) 2006-12-29 2012-04-17 Raytheon Company Redundant network shared switch
US9071246B2 (en) 2007-09-14 2015-06-30 Agate Logic, Inc. Memory controller for heterogeneous configurable integrated circuits
US8406154B2 (en) 2008-04-10 2013-03-26 Alcatel Lucent Method and apparatus for topology aggregation and routing controller
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US8774632B2 (en) 2010-04-27 2014-07-08 Ciena Corporation Reconfigurable optical add drop multiplexer node automated topology discovery systems and methods
IT1403031B1 (it) 2010-11-19 2013-09-27 Eurotech S P A Apparecchiatura di rete unificata per sistemi di supercalcolo scalabili
US8830873B2 (en) 2011-05-08 2014-09-09 Infinetics Technologies, Inc. Flexible radix switch
EP2568673A1 (de) 2011-08-30 2013-03-13 ABB Technology AG Parallel Redundancy Protocol, PRP, Paket Vervielfältigung über VLANs basierend auf Spanning Tree-Instanzen
US8891360B2 (en) 2012-05-04 2014-11-18 Infinera Corporation Optimal segment identification for shared mesh protection
EP2688342B1 (de) 2012-07-19 2018-02-21 TerraNet AB Soft Topology Rekonfiguration mit verbesserter Robustheit in einem Maschennetzwerk
WO2014081457A1 (en) 2012-11-21 2014-05-30 Coherent Logix Incorporated Processing system with interspersed processors dma-fifo
EP3014818A4 (de) 2013-06-28 2017-03-15 Intel Corporation Verfahren, vorrichtung und system für ein quellensynchrones leitungsvermitteltes netzwerk auf einem chip (noc)
US20150301964A1 (en) 2014-02-18 2015-10-22 Alistair Mark Brinicombe Methods and systems of multi-memory, control and data plane architecture
US20150261724A1 (en) 2014-03-14 2015-09-17 Emilio Billi Massive parallel exascale storage system architecture
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
JP6446989B2 (ja) * 2014-10-16 2019-01-09 富士通株式会社 計算機システム,処理方法及びジョブ処理プログラム
WO2017009859A1 (en) 2015-07-10 2017-01-19 Prasad Lalathuputhanpura Kochukunju Amicro data center (mdc) in a box system and method thereof
EP3400688B1 (de) 2016-01-04 2020-05-20 Gray Research LLC Massiv-paralleler computer, beschleunigte computercluster und zweidimensionaler router und verbindungsnetzwerk für feldprogrammierbare gate-arrays und anwendungen
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
WO2018151640A1 (en) 2017-02-17 2018-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Network node and method therein for transmitting a message in a mesh network
US10496561B2 (en) 2017-04-18 2019-12-03 Advanced Micro Devices, Inc. Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies
US10674558B2 (en) 2017-05-24 2020-06-02 Vivint Wireless, Inc. Mesh topology radio
US10394747B1 (en) 2017-05-31 2019-08-27 Mellanox Technologies Ltd. Implementing hierarchical PCI express switch topology over coherent mesh interconnect
WO2019014265A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
CN107959643B (zh) * 2017-12-29 2021-05-14 曙光信息产业(北京)有限公司 一种通过交换芯片构建的交换系统及其路由算法
US10477288B2 (en) 2018-02-05 2019-11-12 David I-Keong Wong Data center interconnect as a switch
US20190236038A1 (en) 2018-12-20 2019-08-01 Swadesh Choudhary Buffered interconnect for highly scalable on-die fabric
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology

Also Published As

Publication number Publication date
US20210281488A1 (en) 2021-09-09
WO2021176279A1 (en) 2021-09-10
CN115244900A (zh) 2022-10-25
CN115244900B (zh) 2024-02-09
US11646944B2 (en) 2023-05-09
US20220006702A1 (en) 2022-01-06
GB2608556A (en) 2023-01-04
JP2023517172A (ja) 2023-04-24
US11184245B2 (en) 2021-11-23
GB202214679D0 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
DE102018006890A1 (de) Technologien zur Verarbeitung von Netzpaketen durch einen intelligenten Netzwerk-Schnittstellenkontroller
DE112017003699T5 (de) Speicher-Sled für Daten-Center-bezogene Abwendungen
DE112020001833T5 (de) Netzwerkschnittstelle für Datentransport in heterogenen Rechenumgebungen
DE102020122174A1 (de) Berechne-in/nahe speicher- (cim) schaltungsarchitektur für vereinheitlichte matrix-matrix- und matrix-vektor-berechnungen
DE102018212479A1 (de) Technologien zum Verwalten einer flexiblen Host-Schnittstelle eines Netzwerkschnittstellen-Controllers
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE102010044529B4 (de) Autonomes speicher-sub-system mit hardwarebeschleuniger
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE102010044531B4 (de) Autonome Speicherarchitektur
DE102004053801A1 (de) Dynamische Rekonfiguration von PCI-Expresslinks
DE112007000443T5 (de) Gemeinsame analoge Schnittstelle für mehrere Prozessorkerne
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
DE102020110582A1 (de) TECHNOLOGIEN ZUR AUTOMATISCHEN ARBEITSLASTERKENNUNG UND CACHE-QoS-RICHTLINIENANWENDUNG
DE112017001118T5 (de) Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums
DE112020004067T5 (de) Hybride daten-modell-parallelität für effizientes deep learning
DE102022205478A1 (de) Busübergreifende speicherabbildung
DE112007003722B4 (de) Modifizieren von Systemroutinginformationen in linkbasierenden Systemen
DE102020132767A1 (de) Verwaltung der Dienstgüte (QoS) eines Speichersystems
DE112020000498T5 (de) Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool
DE112013007700T5 (de) Eingabe-Ausgabe-Datenausrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence