DE102023127355A1 - Rendezvous zur ermöglichung von überlastungsmanagement - Google Patents

Rendezvous zur ermöglichung von überlastungsmanagement Download PDF

Info

Publication number
DE102023127355A1
DE102023127355A1 DE102023127355.8A DE102023127355A DE102023127355A1 DE 102023127355 A1 DE102023127355 A1 DE 102023127355A1 DE 102023127355 A DE102023127355 A DE 102023127355A DE 102023127355 A1 DE102023127355 A1 DE 102023127355A1
Authority
DE
Germany
Prior art keywords
data
nic
computer system
request
network
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
DE102023127355.8A
Other languages
English (en)
Inventor
Keith D. Underwood
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102023127355A1 publication Critical patent/DE102023127355A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Es wird ein Netzwerkschnittstellen-Controller (NIC) bereitgestellt, der das Incast-Management in einem Computersystem erleichtert. Während des Betriebs kann der NIC über ein Netzwerk eine Anforderung zum Senden von Daten von einem entfernten Computersystem empfangen. Der NIC kann bestimmen, dass die Anforderung zu einer Mehrzahl von Anforderungen aus einer Mehrzahl von entfernten Computersystemen gehört, die über das Netzwerk zugänglich sind. Auf Basis eines Deskriptors in der Anforderung kann der NIC einen Speicherort der Daten im entfernten Computersystem bestimmen. Der NIC kann dann einen Überlastungsgrad bestimmen, der mit der Mehrzahl von Anforderungen an das Computersystem verbunden ist. Der NIC kann einen Datenabruf als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl der Anforderungen planen. Der NIC kann dann die Daten aus dem Speicherort auf Basis eines Fernzugriffs abrufen.

Description

  • VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht den Nutzen der vorläufigen US-Anmeldung Nr. 63/379,079 , Attorney Docket Number P170847USPRV, mit dem Titel „Systems and Methods for Implementing Congestion Management and Encryption“ (Systeme und Verfahren zur Implementierung von Staumanagement und Verschlüsselung) der Erfinder Keith D. Underwood und Duncan Roweth, eingereicht am 11. Oktober 2022.
  • HINTERGRUND
  • High-Performance Computing (HPC) kann häufig effiziente Berechnungen auf den Knoten, auf denen eine Anwendung läuft, erleichtern. HPC kann die Hochgeschwindigkeitsdatenübertragung zwischen Sender- und Empfängervorrichtungen erleichtern.
  • KURZBESCHREIBUNG DER ZAHLEN
    • 1A zeigt ein Beispiel für ein empfängergesteuertes Incast-Management zum Datenabruf gemäß einem Aspekt der vorliegenden Anmeldung.
    • 1 B zeigt ein Beispiel für einen ungeordneten Datenabruf gemäß einem Aspekt der vorliegenden Anmeldung.
    • 2 zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses eines Netzwerkschnittstellen-Controllers (NIC) eines Computersystems darstellt, der Rendezvous verwendet, um ein Überlastungsmanagement gemäß einem Aspekt der vorliegenden Anmeldung zu ermöglichen.
    • 3 zeigt ein Beispiel für eine Kommunikation, die ein empfängergesteuertes Incast-Management gemäß einem Aspekt der vorliegenden Anmeldung ermöglicht.
    • 4A zeigt ein Flussdiagramm, das ein Beispiel für einen Prozess einer Empfängervorrichtung darstellt, die den Datenabruf als Reaktion auf eine Übertragungsanforderung plant, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung.
    • 4B zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, bei dem eine Empfängervorrichtung ein Datenstück von einer Sendervorrichtung zu einem geplanten Zeitpunkt abruft, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung.
    • 5 zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, bei dem eine Sendervorrichtung eine Übertragungsanforderung an eine Empfängervorrichtung sendet, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung.
    • 6 zeigt ein Beispiel für ein Computersystem, das ein empfängergesteuertes Incast-Management unter Verwendung einer Datenabfrage gemäß einem Aspekt der vorliegenden Anmeldung ermöglicht.
    • 7 zeigt ein Beispiel für eine nicht transitorische, computerlesbare Speichervorrichtung, die ein empfängergesteuertes Incast-Management unter Verwendung von Datenabruf erleichtert, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung.
  • In den Abbildungen beziehen sich gleiche Ziffern auf die gleichen Elemente der Abbildung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Da Anwendungen immer stärker verteilt werden, kann HPC effiziente Berechnungen auf den Knoten, auf denen eine Anwendung läuft, erleichtern. Eine HPC-Umgebung kann Rechenknoten, Speicherknoten und Hochleistungs-Switches umfassen, die die Knoten miteinander verbinden. In der Regel können die Rechenknoten zu einem Cluster zusammengeschlossen werden. Der Cluster kann über ein Netzwerk mit den Speicherknoten verbunden sein. Auf den Rechenknoten können eine oder mehrere Anwendungen parallel im Cluster ausgeführt werden. Die Speicherknoten können die Ergebnisse der auf den Rechenknoten durchgeführten Berechnungen aufzeichnen. Daher können die Rechen- und Speicherknoten in Verbindung miteinander arbeiten, um Hochleistungsrechnen zu ermöglichen.
  • Um das erwartete Leistungsniveau zu gewährleisten, muss der jeweilige Knoten mit der Betriebsrate der anderen Knoten arbeiten. So muss beispielsweise ein Speicherknoten einen Teil der Daten von einem Rechenknoten empfangen, sobald der Rechenknoten die Daten erzeugt. In diesem Fall können die Speicher- und Rechenknoten als Empfänger bzw. Sender fungieren. Wenn andererseits der Rechenknoten ein Datenstück von einem Speicherknoten erhält, können der Speicher- und der Rechenknoten als Sender bzw. Empfänger fungieren. Außerdem müssen die Switches des Netzwerks die Daten mit hoher Geschwindigkeit übertragen, um eine Datenübertragung mit geringer Latenz zu gewährleisten. Wenn viele Sendervorrichtungen versuchen, Daten an eine Empfängervorrichtung zu senden, kommt es zu einer Überlastung des Netzwerks, was zu einer starken Überlastung der Empfängervorrichtung führt. Daher können in einem Hochleistungsnetzwerk, wie z.B. einem Rechenzentrumsnetzwerkwerk, Mechanismen erforderlich sein, die eine Überlastung während des Incast im Netzwerk abmildern, um eine Hochgeschwindigkeitsdatenübertragung zu gewährleisten.
  • Die hierin beschriebenen Aspekte befassen sich mit dem Problem der effizienten Datenübertragung in einem Netzwerk während eines Incast an einer Empfängervorrichtung, indem (i) ein Deskriptor eines Datenstücks aus einer von einer Sendervorrichtung empfangenen Übertragungsanforderung erhalten wird; (ii) ein entsprechender Dateiabruf auf Basis eines Überlastungsgrads an der Empfängervorrichtung geplant wird; und (iii) die Daten von einem im Deskriptor angegebenen Ort zum geplanten Zeitpunkt fernabgerufen werden. Da die Empfängervorrichtung alle Übertragungsanforderungen von einer Mehrzahl von Sendervorrichtungen kennt, kann die Empfängervorrichtung effizient bestimmen, wann die Daten von jedem Datenelement abgerufen werden sollen. Zu diesem Zweck kann die Empfängervorrichtung die Abrufe so planen, dass Konflikte zwischen ihnen vermieden werden. Wenn die Empfängervorrichtung bereit ist, ein Datenstück von einem bestimmten Sendervorrichtung zu erhalten, kann die Empfängervorrichtung den direkten Fernspeicherzugriff (RDMA) verwenden, um die Daten zu erhalten, ohne mit der entsprechenden Anwendung auf der Sendervorrichtung zu interagieren.
  • Bei den bestehenden Technologien können Datenübertragungen von mehreren Sendervorrichtungen zu einer Empfängervorrichtung zu Überlastungen führen und den Durchsatz der Datenströme an den Vermittlungsstellen verringern. Ein solches Viel-zu-Eins-Kommunikationsmuster kann als „Incast“ bezeichnet werden. Um die Auswirkungen von Incast abzuschwächen, kann die Empfängervorrichtung in der Regel den Verkehr von den Sendervorrichtungen drosseln. Die Empfängervorrichtung kann dann die Übertragungen von den Sendervorrichtungen planen und auf Basis des Plans Sendeguthaben an einzelne Sendervorrichtungen senden. Die Gutschriften erlauben es den Sendervorrichtungen, Daten an die Empfängervorrichtung zu übertragen, wie es die entsprechenden Gutschriften vorsehen. Da die Empfängervorrichtung jedoch nicht kontrollieren kann, wie die Sendervorrichtungen die Übertragung planen, kann es bei den Vermittlungsstellen im Netzwerk immer noch zu Überlastungen kommen.
  • Um die Daten zu übertragen, kann ein Sender die Daten in Pakete packen. Dies kann dazu führen, dass die Pakete nicht in der richtigen Reihenfolge beim Empfänger ankommen. Die ungeordnete Ankunft der Pakete kann Sequenznummern in den Paketen erfordern. In einigen Beispielen kann es bei der Datenübertragung über ein Netzwerk erforderlich sein, dass die Header-Informationen geordnet sind. Die Nutzdaten, die mit den Kopfdaten verbunden sind, müssen jedoch nicht in derselben Weise geordnet werden wie die Kopfdaten. Typischerweise kann die Datenübertragung einen Strom von Paketen verwenden, wobei die Kopfdaten mit den Nutzdaten in den Paketen enthalten sind. Unter diesen Umständen werden die Pakete nach den Kopfdaten geordnet. Einige bestehende Lösungen für das Staumanagement können mehrere Pfade durch das Netzwerk verwenden, wobei die Sendervorrichtung die Pakete über mehrere Pfade verteilt, um eine Überlastung auf einem bestimmten Pfad zu vermeiden. Folglich müssen die Sender- und Empfängervorrichtungen umfangreiche und ressourcenintensive Mechanismen unterhalten, um die Neuordnung der Pakete zu erleichtern. Ein Incast im Netzwerk kann die Paketverluste im Netzwerk weiter verschärfen und die Mechanismen zur Neuordnung der Pakete weiter belasten.
  • Um dieses Problem zu lösen, kann die Empfängervorrichtung die Übertragungen der Sendervorrichtungen auf Basis des Überlastungsgrads bei der Empfängervorrichtung planen. Das Ausmaß der Überlastung kann vom Grad der Überlastung abhängen. Anstatt einer Sendervorrichtung einen Sendekredit zu gewähren und der Sendervorrichtung die Entscheidung zu überlassen, wann sie sendet, kann die Empfängervorrichtung eine Datenabrufoperation von der Sendervorrichtung durchführen. Dadurch kann die Empfängervorrichtung steuern, wann die abgerufenen Daten das Netzwerk durchqueren. Wenn während des Betriebs eine Senderanwendung auf der Sendervorrichtung ein Stück Daten an eine entsprechende Anwendung auf einer Empfängervorrichtung senden muss, kann die Anwendung einen NIC der Sendervorrichtung benachrichtigen. Der NIC der sendenden Vorrichtung kann als Sender-NIC bezeichnet werden.
  • Der sendende NIC kann dann die Daten abrufen (z.B. von einem der Anwendung zugewiesenen Speicherplatz) und sie in einem Sendepuffer des NIC speichern. Anschließend kann der sendende NIC eine Sendeanforderung zum Senden der Daten senden. Die Anforderung kann einen Deskriptor für die Daten enthalten. Der Deskriptor kann den Speicherort der Daten angeben. Die Position kann eine Speicherposition des Datenstücks im Senderpuffer beinhalten. Wenn der NIC der Empfängervorrichtung, der als Empfänger-NIC bezeichnet werden kann, die Anforderung empfängt, kann der Empfänger-NIC einen Speicherplatz in einem Empfangspuffer des NIC zuweisen. Der Empfangspuffer kann einem Datenfluss zugewiesen werden, der mit dem Datenstück verbunden ist.
  • Der Empfänger-NIC kann die Daten von dem im Deskriptor angegebenen Ort abrufen. Der Abrufprozess kann die aktive Beteiligung der Anwendung umgehen. Der Empfänger-NIC kann RDMA verwenden, um die Daten aus dem Senderpuffer in dem Sender-NIC abzurufen. Da die Empfängervorrichtung die Daten aus dem Senderpuffer abrufen kann, anstatt die Sendervorrichtung aufzufordern, die Daten zu senden, kann die Empfängervorrichtung steuern, wann die Daten ankommen. Dementsprechend kann die Empfängervorrichtung die Abrufe planen, um Konflikte zu vermeiden. Durch das Abrufen von Daten auf Basis des Zeitplans kann der Empfänger-NIC festlegen, wie die Daten von den Sendervorrichtungen das Netzwerk durchlaufen. Dieses effiziente, auf Abrufen basierende Incast-Management-System kann die Auswirkungen von Incast abmildern und die Überlastung des Netzwerks verringern.
  • Darüber hinaus kann der Abrufprozess in Verbindung mit einem kreditbasierten Staumanagementsystem arbeiten. Erreicht beispielsweise ein Überlastungsgrad bei der Empfängervorrichtung einen Schwellenwert, kann die Empfängervorrichtung vom kreditbasierten System auf das abrufbasierte System umschalten. Der Überlastungsgrad kann dem Grad der Überlastung entsprechen, der die Anzahl der Sendervorrichtungen angibt, die Sendeanforderungen an die Empfängervorrichtung senden. Dementsprechend kann der Schwellenwert eines oder mehrere der folgenden Merkmale anzeigen: eine vorbestimmte Anzahl von Sendervorrichtungen und ein vorbestimmtes Niveau oder einen vorbestimmten Prozentsatz der Auslastung eines Empfangspuffers, der Daten von den Sendervorrichtungen empfängt. Erreicht beispielsweise die Anzahl der Sendervorrichtungen, die Sendeanforderungen senden, eine vorbestimmte Anzahl (d.h. den Schwellenwert), kann die Umschaltung auf das abrufbasierte System ausgelöst werden. Erreicht die Überlastung hingegen einen höheren Schwellenwert (z.B. eine hohe Wasserstandsmarke), kann die Empfängervorrichtung die Datenabfrage für einen bestimmten Zeitraum unterbrechen. Dies kann es dem Empfänger ermöglichen, anstehende Übertragungen zu löschen. Nach Ablauf dieses Zeitraums, wenn die Überlastung unter den höheren Schwellenwert fällt, kann die Empfängervorrichtung den Planungsprozess wieder aufnehmen.
  • Außerdem kann die Empfängervorrichtung die erfolgreichen Datenabrufe verfolgen. Da jedes Stück abgerufener Daten an einer vorbestimmten Stelle im Empfangspuffer platziert werden kann, können die Positionen insbesondere die Reihenfolge der empfangenen Daten anzeigen. Dementsprechend kann der Empfänger-NIC anhand der Position eines abgerufenen Datenteils im Empfangspuffer feststellen, ob die Daten in der richtigen Reihenfolge angekommen sind. Werden die Daten nicht in der richtigen Reihenfolge abgerufen, können sie an dem zugewiesenen Ort verbleiben. Wenn der Empfänger-NIC alle Daten in der richtigen Reihenfolge empfängt, kann er die Daten an die Anwendung weiterleiten. Der Abruf von Daten in falscher Reihenfolge kann dann den Bedarf an einem Neuordnungsmechanismus im Empfängervorrichtung verringern.
  • In dieser Offenbarung wird der Begriff „Switch“ in einem allgemeinen Sinne verwendet und kann sich auf jeden eigenständigen oder Fabric-Switch beziehen, der in einer beliebigen Netzwerkschicht arbeitet. Der Begriff „Switch“ ist nicht so zu verstehen, dass die Beispiele der vorliegenden Erfindung auf Netzwerke der Schicht 2 beschränkt sind. Jede Vorrichtung, die Datenverkehr an eine externe Vorrichtung oder einen anderen Switch weiterleiten kann, kann als „Switch“ bezeichnet werden. Jede physische oder virtuelle Vorrichtung (z.B. eine virtuelle Maschine oder ein Switch, der auf einem Computer arbeitet), das Datenverkehr an eine Endvorrichtung weiterleiten kann, kann als „Switch“ bezeichnet werden. Beispiele für einen „Switch“ sind u. a. ein Layer-2-Switch, ein Layer-3-Router, ein Routing-Switch, eine Komponente eines Gen-Z-Netzwerks oder ein Fabric-Switch, der eine Mehrzahl ähnlicher oder heterogener kleinerer physischer und/oder virtueller Switches umfasst.
  • Der Begriff „Paket“ bezieht sich auf eine Gruppe von Bits, die zusammen über ein Netzwerk transportiert werden können. Der Begriff „Paket“ ist nicht so zu verstehen, dass Beispiele der vorliegenden Erfindung auf eine bestimmte Schicht eines Netzwerkprotokollstapels beschränkt sind. Der Begriff „Paket“ kann durch andere Begriffe ersetzt werden, die sich auf eine Gruppe von Bits beziehen, wie z.B. „Nachricht“, „Rahmen“, „Zelle“, „Datagramm“ oder „Transaktion“. Außerdem kann sich der Begriff „Port“ auf den Anschluss beziehen, der Daten empfangen oder senden kann. Der Begriff „Anschluss“ kann sich auch auf die Hardware-, Software- und/oder Firmware-Logik beziehen, die den Betrieb dieses Anschlusses erleichtern kann.
  • 1A zeigt ein Beispiel für ein empfängergesteuertes Incast-Management zum Abrufen von Daten gemäß einem Aspekt der vorliegenden Anmeldung. Eine HPC-Umgebung 100 kann eine Reihe von Knoten 111, 112, 113, 114, 115, 116, 117, 118 und 119 umfassen. Eine Teilmenge dieser Knoten können Rechenknoten sein, während die anderen Speicherknoten sein können. Die Knoten können über ein Netzwerk 110 miteinander verbunden sein. Der jeweilige Knoten kann als Empfänger oder Sender fungieren. Der Knoten kann dann als Empfänger- bzw. Sendervorrichtung bezeichnet werden. Das Netzwerk 110 kann eine Reihe von Hochleistungs-Switches 101, 102, 103, 104 und 105 umfassen. Hier kann das Netzwerk 110 eine HPC-Fabric sein. Die Rechen- und Speicherknoten können über das Netzwerk 110 zusammenarbeiten, um das Hochleistungsrechnen in der HPC-Umgebung 100 zu erleichtern.
  • Eine Teilmenge der Switches im Netzwerk 110 kann über entsprechende Tunnel miteinander gekoppelt werden. Beispiele für einen Tunnel sind unter anderem VXLAN, Generic Routing Encapsulation (GRE), Network Virtualization using GRE (NVGRE), Generic Networking Virtualization Encapsulation (Geneve), Internet Protocol Security (IPsec) und Multiprotocol Label Switching (MPLS). Die Tunnel im Netzwerk 110 können über ein zugrunde liegendes Netzwerk (oder ein Underlay-Netzwerk) gebildet werden. Das zugrundeliegende Netzwerk kann ein physisches Netzwerk sein, und eine entsprechende Verbindung des zugrundeliegenden Netzwerks kann eine physische Verbindung sein. Ein entsprechendes Switch-Paar im zugrunde liegenden Netzwerk kann ein Border Gateway Protocol (BGP)-Peer sein. Ein VPN, z.B. ein Ethernet-VPN (EVPN), kann über das Netzwerk 110 eingerichtet werden.
  • Um das erwartete Leistungsniveau zu gewährleisten, kann ein entsprechender Knoten in der HPC-Umgebung 100 mit der Betriebsrate der anderen Knoten arbeiten. Nehmen wir an, dass der Knoten 111 als Empfängervorrichtung arbeitet. Zumindest eine Teilmenge der übrigen Knoten in der Umgebung 100 kann dann als Sender arbeiten. Die Switches 101, 102, 103, 104 und 105 können eine Datenübertragung mit niedriger Latenz von einer entsprechenden Sendervorrichtung zur Empfängervorrichtung 111 mit hoher Geschwindigkeit ermöglichen. Wenn eine große Anzahl von Sendervorrichtungen versucht, Daten an die Empfängervorrichtung 111 zu senden, kommt es zu einer Überlastung des Netzwerks 110, was zu einer starken Überlastung der Empfängervorrichtung 111 und der zugehörigen Switches führen kann. Um eine Hochgeschwindigkeitsdatenübertragung zu gewährleisten, kann die HPC-Umgebung 100 daher Mechanismen zur Abschwächung von Staus während des Incast erfordern.
  • Bei bestehenden Technologien können Datenübertragungen von mehreren Sendervorrichtungen, wie den Sendervorrichtungen 112 und 114, zu einer Empfängervorrichtung einen Stau verursachen und den Durchsatz der Datenströme verringern (z.B. am Switch 101, der die Empfängervorrichtung 111 koppelt). Wenn der Incast auftritt, kann die Empfängervorrichtung 111 den Datenverkehr von den Sendervorrichtungen drosseln, um die Auswirkungen des Incasts abzuschwächen. Die Empfängervorrichtung 111 kann dann die Übertragungen von den Sendervorrichtungen planen und Sendegutschriften an einzelne Sendervorrichtungen, wie die Sendervorrichtungen 112 und 114, basierend auf dem Plan senden. Die Gutschriften ermöglichen es den Sendervorrichtungen 112 und 114, Daten an die Empfängervorrichtung 111 zu übertragen, wie durch die entsprechenden Gutschriften angegeben. Da die Empfängervorrichtung 111 jedoch nicht kontrollieren kann, wie die Sendervorrichtungen 112 und 114 die Übertragung planen, kann es bei den Vermittlungsstellen im Netzwerk 110 immer noch zu Überlastungen kommen.
  • Um Daten zu übertragen, können die Sendervorrichtungen 112 und 114 die Daten in einer Reihe von Paketen zusammenfassen. Aufgrund der verlustbehafteten Natur des Netzwerks 110 können jedoch ein oder mehrere Pakete verloren gehen. Dies kann dazu führen, dass die Pakete nicht in der richtigen Reihenfolge beim Empfänger 111 ankommen. Das ungeordnete Eintreffen der Pakete kann Sequenznummern in den Paketen erfordern. Infolgedessen müssen die Sendervorrichtungen 112 und 114 und die Empfängervorrichtung 111 umfangreiche und ressourcenintensive Mechanismen unterhalten, um die Neuordnung der Pakete zu erleichtern. Ein Incast im Netzwerk 110 kann die Paketverluste im Netzwerk 110 weiter verschärfen und die Mechanismen zur Neuordnung der Pakete weiter belasten.
  • Um dieses Problem zu lösen, kann die Empfängervorrichtung 111 die Übertragung von den Sendervorrichtungen 112 und 114 auf Basis eines Überlastungsgrades (z.B. angezeigt durch einen Grad der Überlastung) an der Empfängervorrichtung 111 planen. Anstatt der Sendervorrichtung 112 (oder der Sendervorrichtung 114) einen Übertragungskredit zu gewähren und der Sendervorrichtung 112 zu gestatten, den Zeitpunkt der Übertragung zu bestimmen, kann die Empfängervorrichtung 111 eine Datenabrufoperation von der Sendervorrichtung 112 durchführen. Folglich kann die Empfängervorrichtung 111 steuern, wann die abgerufenen Daten das Netzwerk 110 durchlaufen können. Wenn während des Betriebs eine Senderanwendung auf der Sendervorrichtung 112 Daten 134 und 136 an die Empfängervorrichtung 111 senden muss, kann die Anwendung den NIC 130 der Sendervorrichtung 112 benachrichtigen. Wenn eine Senderanwendung auf der Sendervorrichtung 114 Daten 144 und 146 an die Empfängervorrichtung 111 senden muss, kann die Anwendung den NIC 140 der Sendervorrichtung 114 benachrichtigen.
  • Der NIC 130 kann dann einen Befehl von der Sendervorrichtung 112 mit den Speicherplätzen der Daten 134 und 136 in einer Speichervorrichtung 132 der Sendervorrichtung 112 empfangen. In ähnlicher Weise kann der NIC 140 einen Befehl von der Sendervorrichtung 114 mit den Speicherplätzen der Daten 144 und 146 in einer Speichervorrichtung 142 der Sendervorrichtung 114 empfangen. Anschließend kann der NIC 130 eine Sendeanforderung 152 zum Senden von Daten 134 senden. Die Anforderung 152 kann einen Deskriptor für die Daten 134 enthalten. Der Deskriptor kann den Ort der Daten 134 angeben, der einen Speicherort der Daten 134 in der Speichervorrichtung 132 umfassen kann. Wenn der NIC 120 der Empfängervorrichtung 111 die Anforderung 152 empfängt, kann der NIC 120 einen Speicherplatz in einem Empfangspuffer 122 in einer Speichervorrichtung der Empfängervorrichtung 111 zuweisen. Der Empfangspuffer 122 kann dem Senderpuffer 132 zugeordnet werden (d.h. als Warteschlangenpaar). In ähnlicher Weise kann der NIC 140 eine Sendeanforderung 162 mit einem Deskriptor für Daten 144 senden. Der Deskriptor kann den Speicherplatz der Daten 144 im Puffer 142 angeben.
  • Wenn der NIC 120 die Anforderung 162 erhält, kann er einen Speicherplatz in einem Empfangspuffer 124 zuweisen. Trifft jedoch die Anforderung 162 beim NIC 120 ein, bevor der Puffer 124 zugewiesen ist (z.B. als unerwartete Anforderung), kann die Verarbeitung der Anforderung 162 zurückgestellt werden, bis der Puffer 124 zugewiesen ist. Der Empfangspuffer 124 kann dem Senderpuffer 142 zugewiesen werden. Auf diese Weise kann der NIC 120 die Nummernpuffer 122, 124, 126 und 128 jeweils für einen entsprechenden Sendepuffer verwalten. Der NIC 120 kann die Daten 134 und 144 von den in den entsprechenden Deskriptoren der Anforderungen 152 bzw. 162 angegebenen Orten abrufen. Der Abrufprozess kann die aktive Beteiligung der Anwendung umgehen. Der NIC 120 kann RDMA zum Abrufen der Daten 134 und 144 verwenden. So kann NIC 120 beispielsweise RDMA-GET-Pakete (z.B. Datagramme) 154 bzw. 164 verwenden, um Daten aus den Puffern 132 und 142 abzurufen. Da der NIC 120 Daten 134 und 144 aus den Puffern 132 bzw. 142 abrufen kann, kann der NIC 120 steuern, wann die Daten 134 und 144 an der Empfängervorrichtung 111 ankommen können. Hier können die NICs 120, 130 und 140 ein Rendezvous-Protokoll verwenden, das von der HPC-Fabric unterstützt wird. Das Rendezvous-Protokoll erleichtert die Übertragung großer Datenmengen auf Basis von Nachrichtenübermittlung. In Übereinstimmung mit dem Rendezvous-Protokoll kann eine Sendervorrichtung eine Sendeanforderung als Steuersignal an eine Empfängervorrichtung senden. Nach dem Empfang der Sendeanforderung kann die Empfängervorrichtung ein Lesesignal auf Basis eines Fernspeicherzugriffs ausgeben, z.B. eine RDMA-GET-Nachricht. Das Lesesignal kann die Daten vom Sender an einem in der Sendeanforderung angegebenen Ort abrufen, ohne dass der Prozessor des Senders beteiligt ist.
  • Durch das Abrufen von Daten auf Basis des Zeitplans kann der NIC 120 festlegen, wie die Daten 134 und 144 das Netzwerk 110 durchlaufen. Dieses effiziente, auf Abruf basierende Incast-Management-System kann die Auswirkungen von Incast abmildern und die Überlastung des Netzwerks 110 verringern. Darüber hinaus kann der Abrufprozess in Verbindung mit einem kreditbasierten Überlastungsmanagementsystem arbeiten. Wenn beispielsweise der Grad der Überlastung oder des Incast einen Schwellenwert erreicht, kann die Empfängervorrichtung 111 von dem kreditbasierten System auf das abrufbasierte System umschalten. Der Schwellenwert kann eine oder mehrere der folgenden Angaben enthalten: eine vorbestimmte Anzahl von Sendervorrichtungen und ein vorbestimmtes Niveau oder einen vorbestimmten Prozentsatz der Nutzung eines Empfangspuffers. Erreicht der Überlastungsgrad hingegen einen hohen Schwellenwert (z.B. ein hohes Wasserzeichen), kann die Empfängervorrichtung 111 den Datenabruf für einen bestimmten Zeitraum unterbrechen. Wenn dieser Zeitraum abläuft und der Überlastungsgrad unter den hohen Schwellenwert fällt, kann die Empfängervorrichtung 111 die Planung des Datenabrufs wieder aufnehmen.
  • 1 B zeigt ein Beispiel für einen ungeordneten Datenabruf gemäß einem Aspekt der vorliegenden Anmeldung. Der NIC 120 kann auch die erfolgreichen Datenabrufe verfolgen. Der Senderpuffer 142 im NIC 140 kann Daten 174 und 176 zur Übertragung an den NIC 120 enthalten. Der NIC 120 kann jedem der Daten 174 und 176 einen vorbestimmten Speicherplatz im Puffer 124 zuweisen. Die Positionen im Puffer 124 können daher die Reihenfolge der empfangenen Daten aus dem Puffer 142 angeben. Anhand der Position der Daten 174 und 176 im Puffer 124 kann der NIC 120 feststellen, ob die Daten 174 und 176 in der richtigen Reihenfolge angekommen sind. Angenommen, der NIC 120 verwendet die RDMA-GET-Pakete 182 und 184, um Daten 174 bzw. 176 zu erhalten. Das Paket 182 kann im Netzwerk 110 verloren gehen (durch ein Kreuz gekennzeichnet). Folglich kann der NIC 120 die Daten 176 nicht in der richtigen Reihenfolge empfangen.
  • Der für die Daten 174 vorgesehene Speicherplatz 180 im Puffer 124 kann jedoch ungenutzt bleiben. Daher kann der NIC 120 feststellen, dass die Daten 176 nicht in Ordnung sind. Die Daten 176 können dann an ihrem Platz im Puffer 124 verbleiben. Der NIC 120 kann erneut versuchen, die Daten 174 aus dem Puffer 142 abzurufen. Wenn der NIC 120 die Daten 174 empfängt, kann der NIC 120 feststellen, dass die Daten 174 und 176 in der richtigen Reihenfolge im Puffer 124 gespeichert sind. Der NIC 120 kann dann die Daten 174 und 176 an die Anwendung weiterleiten. Durch den Abruf von Daten, die nicht in der richtigen Reihenfolge gespeichert sind, kann der Bedarf an einem Neuordnungsmechanismus an der Empfängervorrichtung 111 verringert werden.
  • 2 zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses eines NIC eines Computersystems veranschaulicht, der Rendezvous verwendet, um ein Überlastungsmanagement gemäß einem Aspekt der vorliegenden Anmeldung zu ermöglichen. Während des Betriebs kann der NIC über ein Netzwerk eine Anforderung zum Senden eines Datenteils von einem entfernten Computersystem empfangen (Vorgang 202). Der NIC kann feststellen, dass die Anforderung zu einer Mehrzahl von Anforderungen von einer Mehrzahl von entfernten Computersystemen gehört, auf die über das Netzwerk zugegriffen werden kann (Vorgang 204). Auf der Grundlage eines Deskriptors in der Anforderung kann der NIC den Speicherort der Daten in dem entfernten Computersystem bestimmen (Vorgang 206). Der NIC kann dann einen Überlastungsgrad bestimmen, der mit der Mehrzahl von Anforderungen an das Computersystem verbunden ist (Vorgang 208). Anschließend kann der NIC einen Datenabruf als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl der Anforderungen planen (Vorgang 210). Dementsprechend kann der NIC die Daten von dem Speicherort in dem entfernten Computersystem auf Basis des Fernzugriffs abrufen (Vorgang 212).
  • 3 zeigt ein Beispiel für eine Kommunikation, die das empfängergesteuerte Incast-Management gemäß einem Aspekt der vorliegenden Anmeldung erleichtert. Eine HPC-Umgebung 300 kann ein Netzwerk 310 mit Switches 322 und 324 umfassen. In diesem Beispiel können die Knoten 350 und 360 der Umgebung 300 als Sender- bzw. Empfängervorrichtungen arbeiten. Während des Betriebs kann der NIC 352 der Sendervorrichtung 350 einen Sendepuffer 340 (z.B. in der Speichereinrichtung der Sendervorrichtung 350) registrieren (Vorgang 302). Der Puffer 340 kann einen Teil der Daten 342 enthalten, die an die Empfängervorrichtung 360 übertragen werden müssen. Nach dem Empfang einer Anforderung kann der NIC 352 die Daten 342 (z.B. unter Verwendung der memcpy-Operation) aus dem Speicher der Sendervorrichtung 350 erhalten. Der NIC 352 kann dann über den lokal gekoppelten Switch 324 eine Übertragungsanforderung an die Empfängervorrichtung 360 senden (Vorgang 304).
  • In einigen Beispielen kann der NIC 352 auch einen „work complete“-Datensatz in eine dem Puffer 340 zugeordnete Abschluss-Warteschlange einfügen. Der NIC 352 kann optional die Übertragung der Daten 342 als abgeschlossen betrachten, da der NIC 362 für das Abrufen der Daten 342 verantwortlich sein kann. Der Switch 322 kann dann die Anfrage über das Netzwerk 310 an die Empfängervorrichtung 360 weiterleiten (Vorgang 306). Die Anforderung kann einen Deskriptor der Daten 342 enthalten. Nach dem Empfang der Anfrage kann der NIC 362 den Ort der Daten 342 bestimmen. Der NIC 362 kann auch einen Empfangspuffer 330 (z.B. in der Speichervorrichtung der Empfängervorrichtung 360) als einen entsprechenden Puffer des Puffers 340 registrieren (Vorgang 308). Der NIC 362 kann auch einen Speicherplatz für Daten 342 im Puffer 320 zuweisen (Vorgang 310). Der NIC 362 kann RDMA GET verwenden, um Daten 342 aus Puffer 340 abzurufen (Vorgang 312). Hier können die NICs 362 und 352 ein von der HPC-Fabric unterstütztes Rendezvous-Protokoll verwenden.
  • Wenn der NIC 362 Daten 342 (z.B. von einem RDMA-GET-Paket) empfängt, kann der NIC 362 die Daten 342 an der zugewiesenen Stelle im Puffer 340 speichern (Vorgang 314). RDMA kann durch eine auf den NICs 362 und 352 instanziierte Netzwerkbibliothek erleichtert werden. Beispiele für die Netzwerkbibliothek sind unter anderem eine Message Passing Interface (MPI), eine partitionierte globale Adressraumbibliothek (z.B. OpenSHMEM) und eine Collective Communication Library (CCL) (z.B. die NVIDIAO CCL oder NCCL). Der NIC 362 kann auch eine Bestätigung senden, die eine kurze Nachricht enthalten kann, die anzeigt, dass der NIC 362 Daten 342 empfangen hat (Vorgang 316). Der lokal gekoppelte Switch 101 kann die Bestätigung empfangen und sie über das Netzwerk 110 an die Sendervorrichtung 350 weiterleiten (Vorgang 318). Der NIC 352 kann dann die Daten 342 aus dem Puffer 340 löschen (Vorgang 320).
  • 4A zeigt ein Flussdiagramm, das ein Beispiel für einen Prozess einer Empfängervorrichtung darstellt, die den Datenabruf als Reaktion auf eine Übertragungsanforderung plant, gemäß einem Aspekt der vorliegenden Anmeldung. Während des Betriebs kann die Empfängervorrichtung eine Übertragungsanforderung für ein Stück Daten von einer Sendervorrichtung empfangen (Vorgang 402). Die Übertragungsanforderung kann eine Fernspeicherzugriffsanforderung sein. Die Empfängervorrichtung kann dann einen Deskriptor der Daten aus der Anforderung erhalten (Operation 404). Der Deskriptor kann den Ort der Daten in einer Speichervorrichtung der Sendervorrichtung enthalten. Die Empfängervorrichtung kann dann feststellen, ob es sich bei der Anforderung um eine unerwartete Anforderung handelt (z.B. eingetroffen, bevor der lokale Puffer für den Datenfluss registriert wurde) (Vorgang 406). Wenn es sich um eine unerwartete Anforderung handelt, kann die Verarbeitung der Anforderung zurückgestellt werden, bis ein Puffer zugewiesen wird (Vorgang 414). Die Empfängervorrichtung kann dann feststellen, ob für den Senderpuffer ein Empfangspuffer zugewiesen ist (Vorgang 416).
  • Wenn kein Empfangspuffer zugewiesen ist, kann die Bearbeitung der Anfrage so lange aufgeschoben werden, bis der Puffer zugewiesen ist (Vorgang 414). Wenn die Anfrage nicht unerwartet kommt (Vorgang 406) oder nach der Zuweisung des Empfangspuffers (Vorgang 416), kann die Empfängervorrichtung den Empfangspuffer für den Senderpuffer registrieren (Vorgang 408). Auf diese Weise können die vom Senderpuffer abgerufenen Daten im Empfangspuffer gespeichert werden. Die Empfängervorrichtung kann dann einen Speicherplatz für die Daten im Empfangspuffer zuweisen (Vorgang 410). Die Empfängervorrichtung kann den Abruf der Daten aus dem Senderpuffer auf Basis eines Incast-Levels planen (Operation 412). Auf diese Weise kann die Empfängervorrichtung den Zeitpunkt des Datenabrufs auf Basis des Überlastungsgrads und in Bezug auf die Anzahl der Sendervorrichtungen, die den Datenabruf anfordern, planen. Auf der Grundlage der Planung kann die Empfängervorrichtung die Auswirkungen der Überlastung abmildern.
  • 4B zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses einer Empfängervorrichtung veranschaulicht, das zu einem geplanten Zeitpunkt ein Stück Daten von einer Sendervorrichtung abruft, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung. Während des Betriebs kann die Empfängervorrichtung den Speicherort der Daten auf Basis eines Deskriptors bestimmen, der aus einer entsprechenden Übertragungsanforderung der Daten gewonnen werden kann (Vorgang 452), und einen RDMA GET zum Abrufen der Daten von dem bestimmten Speicherort ausgeben (Vorgang 454). Der RDMA GET kann die Daten von einer Speichervorrichtung abrufen, das die Daten in der Sendervorrichtung speichert. Die Empfängervorrichtung kann feststellen, ob der Abruf erfolgreich war (Vorgang 456). Der RDMA-GET-Prozess kann einen Mechanismus bereitstellen, auf dessen Grundlage die Empfängervorrichtung den erfolgreichen Abruf feststellen kann.
  • Ist der Abruf nicht erfolgreich, kann die Empfängervorrichtung den Abruf erneut versuchen (Vorgang 460) und den RDMA GET zum Abruf der Daten weitergeben (Vorgang 454). Ist der Abruf hingegen erfolgreich, kann die Empfängervorrichtung die abgerufenen Daten an einem vorgewählten Ort im Empfangspuffer speichern (Vorgang 458). Da der Speicherort der abgerufenen Daten vorausgewählt ist, kann der Abruf ungeordnet erfolgen, ohne auf eine Sequenznummer angewiesen zu sein. Wenn die Empfängervorrichtung die Reihenfolge der Sendeanforderungen beibehält (z.B. durch Verwendung eines Ordnungsschemas), können die Daten in beliebiger Reihenfolge abgerufen und dem Speicher der Empfängervorrichtung in beliebiger Reihenfolge zugeführt werden.
  • 5 zeigt ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, bei dem eine Sendervorrichtung eine Übertragungsanforderung an eine Empfängervorrichtung sendet, in Übereinstimmung mit einem Aspekt der vorliegenden Anmeldung. Während des Betriebs kann die Sendervorrichtung Daten für die Übertragung (Vorgang 502) erhalten (z.B. von einer verteilten Anwendung). Die Sendervorrichtung kann die Daten in einem Sendepuffer speichern (Vorgang 504). Der Sendepuffer kann sich in einer Speichereinrichtung der Sendervorrichtung befinden. Die Sendervorrichtung kann dann einen Deskriptor bestimmen, der den Ort der Daten im Sendepuffer angibt (Operation 506). Die Sendervorrichtung kann dann eine Sendeanforderung mit dem Deskriptor erzeugen (Vorgang 508) und die Sendeanforderung an die Empfängervorrichtung senden (Vorgang 510). Dabei kann die Übertragungsanforderung eine RDMA-Anforderung sein.
  • 6 zeigt ein Beispiel für ein Computersystem, das ein empfängergesteuertes Incast-Management mit Datenabruf gemäß einem Aspekt der vorliegenden Anmeldung ermöglicht. Ein Computersystem 600 kann einen Satz von Prozessoren 602, eine Speichereinheit 604, einen NIC 606 und eine Speichervorrichtung 608 umfassen. Die Speichereinheit 604 kann einen Satz flüchtiger Speichervorrichtungen (z.B. Dual In-Line Memory Module (DIMM)) enthalten. Darüber hinaus kann das Computersystem 600 mit einer Anzeigevorrichtung 612, einer Tastatur 614 und einem Zeigevorrichtung 616 gekoppelt sein, falls erforderlich. Die Speichervorrichtung 608 kann ein Betriebssystem 618 speichern. Ein Incast-Verwaltungssystem 620 und Daten 636, die mit dem Incast-Verwaltungssystem 620 verbunden sind, können von der Speichervorrichtung 608 und/oder dem NIC 606 verwaltet und ausgeführt werden.
  • Das Incast-Verwaltungssystem 620 kann Anweisungen enthalten, die, wenn sie vom Computersystem 600 ausgeführt werden, das Computersystem 600 veranlassen können, die in dieser Offenbarung beschriebenen Verfahren und/oder Prozesse durchzuführen. Wenn das Computersystem 600 eine Sendervorrichtung ist, kann das Incast-Verwaltungssystem 620 insbesondere Anweisungen zum Senden einer Sendeanforderung für ein Datenstück mit einem Deskriptor an eine Empfängervorrichtung enthalten (Anforderungslogikblock 622). Das Incast-Management-System 620 kann auch Anweisungen zum Speichern der Daten in einem Senderpuffer (z.B. im NIC 606) enthalten (Pufferlogikblock 628).
  • Handelt es sich bei dem Computersystem 600 hingegen um eine Empfängervorrichtung, kann das Incast-Management-System 620 Anweisungen zum Empfangen einer Sendeanforderung und zum Erhalten eines Deskriptors aus der Anforderung enthalten (Anforderungslogikblock 622). Das Incast-Verwaltungssystem 620 kann auch Anweisungen zum Planen des Abrufs der Daten von einer Sendervorrichtung auf Basis eines Überlastungsgrads enthalten, der durch den Grad des Incasting angezeigt wird (Planungslogikblock 624). Der Grad der Überlastung kann von der Anzahl der sendenden Vorrichtungen abhängen. Darüber hinaus kann das Incast-Management-System 620 Anweisungen zum Fernabruf der Daten von dem Ort enthalten, der in dem in der Anforderung enthaltenen Deskriptor angegeben ist (z.B. unter Verwendung von RDMA) (Abruflogikblock 626).
  • Das Incast-Management-System 620 kann ferner Anweisungen zum Zuweisen eines Speicherplatzes für die Daten im Empfangspuffer enthalten (Pufferlogikblock 628). Darüber hinaus kann das Incast-Management-System 620 Anweisungen zum Speichern der abgerufenen Daten an dem zugewiesenen Ort enthalten (Pufferlogikblock 628). Das Incast-Verwaltungssystem 620 kann auch Anweisungen enthalten, um festzustellen, ob die Daten in der richtigen Reihenfolge abgerufen werden (Reihenfolgelogikblock 630). Darüber hinaus kann das Incast-Verwaltungssystem 620 auch Anweisungen zur Förderung der Daten enthalten, die in der richtigen Reihenfolge abgerufen wurden (Auftragslogikblock 630).
  • Das Incast-Management-System 620 kann außerdem Anweisungen zum Senden und Empfangen von Paketen enthalten (Kommunikationslogikblock 632). Daten 636 können alle Daten enthalten, die den Betrieb des Incast-Verwaltungssystems 620 erleichtern können. Zu den Daten 636 können unter anderem ein Deskriptor, zu übertragende Daten, Daten außerhalb der Reihenfolge und Abschlussprotokolle gehören.
  • 7 zeigt ein Beispiel für eine nicht transitorische, computerlesbare Speichervorrichtung, die ein empfängergesteuertes Incast-Management mit Datenabruf gemäß einem Aspekt der vorliegenden Anmeldung erleichtert. Die computerlesbare Speichervorrichtung 700 kann eine Mehrzahl von Einheiten oder Einrichtungen umfassen, die über einen verdrahteten, drahtlosen, Quanten-, Licht- oder elektrischen Kommunikationskanal miteinander kommunizieren können. Die Speichervorrichtung 700 kann unter Verwendung einer oder mehrerer integrierter Schaltungen realisiert werden und kann weniger oder mehr Einheiten oder Einrichtungen als die in 7 gezeigten umfassen.
  • Außerdem kann die Speichervorrichtung 700 in ein Computersystem integriert werden. Zum Beispiel kann die Speichervorrichtung 700 in einem NIC eines Computersystems untergebracht sein. Die Speichervorrichtung 700 kann Einheiten 702-712 umfassen, die ähnliche Funktionen oder Operationen wie die Logikblöcke 622-632 des Incast-Management-Systems 620 von 6 ausführen, darunter: eine Anforderungseinheit 702, eine Planungseinheit 704, eine Abrufeinheit 706, eine Speichereinheit 708, eine Reihenfolgeeinheit 710 und eine Kommunikationseinheit 712.
  • Die vorliegende Beschreibung soll den Fachmann in die Lage versetzen, die Erfindung herzustellen und zu verwenden, und wird im Zusammenhang mit einer bestimmten Anwendung und deren Anforderungen gegeben. Verschiedene Modifikationen der offenbarten Beispiele werden für den Fachmann leicht ersichtlich sein, und die hierin definierten allgemeinen Grundsätze können auf andere Beispiele und Anwendungen angewendet werden, ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen. Daher ist die vorliegende Erfindung nicht auf die gezeigten Beispiele beschränkt, sondern hat den weitestgehenden Anwendungsbereich, der mit den Ansprüchen vereinbar ist.
  • Ein Aspekt der vorliegenden Technologie kann einen NIC bereitstellen, der ein effizientes Incast-Management in einem Computersystem ermöglicht. Während des Betriebs kann der NIC über ein Netzwerk eine Anforderung zum Senden von Daten von einem entfernten Computersystem empfangen. Der NIC kann feststellen, dass die Anforderung zu einer Mehrzahl von Anforderungen von einer Mehrzahl von entfernten Computersystemen gehört, die über das Netzwerk zugänglich sind. Auf der Grundlage eines Deskriptors in der Anforderung kann der NIC einen Speicherort der Daten im entfernten Computersystem bestimmen. Der NIC kann dann den Grad der Überlastung bestimmen, der mit der Mehrzahl von Anfragen an das Computersystem verbunden ist. Anschließend kann der NIC einen Datenabruf als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl der Anforderungen planen. Der NIC kann dann die Daten aus dem Speicherort im entfernten Computersystem auf Basis des Fernzugriffs abrufen.
  • In einer Variante dieses Aspekts kann der NIC zur Planung des Datenabrufs feststellen, ob der Überlastungsgrad größer als ein Schwellenwert ist, der eine vorbestimmte Anzahl von Computersystemen angibt, die Daten an das Computersystem senden. Wenn der Überlastungsgrad größer als der Schwellenwert ist, kann der NIC die Planung für einen bestimmten Zeitraum unterbrechen.
  • In einer Variante dieses Aspekts befindet sich der Speicherort der Daten in einem Sendepuffer des entfernten Computersystems.
  • In einer Variante dieses Aspekts kann der NIC einen Speicherort für die Daten in einem Empfangspuffer des Computersystems bestimmen. Der NIC kann dann die Daten an dem bestimmten Ort speichern.
  • In einer weiteren Variante können die Daten ohne eine Sequenznummer abgerufen werden.
  • In einer Variante dieses Aspekts kann das Computersystem eine Empfängervorrichtung sein. Das entfernte Computersystem kann dann eine Sendervorrichtung sein.
  • In einer Abwandlung dieses Aspekts kann der Fernzugriff auf dem Remote Direct Memory Access (RDMA) des NIC basieren.
  • In einer Variante dieses Aspekts kann das Netzwerk eine HPC-Fabric (High Performance Computing) umfassen, die den Abruf der Daten unterstützt. Dabei kann der Abruf der Daten auf einem Rendezvous-Protokoll basieren, das von der HPC-Fabric unterstützt wird. Das Rendezvous-Protokoll kann das Senden der Übertragungsanforderung für die Daten und den Abruf der Daten auf Basis eines Fernzugriffs unterstützen.
  • In einer Variante dieses Aspekts wird der Überlastungsgrad auf Basis des Grades der Überlastung des Computersystems bestimmt, die durch die Mehrzahl der entfernten Computersysteme verursacht wird.
  • Die in dieser ausführlichen Beschreibung beschriebenen Datenstrukturen und der Code werden in der Regel auf einem computerlesbaren Speichermedium gespeichert, das jede Vorrichtung oder Medium sein kann, die bzw. das Code und/oder Daten zur Verwendung durch ein Computersystem speichern kann. Das computerlesbare Speichermedium umfasst unter anderem flüchtige Speicher, nichtflüchtige Speicher, magnetische und optische Speichervorrichtungen wie Disketten, Magnetbänder, CDs (Compact Discs), DVDs (Digital Versatile Discs oder Digital Video Discs) oder andere Medien, die in der Lage sind, heute bekannte oder später entwickelte computerlesbare Medien zu speichern.
  • Die im Abschnitt „Detaillierte Beschreibung“ beschriebenen Methoden und Prozesse können als Code und/oder Daten verkörpert werden, die wie oben beschrieben in einem computerlesbaren Speichermedium gespeichert werden können. Wenn ein Computersystem den auf dem computerlesbaren Speichermedium gespeicherten Code und/oder die Daten liest und ausführt, führt das Computersystem die Methoden und Prozesse aus, die als Datenstrukturen und Codes verkörpert und in dem computerlesbaren Speichermedium gespeichert sind.
  • Die hier beschriebenen Methoden und Prozesse können von Hardware-Logikblöcken oder -Einrichtungen ausgeführt werden und/oder in diesen enthalten sein. Zu diesen Logikblöcken oder -Einrichtungen können unter anderem ein anwendungsspezifischer integrierter Schaltkreis (ASIC-Chip), ein feldprogrammierbares Gate-Array (FPGA), ein spezieller oder gemeinsam genutzter Prozessor, der einen bestimmten Software-Logikblock oder ein Stück Code zu einem bestimmten Zeitpunkt ausführt, und/oder andere heute bekannte oder später entwickelte programmierbare Logikvorrichtungen gehören. Wenn die Hardware-Logikblöcke oder -Einrichtungen aktiviert werden, führen sie die darin enthaltenen Methoden und Prozesse aus.
  • Die vorstehenden Beschreibungen von Beispielen der vorliegenden Erfindung wurden nur zur Veranschaulichung und Beschreibung vorgelegt. Sie erheben keinen Anspruch auf Vollständigkeit und schränken diese Offenbarung nicht ein. Dementsprechend werden viele Modifikationen und Variationen für den Fachmann auf dem Gebiet der Technik offensichtlich sein. Der Umfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche definiert.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/379079 [0001]

Claims (20)

  1. Ein Computersystem, das Folgendes umfasst: eine Speichervorrichtung; einen oder mehrere Ports und einen Netzwerkschnittstellen-Controller (NIC) zum: Empfangen, über ein Netzwerk, einer Anforderung zum Senden von Daten aus einem entfernten Computersystem; Bestimmen, dass die Anforderung zu einer Mehrzahl von Anforderungen aus einer Mehrzahl von entfernten Computersystemen gehört, die über das Netzwerk zugänglich sind; Bestimmen eines Speicherorts der Daten auf dem entfernten Computersystem auf Basis eines Deskriptors in der Anforderung; Bestimmen eines mit der Mehrzahl von Anforderungen verbundenen Überlastungsgrades an dem Computersystem; Planen eines Datenabrufs als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl von Anforderungen; und Abrufen der Daten aus dem Speicherort auf dem entfernten Computersystem auf Basis eines Fernzugriffs.
  2. Computersystem nach Anspruch 1, wobei der NIC zum Planen des Datenabrufs weiterhin bestimmt ist zum: Bestimmen, ob der Überlastungsgrad größer als ein Schwellenwert ist, der eine vorbestimmte Anzahl von Computersystemen anzeigt, die Daten an das Computersystem senden; und als Reaktion darauf, dass der Überlastungsgrad größer als der Schwellenwert ist, Unterbrechen der Planung für eine vorbestimmte Zeitspanne.
  3. Computersystem nach Anspruch 1, wobei der Speicherort der Daten an dem entfernten Computersystem in einem Sendepuffer des entfernten Computersystems liegt.
  4. Computersystem nach Anspruch 1, wobei der NIC weiterhin bestimmt ist zum: Bestimmen eines Ortes zum Speichern der Daten in einem Empfangspuffer im Computersystem und Speichern der Daten an dem bestimmten Ort.
  5. Computersystem nach Anspruch 1, wobei die Daten abgerufen werden, ohne sich auf eine Sequenznummer zu stützen.
  6. Computersystem nach Anspruch 1, wobei das Computersystem eine Empfängervorrichtung des Fernzugriffs ist, und wobei das entfernte Computersystem eine Sendervorrichtung des Fernzugriffs ist.
  7. Das Computersystem nach Anspruch 1, wobei der Fernzugriff auf dem direkten Fernspeicherzugriff (RDMA) aus dem Computersystem basiert.
  8. Computersystem nach Anspruch 1, wobei das Netzwerk eine Hochleistungs-Computing- (HPC-) Fabric umfasst, die den Abruf der Daten auf Basis eines von dem HPC-Fabric unterstützten Rendezvous-Protokolls unterstützt, und wobei das Rendezvous-Protokoll das Senden der Übertragungsanforderung für die Daten und den Abruf der Daten auf Basis eines Fernzugriffs unterstützt.
  9. Ein Verfahren, das Folgendes umfasst: Empfangen, über ein Netzwerk, einer Anforderung zum Senden von Daten aus einer Anwendung, die auf einer Sendervorrichtung läuft; Bestimmen, dass die Anforderung zu einer Mehrzahl von Anforderungen aus einer Mehrzahl von Sendervorrichtungen gehört, die über das Netzwerk zugänglich sind; Bestimmen eines Speicherorts der Daten an der Sendervorrichtung auf Basis eines Deskriptors in der Anforderung; Bestimmen eines mit der Mehrzahl von Anforderungen verbundenen Überlastungsgrades an der Empfängervorrichtung; Planen, durch die Empfängervorrichtung, eines Datenabrufs als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl von Anforderungen und Abrufen, durch die Sendervorrichtung, der Daten aus dem Speicherort an der Sendervorrichtung auf Basis eines Fernzugriffs.
  10. Verfahren nach Anspruch 9, wobei das Planen des Datenabrufs weiterhin umfasst: Bestimmen, ob der Überlastungsgrad größer als ein Schwellenwert ist, der eine vorbestimmte Anzahl von Computersystemen anzeigt, die Daten an das Computersystem senden; und als Reaktion darauf, dass der Überlastungsgrad größer als der Schwellenwert ist, Unterbrechen der Planung für eine vorbestimmte Zeitspanne.
  11. Verfahren nach Anspruch 9, wobei sich der Speicherort der Daten in der Sendervorrichtung in einem Sendepuffer in einer Speichervorrichtung der Sendervorrichtung befindet und wobei die Anforderung an einem Netzwerkschnittstellen-Controller (NIC) der Sendervorrichtung erzeugt wird.
  12. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Bestimmen eines Ortes zum Speichern der Daten in einem Empfangspuffer an der Empfängervorrichtung und Speichen der Daten an dem bestimmten Ort.
  13. Verfahren nach Anspruch 9, wobei die Daten abgerufen werden, ohne sich auf eine Sequenznummer zu stützen.
  14. Verfahren nach Anspruch 9, wobei die Planung des Datenabrufs und das Abrufen der Daten von einem NIC der Empfängervorrichtung durchgeführt wird.
  15. Verfahren nach Anspruch 9, wobei der Fernzugriff auf dem direkten Fernspeicherzugriff (RDMA) aus der Empfängervorrichtung basiert.
  16. Verfahren nach Anspruch 9, wobei das Netzwerk eine Hochleistungs-Computing- (HPC-) Fabric enthält, die den Abruf der Daten auf Basis eines von der HPC-Fabric unterstützten Rendezvous-Protokolls unterstützt, und wobei das Rendezvous-Protokoll das Senden der Übertragungsanforderung für die Daten und den Abruf der Daten auf Basis eines Fernzugriffs unterstützt.
  17. Nicht-transitorisches, computerlesbares Speichermedium, das Anweisungen enthält, die, wenn sie auf einem Netzwerk-Schnittstellen-Controller (NIC) einer Empfängervorrichtung in einem verteilten System ausgeführt werden, den NIC veranlassen zum: Empfangen, über ein Netzwerk, einer Anforderung zum Senden von Daten aus einer Speichervorrichtung einer Sendervorrichtung; Bestimmen, dass die Anforderung zu einer Mehrzahl von Anforderungen aus einer Mehrzahl von über das Netzwerk zugänglichen Sendervorrichtungen gehört; und Bestimmen eines Speicherortes der Daten auf der Sendervorrichtung auf Basis eines Deskriptors in der Anforderung; Bestimmen eines Überlastungsgrades an der Empfängervorrichtung in Verbindung mit der Mehrzahl von Anfragen; Planen eines Datenabrufs als Reaktion auf die Anforderung auf Basis des Überlastungsgrads und in Bezug auf die Mehrzahl von Anforderungen; und Abrufen der Daten aus dem Speicherort auf der Sendervorrichtung auf Basis eines Fernzugriffs.
  18. Nicht-transitorisches computerlesbares Speichermedium nach Anspruch 17, wobei die Anweisungen, wenn sie auf dem NIC ausgeführt werden, den NIC veranlassen zum: Bestimmen eines Ortes zum Speichern der Daten in einem Empfangspuffer an der Empfängervorrichtung und Speichern der Daten an dem bestimmten Ort.
  19. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17, wobei der Speicherort der Daten an der Sendervorrichtung in einem Sendepuffer in einer Speichervorrichtung der Sendervorrichtung liegt und wobei die Anforderung an einem zweiten NIC der Sendervorrichtung erzeugt wird.
  20. Nicht-transitorisches, computerlesbares Speichermedium nach Anspruch 17, wobei der NIC den Datenabruf plant durch: Bestimmen, ob der Überlastungsgrad größer als ein Schwellenwert ist, der eine vorbestimmte Anzahl von Computersystemen anzeigt, die Daten an das Computersystem senden; und als Reaktion darauf, dass der Überlastungsgrad größer als der Schwellenwert ist, Unterbrechen der Planung für eine vorbestimmte Zeitspanne.
DE102023127355.8A 2022-10-11 2023-10-06 Rendezvous zur ermöglichung von überlastungsmanagement Pending DE102023127355A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263379079P 2022-10-11 2022-10-11
US63/379,079 2022-10-11
US18/478,531 US20240121294A1 (en) 2022-10-11 2023-09-29 Rendezvous to enable congestion management
US18/478,531 2023-09-29

Publications (1)

Publication Number Publication Date
DE102023127355A1 true DE102023127355A1 (de) 2024-04-11

Family

ID=90355079

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023127355.8A Pending DE102023127355A1 (de) 2022-10-11 2023-10-06 Rendezvous zur ermöglichung von überlastungsmanagement

Country Status (2)

Country Link
US (1) US20240121294A1 (de)
DE (1) DE102023127355A1 (de)

Also Published As

Publication number Publication date
US20240121294A1 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
DE112020002496T5 (de) System und verfahren zur erleichterung eines effizienten host-speicherzugriffs von einer netzwerkschnittstellensteuerung (nic)
DE112016005924T5 (de) Beschleunigte Netzwerkpaketverarbeitung
DE102013209118B4 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
US9553820B2 (en) Maintaining packet order in a parallel processing network device
DE102020207426A1 (de) Auflistung einer CNP-Erzeugung durch eine Vermittlungsstelle
DE112011106016T5 (de) Gemeinsame Sendeschlange
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
DE202015009244U1 (de) Routing von Datenverkehr innerhalb von und zwischen autonomen Systemen
DE102020113544A1 (de) Bedarfsgesteuerte paketwarteschlangen in einer netzwerkvorrichtung
DE112013000839B4 (de) Datenübertragungsprotokoll für verteilte Informationstechnologie-Architekturen
DE112011102415T5 (de) Registerzugriff in einer verteilten virtuellen Brückenumgebung
DE112013004750T5 (de) Verwaltung von Aushungern und Überlastung in einem zweidimensionalen Netz mit Flusskontrolle
DE102020105776A1 (de) Kostengünstige Überlastungsisolierung für verlustfreies Ethernet
DE112021000155T5 (de) Vorrichtungen und verfahren für netzwerknachrichtensequenzierung
DE102015101583B4 (de) Reduzierung der Grösse von IPV6-Routertabellen unter Verwendung eines Bypasstunnels
DE102015118711A1 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE112017003494T5 (de) Mehrfach-core-software-forwarding
DE112006002912T5 (de) Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken
DE102018204861A1 (de) Einzelner Umsetzungstabelleneintrag für symmetrische Flüsse
DE112019007502T5 (de) Zuordnen von nvme-over-fabric-paketen mithilfe von virtuellen ausgangswarteschlangen
DE102020119018A1 (de) Aufrechterhalten der Bandbreitennutzung in Anwesenheit von Paketverwürfen
DE112019007406T5 (de) Weiterleitung von nvsvse-overfabric-paketen
DE102013212227A1 (de) Verfahren zum Verringern der Verarbeitungslatenz in einem Multi-Thread-Paketprozessor mit wenigstens einer Neuanordnungswarteschlange