DE112021004177T5 - Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen - Google Patents

Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen Download PDF

Info

Publication number
DE112021004177T5
DE112021004177T5 DE112021004177.0T DE112021004177T DE112021004177T5 DE 112021004177 T5 DE112021004177 T5 DE 112021004177T5 DE 112021004177 T DE112021004177 T DE 112021004177T DE 112021004177 T5 DE112021004177 T5 DE 112021004177T5
Authority
DE
Germany
Prior art keywords
web
user interactions
network
service
data
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
DE112021004177.0T
Other languages
English (en)
Inventor
Alan Daniel Larson
Bipin Prabhakar Todur
Marko Milovanovic
Alexander Gordon McAuley
Kevin Michael Thayer
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE112021004177T5 publication Critical patent/DE112021004177T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/0894Packet rate
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • 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/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • 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/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Vorrichtungen, Systeme und Techniken zum Identifizieren einer Ursache eines Leistungsrückgangs in einem webbasierten Dienst. In mindestens einer Ausführungsform wird eine Ursache für einen Leistungsrückgang identifiziert, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind.

Description

  • Diese Anmeldung beansprucht die Priorität der US Patentanmeldung 16/987 , 252, die am 6. August 2020 eingereicht wurde und den Titel „Leistungsanalyse" trägt, wobei auf den gesamten Inhalt dieser Anmeldung für alle Zwecke Bezug genommen wird.
  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform betrifft Prozessoren oder Computersysteme, die zum Erkennen und Diagnostizieren einer oder mehrerer Ursachen eines Leistungsrückgangs in einem webbasierten Dienst verwendet werden, gemäß verschiedenen hierin beschriebenen neuen Techniken.
  • HINTERGRUND
  • Techniken zum automatischen Erkennen und Diagnostizieren von Leistungsrückgängen in einem webbasierten Dienst können signifikante Mengen an Rechenressourcen verbrauchen und ungenau sein. Die Genauigkeit der Erkennung und Diagnose von Leistungsrückgängen und das Ausmaß verwendeter Computerressourcen können verbessert werden.
  • Figurenliste
    • 1 veranschaulicht eine Zeitreihenanalyse eines webbasierten Dienstes, gemäß mindestens einer Ausführungsform;
    • 2 veranschaulicht eine metrische Neuabtastung, gemäß mindestens einer Ausführungsform;
    • 3 veranschaulicht eine Übergangserkennung, gemäß mindestens einer Ausführungsform;
    • 4 veranschaulicht einen Beispielprozess einer Zeitreihenanalyse eines webbasierten Dienstes, gemäß mindestens einer Ausführungsform;
    • 5 veranschaulicht einen Beispielprozess einer Subkontextisolierung, gemäß mindestens einer Ausführungsform;
    • 6 veranschaulicht einen Beispielprozess einer Subumgebungsisolierung, gemäß mindestens einer Ausführungsform;
    • 7 veranschaulicht eine Beispielvisualisierung der Subumgebungs- und Subkontextisolierung, gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht eine weitere Beispielvisualisierung der Subumgebungs- und Subkontext-isolierung, gemäß mindestens einer Ausführungsform;
    • 9 veranschaulicht eine weitere Beispielvisualisierung der Subumgebungs- und Subkontext-isolierung, gemäß mindestens einer Ausführungsform;
    • 10 veranschaulicht eine Beispielvisualisierung für einen gerichtete Graphen der Subumgebungs- und Subkontextisolierung, gemäß mindestens einer Ausführungsform;
    • 11 veranschaulicht ein verteiltes System, gemäß mindestens einer Ausführungsform;
    • 12 veranschaulicht ein beispielhaftes Rechenzentrum, gemäß mindestens einer Ausführungsform;
    • 13 veranschaulicht ein Client-Server-Netzwerk, gemäß mindestens einer Ausführungsform;
    • 14 veranschaulicht ein Computernetzwerk, gemäß mindestens einer Ausführungsform;
    • 15A veranschaulicht ein vernetztes Computersystem, gemäß mindestens einer Ausführungsform;
    • 15B veranschaulicht ein vernetztes Computersystem, gemäß mindestens einer Ausführungsform;
    • 15C veranschaulicht ein vernetztes Computersystem, gemäß mindestens einer Ausführungsform;
    • 16 veranschaulicht eine oder mehrere Komponenten einer Systemumgebung, in der Dienste als Drittanbieter-Netzwerkdienste angeboten werden können, gemäß mindestens einer Ausführungsform;
    • 17 veranschaulicht eine Cloud-Computing-Umgebung, gemäß mindestens einer Ausführungsform;
    • 18 veranschaulicht einen Satz funktionaler Abstraktionsschichten, die von einer Cloud-Computing-Umgebung bereitgestellt werden, gemäß mindestens einer Ausführungsform;
    • 19 veranschaulicht einen Supercomputer auf Chipebene, gemäß mindestens einer Ausführungsform;
    • 20 veranschaulicht einen Supercomputer auf einer Rackmodulebene, gemäß mindestens einer Ausführungsform;
    • 21 veranschaulicht einen Supercomputer auf einer Rackebene, gemäß mindestens einer Ausführungsform;
    • 22 veranschaulicht einen Supercomputer auf einer Gesamtsystemebene, gemäß mindestens einer Ausführungsform;
    • 23A veranschaulicht eine Inferenzierungs- und Trainingslogik, gemäß mindestens einer Ausführungsform;
    • 23B veranschaulicht eine Inferenzierungs- und Trainingslogik, gemäß mindestens einer Ausführungsform;
    • 24 veranschaulicht ein Training und einen Einsatz eines neuronalen Netzwerks, gemäß mindestens einer Ausführungsform;
    • 25 veranschaulicht eine Architektur eines Systems eines Netzwerks, gemäß mindestens einer Ausführungsform;
    • 26 veranschaulicht eine Architektur eines Systems eines Netzwerks, gemäß mindestens einer Ausführungsform;
    • 27 veranschaulicht einen Steuerebenen-Protokollstack, gemäß mindestens einer Ausführungsform;
    • 28 veranschaulicht einen Benutzerebenen-Protokollstack, gemäß mindestens einer Ausführungsform;
    • 29 veranschaulicht Komponenten eines Kernnetzwerks, gemäß mindestens einer Ausführungsform;
    • 30 veranschaulicht Komponenten eines Systems zum Unterstützen einer Netzwerkfunktionsvirtualisierung (NFV), gemäß mindestens einer Ausführungsform;
    • 31 veranschaulicht ein Verarbeitungssystem, gemäß mindestens einer Ausführungsform;
    • 32 veranschaulicht ein Computersystem, gemäß mindestens einer Ausführungsform;
    • 33 veranschaulicht ein System, gemäß mindestens einer Ausführungsform;
    • 34 veranschaulicht eine beispielhafte integrierte Schaltung, gemäß mindestens einer Ausführungsform;
    • 35 veranschaulicht ein Computersystem, gemäß mindestens einer Ausführungsform;
    • 36 veranschaulicht eine APU, gemäß mindestens einer Ausführungsform;
    • 37 veranschaulicht eine CPU, gemäß mindestens einer Ausführungsform;
    • 38 veranschaulicht ein beispielhaftes Beschleunigerintegrations-Slice, gemäß mindestens einer Ausführungsform;
    • 39A und 39B veranschaulichen beispielhafte Grafikprozessoren, gemäß mindestens einer Ausführungsform;
    • 40A veranschaulicht einen Grafikkern, gemäß mindestens einer Ausführungsform;
    • 40B veranschaulicht eine GPGPU, gemäß mindestens einer Ausführungsform;
    • 41A veranschaulicht einen Parallelprozessor, gemäß mindestens einer Ausführungsform;
    • 41B veranschaulicht einen Verarbeitungscluster, gemäß mindestens einer Ausführungsform;
    • 41C veranschaulicht einen Grafik-Multiprozessor, gemäß mindestens einer Ausführungsform;
    • 42 veranschaulicht einen Software-Stack einer Programmierplattform, gemäß mindestens einer Ausführungsform;
    • 43 veranschaulicht eine CUDA-Implementierung eines Software-Stacks von 42, gemäß mindestens einer Ausführungsform;
    • 44 veranschaulicht eine ROCm-Implementierung eines Software-Stacks von 42, gemäß mindestens einer Ausführungsform;
    • 45 veranschaulicht eine OpenCL-Implementierung eines Software-Stacks von 42, gemäß mindestens einer Ausführungsform;
    • 46 veranschaulicht eine Software, die von einer Programmierplattform unterstützt wird, gemäß mindestens einer Ausführungsform; und
    • 47 veranschaulicht ein Kompilieren von Code zur Ausführung auf den Programmierplattformen der 42 - 45, gemäß mindestens einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details aufgeführt, um ein gründlicheres Verständnis mindestens einer Ausführungsform zu ermöglichen. Für einen Fachmann versteht sich jedoch, dass die erfindungsgemäßen Konzepte auch ohne eines oder mehrere dieser spezifischen Details praktiziert werden können.
  • 1 veranschaulicht eine Zeitreihenanalyse eines webbasierten Dienstes, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst ein webbasierter Dienst 102 in einem dargestellten Beispiel 100 eine Vielzahl von Servern. In mindestens einer Ausführungsform hostet ein Server eine oder mehrere virtuelle Maschinen. In mindestens einer Ausführungsform führt eine virtuelle Maschine eine oder mehrere Anwendungen aus, die webbasierte Dienste für ein oder mehrere Benutzergeräte bereitstellen.
  • In mindestens einer Ausführungsform entspricht eine Benutzersitzung einer oder mehreren Interaktionen zwischen einem Gerät eines Benutzers und dem webbasierten Dienst 102. In mindestens einer Ausführungsform kann eine Interaktion Datenanforderungen, die Bereitstellung von Daten, die Durchführung eines angeforderten Betriebsablaufs, die Durchführung eines geplanten oder nicht angeforderten Betriebsablaufs, eine Verbindung oder eine Trennung umfassen, ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform umfasst eine Interaktion beispielsweise das Rendern eines Videobilds in Relation zu einem Videospiel, das von dem webbasierten Dienst 102 gehostet und an ein Benutzergerät gestreamt wird. In mindestens einer Ausführungsform umfasst eine Interaktion das Anfordern oder Durchführen von Betriebsabläufen oder Operationen oder das Durchführen von Betriebsabläufen oder Operationen im Zusammenhang mit einem computerisierten Gameplay. In mindestens einer Ausführungsform umfasst eine Benutzerinteraktion eine Benutzersitzung eines Gameplays oder eine Benutzersitzung irgendeines anderen webbasierten Dienstes.
  • In mindestens einer Ausführungsform wird eine Leistungsregression bzw. ein Leistungsrückgang eines webbasierten Dienstes 102 automatisch erkannt und die Ursache für diesen Rückgang durch eine automatische Analyse identifiziert. In mindestens einer Ausführungsform umfasst ein Rückgang eine Änderung einer Leistungscharakteristik. In mindestens einer Ausführungsform umfasst ein Rückgang eine unerwartete negative Änderung einer Leistungscharakteristik, für die eine Ursache unbekannt ist.
  • In mindestens einer Ausführungsform basiert die automatische Analyse eines Rückgangs auf einer vergleichenden Analyse von Gruppen von Interaktionen mit dem webbasierten Dienst 102. In mindestens einer Ausführungsform umfasst die vergleichende Analyse den Vergleich von Änderungen an einer regressierten Leistungskennzahl oder Leistungsmetrik in Bezug auf zwei oder mehr Gruppen von Benutzerinteraktionen. In mindestens einer Ausführungsform umfasst die vergleichende Analyse ferner ein Vergleichen von Änderungen an einem Anteil von Benutzerinteraktionen in einer jeweiligen Gruppe im Vergleich zu Benutzerinteraktionen in anderen Gruppen oder zu einer Gesamtzahl von Benutzerinteraktionen. In mindestens einer Ausführungsform basieren die Gruppen von Benutzerinteraktionen auf Eigenschaften, die mit einer Gruppe verbunden sind. Zum Beispiel basieren in mindestens einer Ausführungsform Gruppen beispielsweise auf einer Versionsnummernkategorie von Eigenschaften, so dass Benutzerinteraktionen, die mit „v1.0“ einer Anwendung verbunden sind, in eine Gruppe und Benutzerinteraktionen, die mit „v2.0“ der Anwendung verbunden sind, in eine andere Gruppe eingeordnet werden. In mindestens einer Ausführungsform basiert die vergleichende Analyse auf einem Vergleichen dieser jeweiligen Gruppen. In mindestens einer Ausführungsform wird eine Eigenschaftskategorie, wie z.B. die Versionsnummer, als eine Subumgebung bezeichnet, und ein Wert einer Eigenschaft in dieser Kategorie wird als ein Subkontext oder ein Subkontext einer Subumgebung bezeichnet. Zum Beispiel werden in mindestens einer Ausführungsform Benutzerinteraktionen, wie z.B. Benutzersitzungen, nach einer Versionsnummer-Subumgebung gruppiert, so dass Benutzerinteraktionen, die mit einem „v1.0“-Subkontext verbunden sind, in einer Gruppe platziert und Benutzerinteraktionen, die mit einem „v2.0“-Subkontext verbunden sind, in einer anderen Gruppe platziert werden.
  • In mindestens einer Ausführungsform werden Zeitreihen von Kennzahlen gesammelt, um die Leistung des webbasierten Dienstes 102 zu überwachen. Zum Beispiel umfasst in mindestens einer Ausführungsform eine Kennzahl einen Wert, der die Systemleistung anzeigt, was Messungen wie verarbeitete Anfragen pro Sekunde, Anzahl aktiver Sitzungen, Anzahl inaktiver Sitzungen, Auslastung der Zentraleinheit („CPU“), Speicherauslastung, Bandbreitennutzung usw. einschließen kann, aber nicht darauf beschränkt ist. In mindestens einer Ausführungsform umfasst eine Zeitreihe von Kennzahlen eine Folge solcher Werte, die im Laufe der Zeit gesammelt wurden, und repräsentiert somit den Wert einer entsprechenden Kennzahl im Laufe der Zeit.
  • In mindestens einer Ausführungsform sammelt ein webbasierter Dienst 102 eine Zeitreihe von Kennzahlen 104. In mindestens einer Ausführungsform zählt der webbasierte Dienst 102 beispielsweise periodisch inaktive Benutzersitzungen und zeichnet einen entsprechenden Wert in einem Feld oder Array oder einer anderen Speicherstruktur auf, die für die Verwaltung von Zeitreihendaten geeignet ist.
  • In mindestens einer Ausführungsform werden Änderungen an Betriebseigenschaften des webbasierten Dienstes 102 über hierin beschriebene Techniken durch Analyse von Zeitreihen von Kennzahlen und anderen Daten identifiziert. In mindestens einer Ausführungsform ist die Betriebseigenschaft ein Leistungsmerkmal oder ein Merkmal, das auf eine Anwendungsfunktion hinweist. In mindestens einer Ausführungsform wird eine Änderung einer Betriebseigenschaft des webbasierten Dienstes 102 als ein Übergang in einer Zeitreihe einer Kennzahl wiedergegeben. In mindestens einer Ausführungsform umfasst ein Übergang eine statistisch signifikante Änderung an Werten in der Zeitreihe. In mindestens einer Ausführungsform sind solche Änderungen ein Anzeichen für eine Fehlfunktion oder einen Rückgang der Leistung.
  • In mindestens einer Ausführungsform wird ein Übergang in einer Zeitreihe aus einer Vielzahl von Zeitreihen unter Verwendung von hierin beschriebenen Analyseverfahren identifiziert. Zum Beispiel sammelt der webbasierte Dienst 102 in mindestens einer Ausführungsform eine große Anzahl verschiedener Zeitreihen, die sich auf eine Vielzahl unterschiedlicher Leistungsmerkmale beziehen. In mindestens einer Ausführungsform analysiert der webbasierte Dienst 102 diese Zeitreihen, um einen Übergang in einer dieser Zeitreihen zu erkennen. In mindestens einer Ausführungsform identifiziert der webbasierte Dienst 102 einen Übergang, der mit anderen Mitteln schwer, unmöglich oder unpraktisch zu erkennen sein könnte.
  • In mindestens einer Ausführungsform weist der webbasierte Dienst 102 eine Vielzahl von Eigenschaften auf, z.B. Merkmale, Attribute, Züge oder Qualitäten. In mindestens einer Ausführungsform sind Eigenschaften eindimensional oder mehrdimensional und können als Skalare, Vektoren oder Arrays numerischer oder textueller Werte repräsentiert sein. In mindestens einer Ausführungsform sind Beispiele von Eigenschaften, die dem webbasierten Dienst 102 zugeordnet sind, die Eigenschaften Instanztyp 106 und Softwareversion 108. In mindestens einer Ausführungsform bezieht sich der Instanztyp 106 auf Klassifizierungen von Instanzen virtueller Maschinen und kann als Vektor dargestellt werden, der beschreibt, wie viele von jeder Klassifizierung zu einem bestimmten Zeitpunkt in Betrieb sind. In mindestens einer Ausführungsform bezieht sich die Softwareversion 108 auf eine Revisionsnummer eines Anwendungsprogramms, das auf dem webbasierten Dienst 102 läuft, und wird ebenfalls als ein Vektor dargestellt, der beschreibt, wie viele Instanzen jeder Revision zu einem bestimmten Zeitpunkt in Betrieb sind. Die Eigenschaften des webbasierten Dienstes 102 ändern sich im Laufe der Zeit, z.B. in Reaktion auf die Installation einer neuen Anwendung oder eine andere Konfigurationsänderung des webbasierten Dienstes 102, was wiederum zu einem Übergang in einer Zeitreihe von Kennzahlen 104 führen kann. In mindestens einer Ausführungsform wird eine Eigenschaft, deren Änderung den genannten Übergang verursacht hat, unter Verwendung eines Isolierungs- und Drilldown-Prozesses identifiziert, von welchem Ausführungsformen hierin beschrieben sind. In mindestens einer Ausführungsform weist der webbasierte Dienst 102 eine große Anzahl von Eigenschaften auf, von denen viele im Laufe der Zeit unabhängig voneinander variieren können, so dass die Identifizierung einer Eigenschaft, die mit einem metrischen Übergang verbunden ist, ansonsten schwierig, unmöglich oder unpraktisch wäre. In mindestens einer Ausführungsform nimmt beispielsweise eine Anzahl „voller Instanzen“ und „halber Instanzen“ virtueller Maschinen während eines Zeitraums zu, der mit einem Übergang einer Zeitreihe von Kennzahlen 104 verbunden ist, während Anwendungen mit der Softwareversion 108 für die Version „v1.1“ abnehmen, für die Version „v2.0“ jedoch zunehmen. In mindestens einer Ausführungsform gibt es viele solcher Eigenschaften zusätzlich zu den dargestellten, von denen sich jede unabhängig von anderen Eigenschaften ändern kann. In mindestens einer Ausführungsform wird ein Isolierungs- und Drilldown-Prozess, wie hierin beschrieben, verwendet, um aus einer großen Anzahl von Eigenschaften diejenigen Eigenschaften zu identifizieren, die mit einer Grundursache für einen metrischen Übergang in Verbindung gebracht werden können.
  • 2 veranschaulicht eine Neuabtastung von Kennzahlen, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst ein Beispiel 200 einer Zeitreihe einer Kennzahl 202 einen Kennzahlwert, der periodisch über einen bestimmten Zeitraum abgetastet wird, beispielsweise einmal pro Stunde über einen Zeitraum von mehreren Tagen. In mindestens einer Ausführungsform weist die Zeitreihe 202 eine Periodizität oder eine zyklische Tendenz auf, die sich aus dem im Laufe der Zeit natürlich schwankenden Bedarf des Systems ergeben kann. In mindestens einer Ausführungsform liegen Spitzenzeiten der Nutzung eines webbasierten Dienstes 102 beispielsweise in den frühen Abendstunden. In mindestens einer Ausführungsform wird eine Resampling-Technik verwendet, um die Identifizierung eines Übergangspunkts zu erleichtern, selbst in Anbetracht zyklischen Muster, wie sie in 2 dargestellt sind.
  • In mindestens einer Ausführungsform wird ein Resampling durchgeführt, indem Werte aus einem Teil einer Zeitreihe extrahiert und diese Werte nach dem Zufallsprinzip einer bestimmten Anzahl von Buckets zugewiesen werden. In mindestens einer Ausführungsform umfasst eine Zeitreihe beispielsweise Abtastwerte, die in einem periodischen Intervall über einen Tag hinweg gesammelt wurden. Die Neuabtastung umfasst in mindestens einer Ausführungsform ein zufälliges Neuzuweisen dieser Werte zu einem von mehreren Buckets. In mindestens einer Ausführungsform werden vierundzwanzig Buckets pro Tag verwendet, aber jedes Bucket könnte Abtastungen enthalten, die zu einem beliebigen Zeitpunkt während des Tages gesammelt wurden, so dass diese Buckets nicht notwendigerweise Stunden des Tages entsprechen. In mindestens einer Ausführungsform wird ein Wert aus einer Zeitreihe einer Kennzahl 202 einem und nur einem Bucket innerhalb einer neu abgetasteten Zeitreihe zugeordnet. In mindestens einer Ausführungsform umfasst jeder Bucket nach der Neuabtastung 1 N
    Figure DE112021004177T5_0001
    Abtastungen, wobei N angibt, wie viele Buckets pro Tag verwendet werden. In mindestens einer Ausführungsform ist N = 24. In mindestens einer Ausführungsform wird N so gewählt, dass normale periodische Fluktuationen in Zeitreihen einer Kennzahl 202 entfernt oder reduziert werden, ausgeglichen mit erhöhten Verarbeitungszeiten, die mit erhöhten Werten von N verbunden sein können. In mindestens einer Ausführungsform können größere Werte von N die Fähigkeit verbessern, eine Verschiebung eines Populationsmittelwerts der Kennzahl einer Zeitreihe 202 zu erfassen.
  • In mindestens einer Ausführungsform wird ein Mittelwert für jedem Bucket zugewiesenen Werte berechnet. In mindestens einer Ausführungsform bilden die Mittelwerte für jeden Bucket kollektiv eine neu abgetastete Zeitreihe von Kennzahlen 204. In mindestens einer Ausführungsform kann diese neu abgetastete Zeitreihe 204 wie in 2 dargestellt geplottet werden, wobei jeder Innertageswert einem Mittelwert eines entsprechenden Buckets entspricht.
  • 3 veranschaulicht die Übergangserkennung, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird in einem Beispiel 300 eine neu abgetastete Zeitreihe einer Kennzahl 304, wie beispielsweise die in 2 dargestellte neu abgetastete Zeitreihe 204, analysiert, um einen oder mehrere Übergangspunkte zu identifizieren.
  • In mindestens einer Ausführungsform wird ein t-Test verwendet, um einen Übergangspunkt zu identifizieren. In mindestens einer Ausführungsform wird der t-Test nach Welch verwendet, gemäß einer Gleichung: t = X ¯ 1 X ¯ 2 s 1 2 N 1 + s 2 2 N 2
    Figure DE112021004177T5_0002
  • In mindestens einer Ausführungsform wird t in Verbindung mit Freiheitsgraden verwendet, wie sie auf der Grundlage einer Anzahl von Abtastungen auf jeder Seite berechnet werden, um einen p-Wert zu erzeugen, der einer geschätzten Wahrscheinlichkeit entspricht, dass eine Nullhypothese wahr ist. In mindestens einer Ausführungsform lautet die Nullhypothese, dass jeder Abschnitt der Zeitreihe gleiche Populationsmittelwerte aufweist, und eine Alternativhypothese lautet, dass nicht jeder Abschnitt gleiche Populationsmittelwerte aufweist.
  • In mindestens einer Ausführungsform wird eine neu abgetastete Zeitreihe genommen und an einer gegebenen Indexposition in zwei Teile geteilt. In mindestens einer Ausführungsform wird für jede dieser Positionen ein t-Test durchgeführt und werden t-Statistiken und p-Werte aufgezeichnet, und wird ein Übergangspunkt identifiziert, indem eine Position gefunden wird, deren t-Statistik den größten absoluten Wert aufweist. In mindestens einer Ausführungsform wird eine Position, die den größten absoluten Wert aufweist und deren p-Wert statistische Signifikanz anzeigt, als ein Übergangspunkt betrachtet. In mindestens einer Ausführungsform werden solche Positionen als solche betrachtet, deren p-Werte unter einem Schwellenwert liegen, z.B. unter 0,001.
  • 4 veranschaulicht ein Beispiel für einen Prozess der Zeitreihenanalyse eines webbasierten Dienstes, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform werden ein oder mehrere Übergangspunkte in einer Zeitreihe von Kennzahlen identifiziert, und wird eine potenzielle Ursache für jeden Übergang unter Verwendung der Isolationsanalyse ermittelt. In mindestens einer Ausführungsform besteht ein Ziel der Isolationsanalyse darin, die wahrscheinlichste Ursache für einen Übergang zu isolieren. In mindestens einer Ausführungsform basiert die Isolationsanalyse auf der Annahme, dass ein Übergang in einer Zeitreihe durch eine damit zusammenhängende Änderung im Verhältnis zu einem Subkontext erklärt werden kann.
  • Obwohl der Beispielprozess 400 als eine Abfolge von Operationen dargestellt ist, können die dargestellten Operationen in Ausführungsformen auf verschiedene Weisen geändert werden, und können einige Operationen weggelassen, neu angeordnet oder parallel zu anderen Operationen durchgeführt werden, es sei denn, eine Reihenfolge ist explizit angegeben oder logisch impliziert, wie beispielsweise wenn die Eingabe einer Operation von der Ausgabe einer anderen Operation abhängt.
  • Die in 4 dargestellten Operationen können von einem System, wie dem in 1 dargestellten webbasierten Dienst 102, durchgeführt werden, das mindestens einen Prozessor und einen Speicher mit Anweisungen umfasst, die in Reaktion auf ihre Ausführung durch den mindestens einen Prozessor das System veranlassen, die dargestellten Operationen durchzuführen.
  • Bei 402 wird in mindestens einer Ausführungsform ein Übergangspunkt in einer Zeitreihe identifiziert. In mindestens einer Ausführungsform identifiziert ein System den Übergangspunkt unter Verwendung von Techniken, die in Bezug auf 2-3 beschrieben sind. In mindestens einer Ausführungsform wird der Übergangspunkt auf der Grundlage statistischer Eigenschaften, die mit dem Übergangspunkt verbunden sind, als Ziel für eine Isolierungs- und Drilldown-Analyse bestimmt.
  • In mindestens einer Ausführungsform wird für einen bestimmten identifizierten Übergangspunkt eine Isolierung
  • Bei 404 werden in mindestens einer Ausführungsform Subkontext- und Subumgebungsdaten, die mit einem identifizierten Übergangspunkt verbunden sind, erhalten. In mindestens einer Ausführungsform entspricht ein Subkontext einem Wert einer Eigenschaft oder eines Attributs, und entspricht eine Subumgebung einer Klassifizierung oder einem Typ der genannten Eigenschaften oder Attribute. Zum Beispiel entspricht in mindestens einer Ausführungsform „Instanztyp“ einer Subumgebung und „volle Instanz“ oder „halbe Instanz“ einem Subkontext.
  • In mindestens einer Ausführungsform werden Subkontext- und Subumgebungsdaten für eine mit einem Übergang verbundene Zeitspanne erhalten. In mindestens einer Ausführungsform umfasst dies Daten vor einem Übergangspunkt, die einer Isolations- und Drilldown-Analyse unterzogen werden, und Daten nach diesem Übergangspunkt.
  • Bei 406 wird in mindestens einer Ausführungsform für jeden Subkontext in einer gegebenen Subumgebung ein Komplexitätswert als eine Funktion von Änderungen an Mittelwert und Anteil berechnet. In mindestens einer Ausführungsform hat eine gegebene Subumgebung (z.B. Instanztyp) eine Eins-zu-Viele-Beziehung mit Subkontexten, wie „halbe Instanz“ und „volle Instanz“. In mindestens einer Ausführungsform wird die Komplexität gemäß der folgenden Formel berechnet: s A = s [ vor Mittelwert ] s [ nach Anteil ]
    Figure DE112021004177T5_0003
    s B = s [ vor Mittelwert ] s [ vor Anteil ]
    Figure DE112021004177T5_0004
    s A B = ( s A s B s B )
    Figure DE112021004177T5_0005
    s [ Komplexit a ¨ t ] = s A B s [ nach Anteil ]
    Figure DE112021004177T5_0006
  • In mindestens einer Ausführungsform kann sAB auf 1,0 gesetzt werden, wenn es sich nicht um eine Zahl handelt, z.B. wenn sB gleich Null ist. In mindestens einer Ausführungsform wird ein annäherndes skalares Äquivalent für Vorher/Nachher berechnet, indem der Mittelwert mit dem Anteil multipliziert wird. In mindestens einer Ausführungsform wird, falls der Skalar gleich Null ist, wie in Fällen, in denen ein Subkontext eingeführt wurde (z.B. eine neue Softwareversion), ein Skalar für vorher nicht auf eine Zahl („NaN“; Not a Number) gesetzt.
  • In mindestens einer Ausführungsform wird ein kombinierter Skalar, wie beispielsweise sAB wie oben gezeigt, als ein Verhältnis der Veränderung zwischen zwei Skalaren berechnet. In mindestens einer Ausführungsform wird dieses Verhältnis mit einem Anteil einer „Nach“-Komponente multipliziert, um Komplexitäten so mit einem Bias zu versehen, dass sie für „neuere“ Subkontexte höher sind. Dies betont Kontexte, die im Anteil zunehmen, anstelle von Subkontexten, die im Anteil abnehmen. Zum Beispiel erzeugt in mindestens einer Ausführungsform ein System ein intuitiveres Ergebnis, indem es eine neue Version v2.0 als verantwortlich für einen Übergang kennzeichnet, anstatt eine „Versionsverringerung auf v1.0“ als eine Ursache für diesen Übergang zu kennzeichnen.
  • In mindestens einer Ausführungsform kann, wenn das Verhältnis Null wird, was der Fall sein kann, wenn sB Null ist, weil ein neuer Kontext eingeführt wird, der Skalar auf 1,0 gesetzt werden, damit neue Kontexte (die keinen vorherigen Anteil haben) als eine Grundursache für einen Übergang gekennzeichnet werden können.
  • Bei 408 wird in mindestens einer Ausführungsform eine Subkontextisolierung durchgeführt. In mindestens einer Ausführungsform identifiziert ein System durch Subkontextisolierung Eigenschaften oder Attribute, deren Änderung als eine Ursache für einen Übergang abgeschätzt wird.
  • In mindestens einer Ausführungsform umfasst die Subkontextisolierung ein Qualifizieren von Subkontexten als potenzielle Ursachen für einen Übergang. In mindestens einer Ausführungsform werden ein oder mehrere Filterkriterien angewandt. In mindestens einer Ausführungsform werden Subkontexte als potenzielle Ursachen eliminiert, wenn ihr Anteil unter einem Schwellenwert liegt. Beispielsweise kann in mindestens einer Ausführungsform ein Subkontext, der mit weniger als 5% der Sitzungen während eines relevanten Zeitraums verbunden ist, aus der Betrachtung herausgefiltert werden. In mindestens einer Ausführungsform werden Subkontexte, die keine Werte an oder um ein Übergangsdatum aufweisen, von der Betrachtung ausgeschlossen.
  • In mindestens einer Ausführungsform werden Subkontexte als potenzielle Ursachen berücksichtigt, wenn ihr Anteil über einem Schwellenwert liegt und sie Daten um einen entsprechenden Übergangszeitpunkt haben.
  • In mindestens einer Ausführungsform wird ein Komplexitätsmaß wie oben beschrieben in einen Einflussfaktor umgewandelt. In mindestens einer Ausführungsform ist, wenn sich ein Mittelwert oder ein Anteil eines Subkontexts nicht geändert hat, sein Einfluss gleich Null. Andernfalls wird in mindestens einer Ausführungsform ein Einflussfaktor eines Subkontexts auf einen absoluten Wert der Komplexität dieses Subkontexts initialisiert.
  • In mindestens einer Ausführungsform wird dann eine Logik ausgeführt, um zu bestimmen, ob die Änderung eines Subkontexts mit einem Übergang übereinstimmt oder nicht übereinstimmt. In mindestens einer Ausführungsform kann, wenn ein Übergang ein steigender ist, ein Subkontext, dessen Wert abnimmt, disqualifiziert werden. In mindestens einer Ausführungsform wird ein Subkontext als disqualifiziert markiert, indem sein Einflussfaktor auf null gesetzt wird.
  • In mindestens einer Ausführungsform kann es in einer gegebenen Subumgebung eine Reihe von Subkontexten geben, und kann jeder Subkontext seinen eigenen Anteilsvektor und Mittelwertvektor haben, wobei sich Vektor auf eine Richtung und ein Ausmaß der Veränderung in einem jeweiligen Subkontext bezieht. Jeder Subkontext kann im Mittelwert zunehmen oder abnehmen, und diese Zunahme oder Abnahme kann unter einem Übergangsmittelwert, über dem Übergangsmittelwert oder im Übergangsmittelwert liegen. Jeder Subkontext kann auch im Gesamtanteil oder Gesamtverhältnis zunehmen oder abnehmen. In mindestens einer Ausführungsform wird ein Subkontext als eine potenzielle Ursache eines Übergangs auf der Grundlage seiner relativen Bewegung, im Mittelwert und im Verhältnis, zu diesem Übergang identifiziert. In mindestens einer Ausführungsform wird ein mit einem Subkontext verbundener Einflussfaktor auf null gesetzt, wodurch dieser Subkontext disqualifiziert wird, falls sein Vektor mit dem eines entsprechenden Übergangs fehlausgerichtet ist.
  • In mindestens einer Ausführungsform wird ein mit jedem Subkontext verbundener Einflussfaktor verwendet, um potenzielle Grundursachen für einen Übergang zu identifizieren. In mindestens einer Ausführungsform wird ein Subkontext als eine Grundursache betrachtet, falls sein prozentualer Einflussfaktor größer als ein Schwellenwert ist. Zum Beispiel wird in mindestens einer Ausführungsform ein Subkontext als eine Grundursache betrachtet, wenn sein Einflussfaktor mehr als 20% der Einflussfaktoren beträgt, die diesem Übergang zuzuordnen sind. In mindestens einer Ausführungsform kann ein Subkontext auch als eine Grundursache angesehen werden, wenn es sich um einen neuen Subkontext handelt und sein Anteil größer als ein Schwellenwert ist.
  • Bei 410 wird in mindestens einer Ausführungsform eine Subumgebungsisolierung durchgeführt. In mindestens einer Ausführungsform ist ein System mit vielen möglichen Subumgebungen assoziiert, und führt das System eine Subumgebungsisolierung durch, um zu identifizieren, welche Subumgebung am meisten mit einem Übergang assoziiert ist.
  • In mindestens einer Ausführungsform umfasst die Isolierung von Subumgebungen die Analyse einer oder mehrerer mit einem System verbundener Subumgebungen. In mindestens einer Ausführungsform werden einige Subumgebungen auf der Grundlage verschiedener Kriterien von der Analyse ausgeschlossen. In mindestens einer Ausführungsform wird eine Subumgebung basierend auf dem Informationsgewinn ausgeschlossen, der mit der Bewegung zugehöriger Subkontexte verbunden ist. Zum Beispiel wird in mindestens einer Ausführungsform eine Subumgebung ausgeschlossen, wenn alle ihrer Subkontexte entweder in überwältigendem Maße zunehmen oder in überwältigendem Maße abnehmen, weil der mit einer Subumgebung verbundene Informationsgewinn gering ist, wenn jeweilige Bewegungen der zugehörigen Subkontexte aufeinander abgestimmt sind.
  • In mindestens einer Ausführungsform wird die mittlere absolute Komplexität über alle Subkontexte in einer Umgebung berechnet. In mindestens einer Ausführungsform schließt dies Subkontexte ein, die nicht als Grundursachen identifiziert wurden. In mindestens einer Ausführungsform gibt die mittlere absolute Komplexität ein Ausmaß an Bewegung innerhalb einer Subumgebung an. In mindestens einer Ausführungsform wird eine Subumgebung mit der höchsten mittleren absoluten Komplexität ausgewählt.
  • 5 veranschaulicht einen Beispielprozess der Subkontextisolierung, gemäß mindestens einer Ausführungsform.
  • Obwohl der Beispielprozess 500 als eine Abfolge von Operationen dargestellt ist, versteht sich, dass, in Ausführungsformen, die dargestellten Operationen auf verschiedene Weisen geändert werden können, und dass einige Operationen weggelassen, neu angeordnet oder parallel mit anderen Operationen ausgeführt werden können, es sei denn, eine Reihenfolge ist ausdrücklich angegeben oder logisch impliziert, wie beispielsweise wenn die Eingabe einer Operation von der Ausgabe einer anderen Operation abhängt.
  • Die durch 5 dargestellten Operationen können von einem System, wie dem in 1 dargestellten webbasierten Dienst 102, durchgeführt werden, das mindestens einen Prozessor und einen Speicher mit Anweisungen umfasst, die in Reaktion auf ihre Ausführung durch den mindestens einen Prozessor das System veranlassen, die dargestellten Operationen durchzuführen.
  • Bei 502 wird in mindestens einer Ausführungsform ein Einflussfaktor eines Subkontextes initialisiert, basierend entweder auf einem Komplexitätswert, der mit diesem Subkontext verbunden ist, oder auf null, falls sich der Mittelwert und der Anteil dieses Subkontextes relativ zu anderen Subkontexten innerhalb einer Subumgebung nicht geändert hat.
  • Bei 504 wird in mindestens einer Ausführungsform der Einflussfaktor auf der Grundlage von relativen Änderungen an einem Mittelwert des Subkontextes angepasst oder eingestellt. In mindestens einer Ausführungsform wird ein Änderungsvektor des Subkontextes mit anderen Subkontexten innerhalb einer zugehörigen Subumgebung verglichen, wobei der Einfluss nach oben angepasst wird, wenn dieser Vektor eine größere Größe hat oder in eine andere Richtung zeigt als Änderungsvektoren anderer Subkontexte in dieser Subumgebung. In mindestens einer Ausführungsform wird der Einfluss nach unten angepasst, wenn dieser Vektor eine ähnliche Größe oder eine ähnliche Richtung wie andere Änderungsvektoren hat.
  • Bei 506 wird in mindestens einer Ausführungsform der Einflussfaktor auf der Grundlage einer relativen Änderung des Anteils des Subkontextes angepasst. In mindestens einer Ausführungsform wird der Einfluss nach oben angepasst, wenn der Anteil eines Subkontexts relativ zu anderen Subkontexten zunimmt, und nach unten, wenn der Anteil abnimmt.
  • In mindestens einer Ausführungsform, wie in Element 508 dargestellt, wird für jeden Subkontext ein Einflussfaktor berechnet.
  • Bei 510 werden in mindestens einer Ausführungsform ein oder mehrere Subkontexte auf der Grundlage der berechneten Einflussfaktoren als potenzielle Ursachen für einen Übergang ausgewählt.
  • 6 veranschaulicht einen Beispielprozess der Isolierung einer Subumgebung, gemäß mindestens einer Ausführungsform.
  • Obwohl der Beispielprozess 600 als eine Sequenz von Operationen dargestellt ist, versteht sich, dass die dargestellten Operationen in verschiedenen Weisen geändert werden können und dass einige Operationen weggelassen, neu angeordnet oder parallel zu anderen Operationen durchgeführt werden können, außer wenn eine Reihenfolge ausdrücklich angegeben oder logisch impliziert ist, z.B. wenn die Eingabe einer Operation von der Ausgabe einer anderen Operation abhängt.
  • Die in 6 dargestellten Operationen können von einem System, wie beispielsweise dem in 1 dargestellten webbasierten Dienst 102, durchgeführt werden, das mindestens einen Prozessor und einen Speicher mit Anweisungen umfasst, die in Reaktion auf ihre Ausführung durch den mindestens einen Prozessor das System veranlassen, die dargestellten Operationen durchzuführen.
  • Bei 602 werden in mindestens einer Ausführungsform Subumgebungen zur Analyse identifiziert. In mindestens einer Ausführungsform umfasst die Identifizierung ein Filtern von Subumgebungen auf der Grundlage eines oder mehrerer Kriterien. In mindestens einer Ausführungsform umfasst das Kriterium die Verfügbarkeit von Daten, die für eine Subumgebung um einen Übergang herum relevant sind.
  • Bei 604 wird in mindestens einer Ausführungsform der Informationsgewinn in einer Subumgebung analysiert. In mindestens einer Ausführungsform analysiert ein System den Informationsgewinn durch Vergleichen relativer Änderungen in seinen Subumgebungen. In mindestens einer Ausführungsform wird bestimmt, dass eine Subumgebung einen relativ hohen Informationsgewinn aufweist, wenn sich einer oder mehrere ihrer Subkontexte in einer Größe oder Richtung ändern, die sich signifikant von der Mehrheit anderer Subkontexte in dieser Subumgebung unterscheidet. In mindestens einer Ausführungsform wird eine Subumgebung als einen relativ niedrigen Informationsgewinn habend eingestuft, wenn sich ihre Subkontexte entweder nicht signifikant in Größe oder Richtung verändert haben oder wenn sich eine Mehrheit ihrer Subkontexte in ähnlicher Größe und Richtung verändert hat.
  • Bei 606 wird in mindestens einer Ausführungsform eine Subumgebung als potenziell mit einem Übergang verbunden abgelehnt, wenn ihr Informationsgewinn gering ist.
  • Bei 608 werden in mindestens einer Ausführungsform für eine Subumgebung, die nicht zurückgewiesen wurde, Komplexitätswerte über Subkontexte in dieser Subumgebung berechnet.
  • In mindestens einer Ausführungsform, wie durch Operation 610 dargestellt, wird jede identifizierte Subumgebung auf der Grundlage des Informationsgewinns analysiert, und wenn der Informationsgewinn geeignet hoch ist, werden Komplexitätsmaße ihre assoziierten Subkontexte berechnet.
  • Bei 612 wird in mindestens einer Ausführungsform eine Subumgebung, deren zugehörige Komplexität am höchsten ist, als eine potenzielle Ursache für einen Übergang ausgewählt. In mindestens einer Ausführungsform wird eine Subumgebung auf der Grundlage ihrer mittleren absoluten Komplexität ausgewählt, die auf der Grundlage von Komplexitätswerten berechnet wird, die mit jedem ihrer Subkontexte verbunden sind. In mindestens einer Ausführungsform wird diejenige Subumgebung ausgewählt, deren mittlere absolute Komplexität am höchsten ist.
  • 7 veranschaulicht eine beispielhafte Visualisierung der Isolierung von Subumgebungen und Subkontexten, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird ein Diagramm 700 verwendet, um die Isolierung von Subumgebungen und Subkontexten zu visualisieren. In mindestens einer Ausführungsform zeigt ein Diagramm 700, dass halbe Instanzen 80% einer Subumgebung eines Instanztyps ausmachen, und dass volle Instanzen 20% ausmachen, und dass für alle Instanzen 702 der Mittelwert 708 gestiegen ist. Außerdem hat sich ein Mittelwert, der halben Instanzen 704 zugeordnet ist, erhöht, während sich ein Mittelwert, der vollen Instanzen 706 zugeordnet ist, nicht verändert hat. Relative Anteile 710 der halben Instanzen und der vollständigen Instanzen sind unverändert, bei 20% bzw. 30%. In mindestens einer Ausführungsform ist diese Subumgebung mit einem hohen Informationsgewinn verbunden, und zwar aufgrund der Änderung des halben Instanzen zugeordneten Mittelwerts, wie durch einen Pfeil 704 angedeutet.
  • 8 veranschaulicht ein weiteres Beispiel für die Visualisierung der Isolierung von Subumgebungen und Subkontexten, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird ein Graph oder Diagramm 800 verwendet, um die Isolierung von Subumgebungen und Subkontexten zu visualisieren. In mindestens einer Ausführungsform zeigt ein Graph 800, dass halbe Instanzen 804 und volle Instanzen 806 80% bzw. 20% einer Instanztyp-Subumgebung ausmachen, verglichen mit allen Instanzen 802. Ferner zeigt der Graph 800, dass sich diese jeweiligen Anteile nicht verändert haben. Was Mittelwerte betrifft, zeigt der Graph 800, dass sich die Mittelwerte der Kennzahl oder Metrik 808 sowohl für halbe als auch für ganze Instanzen in ähnlicher Größenordnung und Richtung verändert haben. In mindestens einer Ausführungsform führt dies zu der Feststellung, dass die Subumgebung einen geringen Informationsgewinn aufweist.
  • 9 veranschaulicht ein weiteres Beispiel für die Visualisierung der Isolierung von Subumgebungen und Subkontexten, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird ein Graph 900 zur Visualisierung der Isolierung von Subumgebungen und Subkontexten verwendet. In mindestens einer Ausführungsform zeigt ein Graph 900 Änderungen des Mittelwerts und des Anteils von Subkontexten innerhalb einer Subumgebung in Bezug auf Versionsnummern. Ferner zeigt der Graph 900, dass ein Mittelwert der Kennzahl oder Metrik 908 für alle Versionen gesunken ist, wie durch einen Pfeil 902 angezeigt, und dass ein Anteil der Version „v2.0“ von 20% auf 40% gestiegen ist. Obwohl die Änderungen an den Mittelwerten 908, die den Versionen 2.0 und v1.1 zugeordnet sind, im Graphen 900 durch Elemente 904 und 906 als relativ geringfügig angezeigt werden, kann davon ausgegangen werden, dass der Graph 900 einen relativ hohen Informationsgewinn aufweist, da sich die Versionen v1.1 und v2.0 in entgegengesetzter Richtung ändern.
  • 10 veranschaulicht ein Beispiel für eine gerichtete Visualisierung eines Graphen der Isolierung und des Drilldowns von Subumgebungen und Subkontexten, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird eine Visualisierung, wie beispielsweise eine, die zu der in 10 dargestellten ähnlich ist, durch ein System erzeugt, um die Identifizierung und das Verständnis einer oder mehrerer Ursachen eines Übergangs in einer Metrik zu erleichtern.
  • In mindestens einer Ausführungsform stellt ein Element 1002 der Visualisierung 1000 eine Regression in einer Metrik M dar. In mindestens einer Ausführungsform ist das Element 1002 mit einem Element 1004 verknüpft, das eine Subumgebung darstellt, die, auf der Grundlage der hierin beschriebenen Isolierungsprozesse, als eine potenzielle Ursache für die Regression in der Metrik M identifiziert wurde. In mindestens einer Ausführungsform wurde, wie durch die Pfeile 1010a,b dargestellt, die zu einem Element 1016 führen, ein Wechsel zu einem „Halbinstanz“-Subkontext in einer Instanztyp-Subumgebung als eine potenzielle Ursache für die Regression identifiziert.
  • In mindestens einer Ausführungsform identifiziert ein Drilldown-Prozess eine als Element 1006 dargestellte Benutzerkategorie-Subumgebung, die einen „bestehenden“ Benutzerkategorie-Subkontext umfasst, der auf der Grundlage hierin beschriebener Isolierungsprozesse als eine potenzielle Ursache für die Regression identifiziert wurde. In ähnlicher Weise umfasst eine Subumgebung einer Anwendungsversion, dargestellt als ein Element 1008, einen Subkontext von „v2.1", der, basierend auf hierin beschriebenen Isolierungsprozessen, ebenfalls als eine potenzielle Ursache für die Regression in der Kennzahl oder Metrik M identifiziert wurde.
  • In mindestens einer Ausführungsform zeigt die Visualisierung 1000 Korrelationen zwischen markierten Subumgebungen und Subkontexten an. In mindestens einer Ausführungsform zeigt die Visualisierung 1000 beispielsweise, dass eine Regression in der Metrik M wahrscheinlich Halbinstanzen zugeordnet ist, die im Namen bestehender Benutzer Version 2.1 einer Anwendung ausführen. In mindestens einer Ausführungsform werden Beziehungen zwischen Subkontexten als Pfeile 1010, 1012, 1014 dargestellt. Zum Beispiel bezieht sich Pfeil 1104 auf Statistiken, die sich auf Sitzungen beziehen, die auf Halbinstanzen mit bestehenden Benutzern laufen, in Element 1018, auf Statistiken, die sich auf Sitzungen beziehen, die auf Halbinstanzen für bestehende Benutzer laufen, die Version 2.1 ausführen, in Element 2020.
  • In mindestens einer Ausführungsform umfasst ein Prozessor eine oder mehrere Schaltungen, die so konfiguriert sind, dass sie Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst mit einer oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen vergleichen.
  • In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen so konfiguriert, dass sie bestimmen, dass die Leistung des webbasierten Dienstes zurückgegangen ist, durch Erzeugen mindestens einer neu abgetasteten Zeitreihe, durch mindestens zufälliges Neuzuweisen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets der neu abgetasteten Zeitreihe. In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen ferner so konfiguriert, dass sie einen Übergangspunkt in der neu abgetasteten Zeitreihe identifizieren, zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
  • In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen so konfiguriert, dass sie eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen vergleichen.
  • In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen so konfiguriert, dass sie einen Anteil der ersten Gruppe von Benutzerinteraktionen mit einem Anteil der zweiten Gruppe von Benutzerinteraktionen vergleichen.
  • In mindestens einer Ausführungsform ist die erste Gruppe von Benutzerinteraktionen mit einer ersten Eigenschaft in einer Eigenschaftskategorie verbunden, und ist die zweite Gruppe von Benutzerinteraktionen mit einer zweiten Eigenschaft in der Eigenschaftskategorie verbunden.
  • In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen so konfiguriert, dass sie bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine wahrscheinliche Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, und zwar mindestens teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen der einen oder mehreren Leistungskennzahlen der ersten Gruppe von Benutzerinteraktionen mit der einen oder mehreren Leistungskennzahlen der zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
  • In mindestens einer Ausführungsform sind die eine oder die mehreren Schaltungen so konfiguriert, dass sie Gruppen von Benutzerinteraktionen zumindest teilweise rekursiv vergleichen, wobei jede Rekursionsebene zumindest teilweise auf einer Eigenschaftskategorie basiert, die sich von denjenigen in früheren Rekursionsebenen unterscheidet.
  • In mindestens einer Ausführungsform umfasst eine Benutzerinteraktion die Nutzung des webbasierten Dienstes durch ein mit einem Benutzer verbundenes Client-Gerät.
  • SERVER UND RECHENZENTREN
  • In den folgenden Figuren werden, ohne Beschränkung darauf, beispielhafte auf Netzwerkservern und Rechenzentren basierende Systeme dargestellt, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • 11 veranschaulicht ein verteiltes System 1100, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst das verteilte System 1100 ein oder mehrere Client-Rechengeräte 1102, 1104, 1106 und 1108, die so konfiguriert sind, dass sie eine Client-Anwendung wie beispielsweise einen Webbrowser, einen proprietären Client und/oder Variationen davon über ein oder mehrere Netzwerke 1110 ausführen und betreiben. In mindestens einer Ausführungsform kann ein Server 1112 über das Netzwerk 1110 mit entfernten Client-Computing-Vorrichtungen 1102, 1104, 1106 und 1108 kommunikativ verbunden sein.
  • In mindestens einer Ausführungsform kann der Server 1112 so angepasst sein, dass er einen oder mehrere Dienste oder Softwareanwendungen ausführt, wie z.B. Dienste und Anwendungen, die die Sitzungsaktivität eines Single Sign-On (SSO)-Zugangs über mehrere Rechenzentren hinweg verwalten können. In mindestens einer Ausführungsform kann der Server 1112 auch andere Dienste oder Softwareanwendungen bereitstellen, die nicht-virtuelle und virtuelle Umgebungen umfassen können. In mindestens einer Ausführungsform können diese Dienste als webbasierte Dienste oder Cloud-Dienste oder unter einem Software-as-a-Service (SaaS)-Modell Benutzern der von Client-Computing-Vorrichtungen 1102, 1104, 1106 und/oder 1108 angeboten werden. In mindestens einer Ausführungsform können Benutzer, die die Client-Computing-Vorrichtungen 1102, 1104, 1106 und/oder 1108 betreiben, ihrerseits eine oder mehrere Client-Anwendungen verwenden, um mit dem Server 1112 zu interagieren und die von diesen Komponenten bereitgestellten Dienste zu nutzen.
  • In mindestens einer Ausführungsform sind Softwarekomponenten 1118, 1120 und 1122 des Systems 1100 auf dem Server 1112 implementiert. In mindestens einer Ausführungsform können eine oder mehrere Komponenten des Systems 1100 und/oder von diesen Komponenten bereitgestellte Dienste auch von einem oder mehreren der Client-Computing-Vorrichtungen 1102, 1104, 1106 und/oder 1108 implementiert werden. In mindestens einer Ausführungsform können Benutzer, die Client-Computing-Vorrichtungen betreiben, dann eine oder mehrere Client-Anwendungen verwenden, um von diesen Komponenten bereitgestellte Dienste zu nutzen. In mindestens einer Ausführungsform können diese Komponenten in Hardware, Firmware, Software oder Kombinationen davon implementiert sein. Es wird angemerkt, dass verschiedene Systemkonfigurationen möglich sind, die sich von dem verteilten System 1100 unterscheiden können. Die in 11 gezeigte Ausführungsform ist daher ein Beispiel für ein verteiltes System zum Implementieren eines Ausführungssystems und ist nicht als beschränkend zu verstehen.
  • In mindestens einer Ausführungsform können die Client-Computing-Vorrichtungen 1102, 1104, 1106 und/oder 1108 verschiedene Arten von Rechensystemen umfassen. In mindestens einer Ausführungsform kann eine Client-Computing-Vorrichtung tragbare Handheld-Geräte (z.B. ein iPhone®, ein Mobiltelefon, ein iPad®, ein Rechen-Tablet, ein persönlicher digitaler Assistent (PDA)) oder tragbare Geräte (z.B. ein Google Glass® Head Mounted Display) umfassen, auf denen Software wie beispielsweise Microsoft Windows Mobile® und/oder eine Vielzahl mobiler Betriebssysteme wie beispielsweise iOS, Windows Phone, Android, Black-Berry 10, Palm OS und/oder Variationen davon laufen. In mindestens einer Ausführungsform können Vorrichtungen verschiedene Anwendungen unterstützen, wie z.B. verschiedene internetbezogene Anwendungen, E-Mail, SMS (Short Message Service)-Anwendungen, und können verschiedene andere Kommunikationsprotokolle verwenden. In mindestens einer Ausführungsform können Client-Computing-Vorrichtungen auch Universal-Personalcomputer umfassen, darunter beispielsweise Personalcomputer und/oder Laptops, auf denen verschiedene Versionen der Betriebssysteme Microsoft Windows®, Apple Macintosh® und/oder Linux laufen. In mindestens einer Ausführungsform kann es sich bei den Client-Computing-Vorrichtungen um Workstation-Computer handeln, auf denen eine Vielzahl von im Handel erhältlichen UNIX®- oder UNIX-ähnlichen Betriebssystemen läuft, einschließlich, und ohne Beschränkung darauf, einer Vielzahl von GNU/Linux-Betriebssystemen, wie z.B. Google Chrome OS. In mindestens einer Ausführungsform können Client-Computing-Vorrichtungen auch elektronische Geräte wie beispielsweise einen Thin-Client-Computer, ein internetfähiges Spielsystem (z.B. eine Microsoft Xbox-Spielkonsole mit oder ohne Kinect®-Gesteneingabegerät) und/oder ein persönliches Messaging-Gerät umfassen, die in der Lage sind, über (ein) Netzwerk(e) 1110 zu kommunizieren. Obwohl das verteilte System 1100 in 11 mit vier Client-Computing-Vorrichtungen dargestellt ist, kann jede beliebige Anzahl von Client-Computing-Vorrichtungen unterstützt werden. Andere Vorrichtungen, wie beispielsweise Vorrichtungen mit Sensoren usw., können mit dem Server 1112 interagieren.
  • In mindestens einer Ausführungsform kann (können) das (die) Netzwerk(e) 1110 in dem verteilten System 1100 ein beliebiger Netzwerktyp sein, der Datenkommunikation unter Verwendung einer Vielzahl verfügbarer Protokolle unterstützen kann, einschließlich, aber nicht beschränkt auf, TCP/IP (Transmission Control Protocol/Internet Protocol), SNA (Systems Network Architecture), IPX (Internet Packet Exchange), AppleTalk und/oder Variationen davon. In mindestens einer Ausführungsform kann es sich bei dem Netzwerk bzw. den Netzwerken 1110 um ein lokales Netzwerk (LAN), ein auf Ethernet oder Token-Ring basierendes Netzwerk, ein Weitverkehrsnetz, das Internet, ein virtuelles Netzwerk, ein virtuelles privates Netzwerk (VPN), ein Intranet, ein Extranet, ein öffentliches Telefonnetzwerk (PSTN), ein Infrarotnetzwerk, ein drahtloses Netzwerk (z.B., ein Netzwerk, das nach einem der Protokolle des Institute of Electrical and Electronics (IEEE) 802.11, Bluetooth® und/oder einem anderen drahtlosen Protokoll arbeitet), und/oder eine beliebige Kombination dieser und/oder anderer Netzwerke handeln.
  • In mindestens einer Ausführungsform kann der Server 1112 aus einem oder mehreren Universalcomputern, spezialisierten Servercomputern (z.B. PC (Personal Computer)-Servern, UNIX® -Servern, Mid-Range-Servern, Mainframe-Computern, Rack-Servern usw.), Serverfarmen, Serverclustem oder jeder anderen geeigneten Anordnung und/oder Kombination bestehen. In mindestens einer Ausführungsform kann der Server 1112 eine oder mehrere virtuelle Maschinen enthalten, auf denen virtuelle Betriebssysteme oder andere Computerarchitekturen mit Virtualisierung laufen. In mindestens einer Ausführungsform können ein oder mehrere flexible Pools von logischen Speichergeräten virtualisiert werden, um virtuelle Speichergeräte für einen Server zu verwalten. In mindestens einer Ausführungsform können virtuelle Netzwerke von Server 1112 über softwaredefinierte Netzwerke gesteuert werden. In mindestens einer Ausführungsform kann der Server 1112 so angepasst sein, dass er eine(n) oder mehrere Dienste oder Softwareanwendungen ausführen kann.
  • In mindestens einer Ausführungsform kann auf dem Server 1112 ein beliebiges Betriebssystem sowie beispielsweise ein handelsübliches Serverbetriebssystem laufen. In mindestens einer Ausführungsform kann auf dem Server 1112 auch eine Vielzahl zusätzlicher Serveranwendungen und/oder Mid-Tier-Anwendungen laufen, einschließlich HTTP-Servern (Hypertext Transport Protocol), FTP-Servern (File Transfer Protocol), CGI-Servern (Common Gateway Interface), JAVA® -Servern, Datenbankservern und/oder Variationen davon. In mindestens einer Ausführungsform gehören zu den beispielhaften Datenbankservern , ohne Beschränkung darauf, diejenigen, die im Handel von Oracle, Microsoft, Sybase, IBM (International Business Machines) und/oder deren Varianten erhältlich sind.
  • In mindestens einer Ausführungsform kann der Server 1112 eine oder mehrere Anwendungen enthalten, um Datenfeeds und/oder Ereignisaktualisierungen zu analysieren und zu konsolidieren, die von Benutzern der Client-Computing-Vorrichtungen 1102, 1104, 1106 und 1108 empfangen werden. In mindestens einer Ausführungsform können Datenfeeds und/oder Ereignisaktualisierungen unter anderem Twitter®-Feeds, Facebook®-Aktualisierungen oder Echtzeit-Aktualisierungen umfassen, die von einer oder mehreren Drittanbieter-Informationsquellen empfangen werden, sowie kontinuierliche Datenströme, die Echtzeitereignisse im Zusammenhang mit Sensordatenanwendungen, Finanztickern, Tools zur Messung der Netzwerkleistung (z.B. Netzwerküberwachungs- und Verkehrsmanagement-Anwendungen), Clickstream-Analysetools, Überwachung des Autoverkehrs und/oder Variationen davon umfassen können. In mindestens einer Ausführungsform kann der Server 1112 auch eine oder mehrere Anwendungen zur Anzeige von Datenströmen und/oder Echtzeitereignissen über eine oder mehrere Anzeigevorrichtungen der Client-Computing-Vorrichtungen 1102, 1104, 1106 und 1108 enthalten.
  • In mindestens einer Ausführungsform kann das verteilte System 1100 auch eine oder mehrere Datenbanken 1114 und 1116 enthalten. In mindestens einer Ausführungsform können die Datenbanken einen Mechanismus zum Speichern von Informationen wie Benutzerinteraktionen, Nutzungsmustern, Anpassungsregeln und anderen Informationen bereitstellen. In mindestens einer Ausführungsform können sich die Datenbanken 1114 und 1116 an verschiedenen Orten befinden. In mindestens einer Ausführungsform können sich eine oder mehrere der Datenbanken 1114 und 1116 auf einem nicht-transitorischen Speichermedium befinden, das sich lokal auf dem Server 1112 befindet (und/oder in diesem resident ist). In mindestens einer Ausführungsform können die Datenbanken 1114 und 1116 von dem Server 1112 entfernt sein und mit dem Server 1112 über eine netzwerkbasierte oder dedizierte Verbindung kommunizieren. In mindestens einer Ausführungsform können sich die Datenbanken 1114 und 1116 in einem SAN (Storage Area Network) befinden. In mindestens einer Ausführungsform können alle Dateien, die für die Ausführung der dem Server 1112 zugewiesenen Funktionen erforderlich sind, lokal auf dem Server 1112 und/oder gegebenenfalls an einem anderen Ort gespeichert werden. In mindestens einer Ausführungsform können die Datenbanken 1114 und 1116 relationale Datenbanken sein, z.B. Datenbanken, die Daten in Reaktion auf SQL-formatierte Befehle speichern, aktualisieren und abrufen können.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren angepasst, um eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind, verglichen werden. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen. In mindestens einer Ausführungsform umfasst ein webbasierter Dienst das verteilte System 1100.
  • 12 veranschaulicht ein beispielhaftes Rechenzentrum 1200, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 1200, ohne darauf beschränkt zu sein, eine Rechenzentrum-Infrastrukturschicht 1210, eine Frameworkschicht 1220, eine Softwareschicht 1230 und eine Anwendungsschicht 1240.
  • In mindestens einer Ausführungsform, wie in 12 gezeigt, kann die Rechenzentrum-Infrastrukturschicht 1210 einen Ressourcenorchestrator 1212, gruppierte Rechenressourcen 1214 und Knoten-Rechenressourcen („Knoten-C.R.s“) 1216(1)-1216(N) beinhalten, wobei „N“ eine beliebige ganze, positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-C.R.s 1216(1)-1216(N), ohne darauf beschränkt zu sein, eine beliebige Anzahl von Zentralverarbeitungseinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays („FPGAs“), Grafikprozessoren usw.), Speichervorrichtungen (z.B. dynamischer Festspeicher), Speichervorrichtungen (z.B. Solid-State- oder Festplattenlaufwerke), Netzwerk-Eingabe-/Ausgabe-Geräte („NW E/A“), Netzwerk-Switches, virtuelle Maschinen („VMs“), Leistungsmodule und Kühlmodule usw. beinhalten. In mindestens einer Ausführungsform können ein oder mehrere Knoten-C.R.s unter den Knoten-C.R.s 1216(1)-1216(N) ein Server mit einer oder mehreren der vorstehend erwähnten Rechenressourcen sein.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 1214 separate Gruppierungen von Knoten-C.R.s beinhalten, die in einem oder mehreren Racks (nicht dargestellt) untergebracht sind, oder in vielen Racks, die in Rechenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht dargestellt). Separate Gruppierungen von Knoten-C.R.s innerhalb der gruppierten Rechenressourcen 1214 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherressourcen beinhalten, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s mit CPUs oder Prozessoren in einem oder mehreren Racks gruppiert sein, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Leistungs- bzw. Stromversorgungsmodulen, Kühlmodulen und Netzwerk-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcenorchestrator 1212 einen oder mehrere Knoten-CRs 1216(1)-1216(N) und/oder gruppierte Rechenressourcen 1214 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 1212 eine Software-Design-Infrastruktur („SDI“)-Verwaltungseinheit für das Rechenzentrum 1200 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 1212 Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einer Ausführungsform, wie in 12 gezeigt, beinhaltet die Frameworkschicht 1220, ohne Beschränkung darauf, einen Job-Scheduler 1232, einen Konfigurationsmanager 1234, einen Ressourcenverwalter 1236 und ein verteiltes Dateisystem 1238. In mindestens einer Ausführungsform kann die Frameworkschicht 1220 ein Framework zur Unterstützung der Software 1252 der Softwareschicht 1230 und/oder einer oder mehrerer Anwendung(en) 1242 der Anwendungsschicht 1240 beinhalten. In mindestens einer Ausführungsform können die Software 1252 oder die Anwendung(en) 1242 jeweils webbasierte Dienstsoftware oder Anwendungen beinhalten, wie sie beispielsweise von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann die Frameworkschicht 1220 eine Art von freiem und quelloffenem Software-Webanwendungs-Framework wie Apache SparkTM (nachstehend „Spark“) sein, das ein verteiltes Dateisystem 1238 für die Verarbeitung großer Datenmengen (z.B. „Big Data“) verwenden kann, ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform kann der Job-Scheduler 1232 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Rechenzentrums 1200 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsmanager 1234 in der Lage sein, verschiedene Schichten zu konfigurieren, wie beispielsweise die Softwareschicht 1230 und die Frameworkschicht 1220, einschließlich Spark und das verteilte Dateisystem 1238 zur Unterstützung der Verarbeitung großer Datenmengen. In mindestens einer Ausführungsform kann der Ressourcenverwalter 1236 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 1238 und des Job-Schedulers 1232 gemappt oder zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen die gruppierten Rechenressourcen 1214 auf der Rechenzentrums-Infrastrukturschicht 1210 umfassen. In mindestens einer Ausführungsform kann sich der Ressourcenverwalter 936 mit dem Ressourcenorchestrator 1212 koordinieren, um diese gemappten oder zugeordneten Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 1230 enthaltene Software 1252 Software enthalten, die von mindestens Teilen der Knoten C.R.s 1216(1)-1216(N), den gruppierten Rechenressourcen 1214 und/oder dem verteilten Dateisystem 1238 der Frameworkschicht 1220 verwendet wird. Eine oder mehrere Arten von Software können Internet-Webseiten-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für Streaming-Videoinhalte umfassen, ohne darauf beschränkt zu sein.
  • In mindestens einer Ausführungsform kann (können) die in der Anwendungsschicht 1240 enthaltene(n) Anwendung(en) 1242 eine oder mehrere Arten von Anwendungen beinhalten, die von mindestens Teilen der Knoten C.R.s 1216(1)-1216(N), den gruppierten Rechenressourcen 1214 und/oder dem verteilten Dateisystem 1238 der Frameschicht 1220 verwendet werden. Mindestens eine oder mehrere Arten von Anwendungen können, ohne Beschränkung darauf, CUDA-Anwendungen, 5G-Netzwerkanwendungen, Anwendungen der künstlichen Intelligenz, Rechenzentrumsanwendungen und/oder Variationen davon umfassen.
  • In mindestens einer Ausführungsform können der Konfigurationsmanager 1234, der Ressourcenmanager 1236 und der Ressourcen-Orchestrator 1212 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren, die auf einer beliebigen Menge und Art von Daten basieren, die auf jede technisch mögliche Weise erfasst wurden. In mindestens einer Ausführungsform können selbstmodifizierende Aktionen einen Rechenzentrumsbetreiber des Rechenzentrums 1200 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Rechenzentrums zu vermeiden.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren angepasst, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 13 veranschaulicht ein Client-Server-Netzwerk 1304, das durch eine Vielzahl von Netzwerk-Server-Computern 1302 gebildet wird, die gemäß mindestens einer Ausführungsform miteinander verbunden sind. In mindestens einer Ausführungsform speichert jeder Netzwerk-Server-Computer 1302 Daten, auf die andere Netzwerk-Server-Computer 1302 sowie Client-Computer 1306 und Netzwerke 1308, die mit einem Weitverkehrsnetzwerk 1304 verbunden sind, zugreifen können. In mindestens einer Ausführungsform kann sich die Konfiguration eines Client-Server-Netzwerks 1304 im Laufe der Zeit ändern, wenn sich Client-Computer 1306 und ein oder mehrere Netzwerke 1308 mit einem Netzwerk 1304 verbinden und davon trennen, und wenn ein oder mehrere Femleitungs-Server-Computer 1302 zu einem Netzwerk 1304 hinzugefügt oder daraus entfernt werden. In mindestens einer Ausführungsform, wenn ein Client-Computer 1306 und ein Netzwerk 1308 mit Netzwerk-Server-Computern 1302 verbunden sind, umfasst das Client-Server-Netzwerk diesen Client-Computer 1306 und das Netzwerk 1308. In mindestens einer Ausführungsform umfasst der Begriff „Computer“ jede Vorrichtung oder Maschine, die in der Lage ist, Daten zu entgegen zu nehmen, vorgeschriebene Prozesse auf Daten anzuwenden und Ergebnisse von Prozessen zu liefern.
  • In mindestens einer Ausführungsform speichert das Client-Server-Netzwerk 1304 Informationen, auf die die Netzwerk-Server-Computer 1302, die entfernten Netzwerke 1308 und die Client-Computer 1306 zugreifen können. In mindestens einer Ausführungsform bestehen die Netzwerk-Server-Computer 1302 aus Hauptrechnern, Minicomputern und/oder Mikrocomputern mit jeweils einem oder mehreren Prozessoren. In mindestens einer Ausführungsform sind die Servercomputer 1302 durch verdrahtete und/oder drahtlose Übertragungsmedien miteinander verbunden, wie beispielsweise leitende Drähte, Glasfaserkabel und/oder Mikrowellenübertragungsmedien, Satellitenübertragungsmedien oder andere leitende, optische oder elektromagnetische Wellenübertragungsmedien. In mindestens einer Ausführungsform greifen die Client-Computer 1306 über ein ähnliches drahtgebundenes oder drahtloses Übertragungsmedium auf einen Netzwerk-Server-Computer 1302 zu. In mindestens einer Ausführungsform kann ein Client-Computer 1306 über ein Modem und ein Standard-Telefonnetzwerk in ein Client-Server-Netzwerk 1304 eingebunden sein. In mindestens einer Ausführungsform können auch alternative Trägersysteme wie beispielsweise Kabel- und Satellitenkommunikationssysteme zur Verbindung mit dem Client-Server-Netzwerk 1304 verwendet werden. In mindestens einer Ausführungsform können auch andere private oder zeitlich geteilte Trägersysteme verwendet werden. In mindestens einer Ausführungsform ist das Netzwerk 1304 ein globales Informationsnetzwerk, z.B. das Internet. In mindestens einer Ausführungsform ist das Netzwerk ein privates Intranet, das ähnliche Protokolle wie beispielsweise das Internet verwendet, jedoch mit zusätzlichen Sicherheitsmaßnahmen und eingeschränkten Zugangskontrollen. In mindestens einer Ausführungsform ist das Netzwerk 1304 ein privates oder halbprivates Netzwerk, das proprietäre Kommunikationsprotokolle verwendet.
  • In mindestens einer Ausführungsform ist der Client-Computer 1306 ein beliebiger Endbenutzer-Computer und kann auch ein Großrechner, Mini-Computer oder Mikrocomputer mit einem oder mehreren Mikroprozessoren sein. In mindestens einer Ausführungsform kann der Server-Computer 1302 zeitweise als Client-Computer fungieren, der auf einen anderen Server-Computer 1302 zugreift. In mindestens einer Ausführungsform kann das entfernte Netzwerk 1308 ein lokales Netzwerk, ein Netzwerk, das über einen unabhängigen Internet-Dienstanbieter (ISP) zu einem Weitverkehrsnetzwerk hinzugefügt wurde, oder eine andere Gruppe von Computern sein, die durch verdrahtete oder drahtlose Übertragungsmedien miteinander verbunden sind und eine feste oder sich im Laufe der Zeit ändernde Konfiguration aufweisen. In mindestens einer Ausführungsform können sich die Client-Computer 1306 unabhängig oder über ein entferntes Netzwerk 1308 mit einem Netzwerk 1304 verbinden und darauf zugreifen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren angepasst, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 14 veranschaulicht ein Computernetzwerk 1408, das einen oder mehrere Rechenmaschinen verbindet, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Netzwerk 1408 eine beliebige Art von elektronisch verbundener Gruppe von Computern sein, einschließlich z.B. der folgenden Netzwerke: Internet, Intranet, Local Area Networks (LAN), Wide Area Networks (WAN) oder eine zusammengeschaltete Kombination dieser Netzwerktypen. In mindestens einer Ausführungsform kann die Konnektivität innerhalb eines Netzwerks 1408 ein Fernmodem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distributed Datalink Interface (FDDI), Asynchronous Transfer Mode (ATM) oder ein anderes Kommunikationsprotokoll sein. In mindestens einer Ausführungsform kann es sich bei den mit einem Netzwerk verbundenen Computervorrichtungen um Desktops, Server, tragbare Geräte, Handhelds, Set-Top-Boxen, persönliche digitale Assistenten (PDA), Terminals oder jede andere gewünschte Art oder Konfiguration handeln. In mindestens einer Ausführungsform können netzwerkverbundene Vorrichtungen je nach ihrer Funktionalität in Bezug auf Verarbeitungsleistung, internen Speicher und andere Leistungsaspekte stark variieren. In mindestens einer Ausführungsform kann die Kommunikation innerhalb eines Netzwerks und zu oder von an ein Netzwerk angeschlossenen Computervorrichtungen entweder drahtgebunden oder drahtlos erfolgen. In mindestens einer Ausführungsform kann das Netzwerk 1408 zumindest teilweise das weltweite öffentliche Internet umfassen, das im Allgemeinen eine Vielzahl von Benutzern gemäß einem Client-Server-Modell gemäß einer TCP/IP (Transmission Control Protocol/Internet Protocol)-Spezifikation miteinander verbindet. In mindestens einer Ausführungsform ist das Client-Server-Netzwerk ein vorherrschendes Modell für die Kommunikation zwischen zwei Computern. In mindestens einer Ausführungsform gibt ein Client-Computer („Client“) einen oder mehrere Befehle an einen Server-Computer („Server“). In mindestens einer Ausführungsform führt der Server die Befehle des Clients aus, indem er auf verfügbare Netzwerkressourcen zugreift und Informationen entsprechend den Befehlen des Clients an diesen zurückgibt. In mindestens einer Ausführungsform wird Client-Computersystemen und Netzwerkressourcen, die sich auf Netzwerkservern befinden, eine Netzwerkadresse zur Identifizierung während der Kommunikation zwischen Elementen eines Netzwerks zugewiesen. In mindestens einer Ausführungsform enthalten Kommunikationen von anderen mit dem Netzwerk verbundenen Systemen zu Servern eine Netzwerkadresse eines relevanten Servers/einer Netzwerkressource als Teil der Kommunikation, so dass ein geeignetes Ziel von Daten/einer Anfrage als Empfänger identifiziert wird. In mindestens einer Ausführungsform, wenn ein Netzwerk 1408 das globale Internet umfasst, ist eine Netzwerkadresse eine IP-Adresse in einem TCP/IP-Format, die zumindest teilweise Daten an ein E-Mail-Konto, eine Website oder ein anderes Internet-Werkzeug auf einem Server weiterleiten kann. In mindestens einer Ausführungsform können Informationen und Dienste, die sich resident auf Netzwerkservern befinden, für einen Webbrowser eines Client-Computers über einen Domänennamen (z.B. www.site.com) verfügbar sein, der auf eine IP-Adresse eines Netzservers abbildet.
  • In mindestens einer Ausführungsform ist eine Vielzahl von Clients 1402, 1404 und 1406 über entsprechende Kommunikationsverbindungen mit einem Netzwerk 1408 verbunden. In mindestens einer Ausführungsform kann jeder dieser Clients über eine beliebige Kommunikationsform auf ein Netzwerk 1408 zugreifen, beispielsweise über eine Einwahlmodemverbindung, eine Kabelverbindung, eine digitale Teilnehmerleitung (DSL), eine drahtlose oder eine Satellitenverbindung oder eine andere Kommunikationsform. In mindestens einer Ausführungsform kann jeder Client über ein beliebiges, mit dem Netzwerk 1408 kompatibles Gerät kommunizieren, z.B. über einen Personal Computer (PC), eine Workstation, ein spezielles Terminal, einen Personal Data Assistant (PDA) oder andere ähnliche Geräte. In mindestens einer Ausführungsform können sich die Clients 1402, 1404 und 1406 in demselben geografischen Gebiet befinden oder auch nicht.
  • In mindestens einer Ausführungsform ist eine Vielzahl von Servern 1410, 1412 und 1414 mit einem Netzwerk 1408 verbunden, um Clients zu bedienen, die mit dem Netzwerk 1408 in Verbindung stehen. In mindestens einer Ausführungsform ist jeder Server typischerweise ein leistungsfähiger Computer oder ein Gerät, das Netzwerkressourcen verwaltet und auf Client-Befehle antwortet. In mindestens einer Ausführungsform umfassen die Server computerlesbare Datenspeichermedien wie beispielsweise Festplattenlaufwerke und RAM-Speicher, die Programmanweisungen und Daten speichern. In mindestens einer Ausführungsform führen die Server 1410, 1412, 1414 Anwendungsprogramme aus, die auf Client-Befehle reagieren. In mindestens einer Ausführungsform kann auf dem Server 1410 eine Webserver-Anwendung laufen, um auf Client-Anforderungen für HTML-Seiten zu reagieren, und kann er auch eine Mailserver-Anwendung ausführen, um elektronische Post zu empfangen und weiterzuleiten. In mindestens einer Ausführungsform können auf einem Server 1410 auch andere Anwendungsprogramme laufen, wie z.B. ein FTP-Server oder ein Medienserver zum Streaming von Audio-/Videodaten an Clients. In mindestens einer Ausführungsform können verschiedene Server zur Durchführung unterschiedlicher Aufgaben eingesetzt werden. In mindestens einer Ausführungsform kann der Server 1410 ein dedizierter Webserver sein, der Ressourcen im Zusammenhang mit Websites für verschiedene Benutzer verwaltet, während ein Server 1412 für die Verwaltung der elektronischen Post (E-Mail) zuständig sein kann. In mindestens einer Ausführungsform können andere Server für Medien (Audio, Video usw.), das Dateiübertragungsprotokoll (FTP) oder eine Kombination aus zwei oder mehr Diensten, die typischerweise über ein Netzwerk verfügbar sind oder bereitgestellt werden, vorgesehen sein. In mindestens einer Ausführungsform kann sich jeder Server an einem Standort befinden, der sich von dem anderer Server unterscheidet oder mit diesem identisch ist. In mindestens einer Ausführungsform kann es mehrere Server geben, die gespiegelte Aufgaben für die Benutzer ausführen, wodurch eine Überlastung vermieden oder der Verkehr zu und von einem einzelnen Server minimiert wird. In mindestens einer Ausführungsform stehen die Server 1410, 1412, 1414 unter der Kontrolle eines Web-Hosting-Anbieters, der sich mit der Pflege und Bereitstellung von Drittanbieterinhalten über ein Netzwerk 1408 beschäftigt.
  • In mindestens einer Ausführungsform stellen Webhosting-Anbieter Dienste für zwei verschiedene Arten von Clients bereit. In mindestens einer Ausführungsform fordert ein Typ, der als ein Browser bezeichnet werden kann, Inhalte von Servern 1410, 1412, 1414 an, z.B. Webseiten, E-Mail-Nachrichten, Videoclips usw. In mindestens einer Ausführungsform mietet ein zweiter Typ, der als ein Benutzer bezeichnet werden kann, einen Webhosting-Anbieter, um eine Netzwerkressource wie beispielsweise eine Website zu pflegen und sie Browsern zur Verfügung zu stellen. In mindestens einer Ausführungsform schließen Benutzer einen Vertrag mit einem Webhosting-Anbieter ab, um Speicherplatz, Prozessorkapazität und Kommunikationsbandbreite für ihre gewünschte Netzwerkressource gemäß der Menge an Serverressourcen, die ein Benutzer zu nutzen wünscht, zur Verfügung zu stellen.
  • In mindestens einer Ausführungsform müssen Anwendungsprogramme, die von Servern gehostete Netzwerkressourcen verwalten, ordnungsgemäß konfiguriert werden, damit ein Webhostinganbieter Dienste für beide dieser Clients bereitstellen kann. In mindestens einer Ausführungsform umfasst der Prozess der Programmkonfiguration die Definition einer Reihe von Parametern, die zumindest teilweise die Reaktion eines Anwendungsprogramms auf Browseranfragen steuern und die auch zumindest teilweise die für einen bestimmten Benutzer verfügbaren Serverressourcen definieren.
  • In einer Ausführungsform steht ein Intranetserver 1416 über eine Kommunikationsverbindung mit einem Netzwerk 1408 in Verbindung. In mindestens einer Ausführungsform steht der Intranetserver 1416 mit einem Servermanager 1418 in Verbindung. In mindestens einer Ausführungsform umfasst der Servermanager 1418 eine Datenbank mit Konfigurationsparametern eines Anwendungsprogramms, die in den Servern 1410, 1412, 1414 verwendet werden. In mindestens einer Ausführungsform ändern Benutzer eine Datenbank 1420 über ein Intranet 1416, und interagiert ein Servermanager 1418 mit Servern 1410, 1412, 1414, um Anwendungsprogrammparameter so zu ändern, dass sie mit einem Inhalt einer Datenbank übereinstimmen. In mindestens einer Ausführungsform meldet sich ein Benutzer bei einem Intranetserver 1416 an, indem er über den Computer 1402 eine Verbindung zum Intranet 1416 herstellt und Authentifizierungsinformationen, wie z.B. einen Benutzernamen und ein Passwort, eingibt.
  • In mindestens einer Ausführungsform, wenn ein Benutzer sich für einen neuen Dienst anmelden oder einen bestehenden Dienst ändern möchte, authentifiziert ein Intranetserver 1416 einen Benutzer und stellt dem Benutzer eine interaktive Bildschirmanzeige/Steuertafel zur Verfügung, die dem Benutzer den Zugriff auf Konfigurationsparameter für ein bestimmtes Anwendungsprogramm ermöglicht. In mindestens einer Ausführungsform wird dem Benutzer eine Reihe von veränderbaren Textfeldern angezeigt, die Aspekte der Konfiguration der Website des Benutzers oder einer anderen Netzwerkressource beschreiben. Wenn ein Benutzer den auf einem Server für seine Website reservierten Speicherplatz vergrößern möchte, wird ihm in mindestens einer Ausführungsform ein Feld angezeigt, in dem er den gewünschten Speicherplatz angibt. In mindestens einer Ausführungsform aktualisiert ein Intranet-Server 1416 in Reaktion auf den Erhalt dieser Informationen eine Datenbank 1420. In mindestens einer Ausführungsform leitet der Servermanager 1418 diese Informationen an einen geeigneten Server weiter, und wird ein neuer Parameter während des Betriebs des Anwendungsprogramms verwendet. In mindestens einer Ausführungsform ist ein Intranetserver 1416 so konfiguriert, dass er Benutzern den Zugang zu Konfigurationsparametern von gehosteten Netzwerkressourcen (z.B. Webseiten, E-Mail, FTP-Sites, Mediensites usw.) ermöglicht, für die ein Benutzer einen Vertrag mit einem Webhosting-Dienstanbieter abgeschlossen hat.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 15A veranschaulicht ein vernetztes Computersystem 1500A, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst das vernetzte Computersystem 1500A eine Vielzahl von Knoten oder Personalcomputern („PCs“) 1502, 1518, 1520. In mindestens einer Ausführungsform umfasst der Personalcomputer oder Knoten 1502 einen Prozessor 1514, einen Speicher 1516, eine Videokamera 1504, ein Mikrofon 1506, eine Maus 1508, Lautsprecher 1510 und einen Monitor 1512. In mindestens einer Ausführungsform können die PCs 1502, 1518, 1520 jeweils einen oder mehrere Desktop-Server eines internen Netzwerks innerhalb eines bestimmten Unternehmens betreiben oder Server eines allgemeinen Netzwerks sein, das nicht auf eine bestimmte Umgebung beschränkt ist. In mindestens einer Ausführungsform gibt es einen Server pro PC-Knoten eines Netzwerks, so dass jeder PC-Knoten eines Netzwerks einen bestimmten Netzwerkserver mit einer bestimmten Netzwerk-URL-Adresse repräsentiert. In mindestens einer Ausführungsform zeigt jeder Server standardmäßig eine Standard-Webseite für den Benutzer dieses Servers an, die ihrerseits eingebettete URLs enthalten kann, die auf weitere Unterseiten dieses Benutzers auf diesem Server oder auf andere Server oder Seiten auf anderen Servern in einem Netzwerk verweisen.
  • In mindestens einer Ausführungsform sind Knoten 1502, 1518, 1520 und andere Knoten eines Netzwerks über ein Medium 1522 miteinander verbunden. In mindestens einer Ausführungsform kann das Medium 1522 ein Kommunikationskanal wie z.B. ein dienstintegrierendes digitales Netzwerk („ISDN“) sein. In mindestens einer Ausführungsform können verschiedene Knoten eines vernetzten Computersystems über eine Vielzahl von Kommunikationsmedien verbunden sein, einschließlich lokaler Netzwerke („LANs“), einfacher alter Telefonleitungen („POTS“), die manchmal auch als öffentliches Telefonnetzwerk („PSTN“) bezeichnet werden, und/oder Varianten davon. In mindestens einer Ausführungsform können verschiedene Knotenpunkte eines Netzwerks auch Computersystembenutzer darstellen, die über ein Netzwerk wie beispielsweise das Internet miteinander verbunden sind. In mindestens einer Ausführungsform hat jeder Server in einem Netzwerk (der zu einem bestimmten Zeitpunkt von einem bestimmten Knoten eines Netzwerks aus betrieben wird) eine eindeutige Adresse oder Identifikation innerhalb eines Netzwerks, die in Form einer URL angegeben werden kann.
  • In mindestens einer Ausführungsform kann daher eine Vielzahl von Mehrpunkt-Konferenzeinheiten („MCUs“) verwendet werden, um Daten zu und von verschiedenen Knoten oder „Endpunkten“ eines Konferenzsystems zu übertragen. In mindestens einer Ausführungsform können die Knoten und/oder MCUs über eine ISDN-Verbindung oder über ein lokales Netzwerk („LAN“) miteinander verbunden sein, zusätzlich zu verschiedenen anderen Kommunikationsmedien wie Knoten, die über das Internet verbunden sind. In mindestens einer Ausführungsform können die Knoten eines Konferenzsystems im Allgemeinen direkt mit einem Kommunikationsmedium wie beispielsweise einem LAN oder über eine MCU verbunden sein, und kann ein Konferenzsystem weitere Knoten oder Elemente wie beispielsweise Router, Server und/oder Varianten davon umfassen.
  • In mindestens einer Ausführungsform ist der Prozessor 1514 ein programmierbarer Universalprozessor. In mindestens einer Ausführungsform können die Prozessoren der Knoten des vernetzten Computersystems 1500A auch spezielle Videoprozessoren sein. In mindestens einer Ausführungsform können sich verschiedene Peripheriegeräte und Komponenten eines Knotens, wie die des Knotens 1502, von denen anderer Knoten unterscheiden. In mindestens einer Ausführungsform können der Knoten 1518 und der Knoten 1520 identisch oder anders als der Knoten 1502 konfiguriert sein. In mindestens einer Ausführungsform kann ein Knoten auf jedem geeigneten Computersystem zusätzlich zu PC-Systemen implementiert sein.
  • 15B veranschaulicht ein vernetztes Computersystem 1500B, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform zeigt das System 1500B ein Netzwerk wie LAN 1524, das dazu verwendet werden kann, eine Vielzahl von Knoten miteinander zu verbinden, die miteinander kommunizieren können. In mindestens einer Ausführungsform ist an das LAN 1524 eine Vielzahl von Knoten, wie beispielsweise die PC-Knoten 1526, 1528, 1530, angeschlossen. In mindestens einer Ausführungsform kann ein Knoten auch über einen Netzwerkserver oder andere Mittel mit dem LAN verbunden sein. In mindestens einer Ausführungsform umfasst das System 1500B andere Arten von Knoten oder Elementen, zum Beispiel Router, Server und Knoten.
  • 15C veranschaulicht ein vernetztes Computersystem 1500C, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform veranschaulicht das System 1500C ein WWW-System, das über ein Backbone-Kommunikationsnetzwerk wie beispielsweise das Internet 1532 kommuniziert, das verwendet werden kann, um eine Vielzahl von Knoten eines Netzwerks miteinander zu verbinden. In mindestens einer Ausführungsform ist das WWW eine Reihe von Protokollen, die auf dem Internet arbeiten und es einem grafischen Schnittstellensystem ermöglichen, darauf zu arbeiten, um auf Informationen über das Internet zuzugreifen. In mindestens einer Ausführungsform ist an das Internet 1532 im WWW eine Vielzahl von Knotenpunkten wie beispielsweise PCs 1540, 1542, 1544 angeschlossen. In mindestens einer Ausführungsform ist ein Knoten mit anderen Knoten des WWW über einen WWW-HTTP-Server wie beispielsweise die Server 1534, 1536 verbunden. In mindestens einer Ausführungsform kann PC 1544 ein PC sein, der einen Knoten des Netzwerks 1532 bildet und selbst seinen Server 1536 betreibt, obwohl PC 1544 und Server 1536 in 15C zur Veranschaulichung getrennt dargestellt sind.
  • In mindestens einer Ausführungsform ist das WWW eine Art verteilter Anwendung, die durch das WWW-Protokoll HTTP gekennzeichnet ist, das auf dem Internet-Übertragungssteuerungsprotokoll/Internetprotokoll („TCP/IP“) aufbaut. In mindestens einer Ausführungsform kann das WWW also durch eine Reihe von Protokollen (d.h. HTTP) gekennzeichnet sein, die im Internet als dessen „Backbone“ laufen.
  • In mindestens einer Ausführungsform ist ein Webbrowser eine Anwendung, die auf einem Knoten eines Netzwerks läuft und es in WWW-kompatiblen Netzwerksystemen Benutzern eines bestimmten Servers oder Knotens ermöglicht, solche Informationen einzusehen, und die es so einem Benutzer ermöglicht, grafische und textbasierte Dateien zu durchsuchen, die über Hypertext-Links miteinander verknüpft sind, die in Dokumente oder Dateien eingebettet sind, die von Servern in einem Netzwerk verfügbar sind, die HTTP verstehen. In mindestens einer Ausführungsform, wenn eine bestimmte Webseite eines ersten Servers, der mit einem ersten Knoten verbunden ist, von einem Benutzer über einen anderen Server in einem Netzwerk wie beispielsweise dem Internet abgerufen wird, kann ein abgerufenes Dokument verschiedene darin eingebettete Hypertext-Links haben, und wird eine lokale Kopie einer Seite lokal für einen abrufenden Benutzer erstellt. Wenn ein Benutzer auf einen Hypertext-Link klickt, reichen in mindestens einer Ausführungsform die lokal gespeicherten Informationen, die sich auf einen ausgewählten Hypertext-Link beziehen, in der Regel aus, um dem Rechner des Benutzers zu ermöglichen, eine Verbindung über das Internet zu einem durch einen Hypertext-Link angegebenen Server zu öffnen.
  • In mindestens einer Ausführungsform kann mehr als ein Benutzer mit jedem HTTP-Server verbunden sein, z.B. über ein LAN wie beispielsweise ein LAN 1538, wie im Zusammenhang mit dem WWW-HTTP-Server 1534 veranschaulicht. In mindestens einer Ausführungsform kann das System 1500C auch andere Arten von Knoten oder Elementen umfassen. In mindestens einer Ausführungsform ist ein WWW-HTTP-Server eine Anwendung, die auf einem Rechner, wie z.B. einem PC, läuft. In mindestens einer Ausführungsform kann jeder Benutzer als ein einziger „Server“ betrachtet werden, wie in Bezug auf PC 1544 dargestellt. In mindestens einer Ausführungsform kann ein Server als ein Server wie beispielsweise der WWW-HTTP-Server 1534 angesehen werden, der den Zugang zu einem Netzwerk für ein LAN oder eine Vielzahl von Knoten oder eine Vielzahl von LANs bereitstellt. In mindestens einer Ausführungsform gibt es eine Vielzahl von Benutzern, von denen jeder einen Desktop-PC oder einen Knoten eines Netzwerks hat, wobei jeder Desktop-PC möglicherweise einen Server für einen seiner Benutzer einrichtet. In mindestens einer Ausführungsform ist jeder Server mit einer bestimmten Netzwerkadresse oder URL verbunden, die bei Zugriff eine Standard-Webseite für diesen Benutzer bereitstellt. In mindestens einer Ausführungsform kann eine Webseite weitere Links (eingebettete URLs) enthalten, die auf weitere Unterseiten dieses Benutzers auf diesem Server oder auf andere Server in einem Netzwerk oder auf Seiten auf anderen Servern in einem Netzwerk verweisen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren dazu geeignet, eine Ursache für eine Leistungsregression zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß den hierin in Bezug auf die 1-10 beschriebenen Ausführungsformen.
  • CLOUD COMPUTING UND DIENSTE
  • In den folgenden Figuren werden, ohne Beschränkung darauf, beispielhafte Cloud-basierte Systeme veranschaulicht, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • In mindestens einer Ausführungsform ist Cloud Computing eine Stil der Datenverarbeitung, bei der dynamisch skalierbare und häufig virtualisierte Ressourcen als ein Dienst über das Internet bereitgestellt werden. In mindestens einer Ausführungsform müssen die Nutzer keine Kenntnisse über die technologische Infrastruktur, die als „in der Wolke“ bezeichnet werden kann, haben, die sie unterstützt, und müssen sie auch keine Kontrolle darüber haben. In mindestens einer Ausführungsform integriert Cloud Computing Infrastruktur als Dienst, Plattform als Dienst, Software als Dienst und andere Variationen, denen gemeinsam ist, dass sie sich zur Deckung des Computerbedarfs der Nutzer auf das Internet stützen. In mindestens einer Ausführungsform kann ein typischer Cloud-Einsatz, z.B. in einer privaten Cloud (z.B. Unternehmensnetzwerk) oder einem Rechenzentrum (DC) in einer öffentlichen Cloud (z.B. Internet), aus Tausenden von Servern (oder alternativ VMs), Hunderten von Ethernet-, Fibre-Channel- oder Fibre-Channel-over-Ethernet-Ports (FCoE), Switching- und Speicherinfrastruktur usw. bestehen. In mindestens einer Ausführungsform kann die Cloud auch aus einer Infrastruktur für Netzwerkdienste wie IPsec-VPN-Hubs, Firewalls, Load Balancern, Wide Area Network (WAN)-Optimierern usw. bestehen. In mindestens einer Ausführungsform können Fernteilnehmer sicher auf Cloud-Anwendungen und -Dienste zugreifen, indem sie sich über einen VPN-Tunnel, z.B. einen IPsec-VPN-Tunnel, verbinden.
  • In mindestens einer Ausführungsform ist Cloud Computing ein Modell zur Ermöglichung eines bequemen, bedarfsgerechten Netzzugangs zu einem gemeinsam genutzten Pool konfigurierbarer Rechenressourcen (z.B. Netzwerke, Server, Speicher, Anwendungen und Dienste), die mit minimalem Verwaltungsaufwand oder minimaler Interaktion mit dem Dienstanbieter schnell bereitgestellt und freigegeben werden können.
  • In mindestens einer Ausführungsform ist Cloud Computing durch einen On-Demand-Self-Service gekennzeichnet, bei dem ein Verbraucher Rechenkapazitäten wie beispielsweise Serverzeit und Netzwerkspeicher einseitig und automatisch nach Bedarf bereitstellen kann, ohne dass eine menschliche Interaktion mit dem jeweiligen Diensteanbieter erforderlich ist. In mindestens einer Ausführungsform zeichnet sich Cloud Computing durch einen breiten Netzzugang aus, bei dem Funktionen über ein Netzwerk verfügbar sind und der Zugriff über Standardmechanismen erfolgt, die die Nutzung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) fördern. In mindestens einer Ausführungsform ist das Cloud Computing durch Ressourcenpooling gekennzeichnet, bei dem die Rechenressourcen eines Anbieters zusammengefasst werden, um mehrere Verbraucher unter Verwendung eines Multi-Tenant-Modells zu bedienen, wobei verschiedene physikalische und virtuelle Ressourcen dynamisch zugewiesen und entsprechend der Verbrauchernachfrage neu zugewiesen werden. In mindestens einer Ausführungsform besteht eine gewisse Standortunabhängigkeit, da ein Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Bundesland oder Rechenzentrum) anzugeben. In mindestens einer Ausführungsform gehören zu den Ressourcen beispielsweise Speicher, Verarbeitung, Arbeitsspeicher, Netzwerkbandbreite und virtuelle Maschinen. In mindestens einer Ausführungsform zeichnet sich Cloud Computing durch eine schnelle Elastizität aus, bei der Fähigkeiten schnell und elastisch bereitgestellt werden können, in einigen Fällen automatisch, um schnell zu skalieren und schnell freigegeben werden können, um schnell zu skalieren. In mindestens einer Ausführungsform erscheinen dem Verbraucher die für die Bereitstellung verfügbaren Fähigkeiten oft unbegrenzt und können jederzeit in beliebiger Menge erworben werden. In mindestens einer Ausführungsform zeichnet sich Cloud Computing durch einen gemessenen Dienst aus, bei dem Cloud-Systeme die Ressourcennutzung automatisch steuern und optimieren, indem sie eine Messfunktion auf einer für die Art des Dienstes geeigneten Abstraktionsebene nutzen (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). In mindestens einer Ausführungsform kann die Ressourcennutzung überwacht, kontrolliert und gemeldet werden, was sowohl für den Anbieter als auch für den Nutzer eines genutzten Dienstes Transparenz schafft.
  • In mindestens einer Ausführungsform kann Cloud Computing mit verschiedenen Diensten verbunden sein. In mindestens einer Ausführungsform kann sich Cloud Software as a Service (SaaS) auf einen Dienst beziehen, bei dem ein Verbraucher die Möglichkeit hat, die Anwendungen eines Anbieters zu nutzen, die in einer Cloud-Infrastruktur laufen. In mindestens einer Ausführungsform sind die Anwendungen von verschiedenen Client-Geräten über eine Thin-Client-Schnittstelle wie beispielsweise einen Webbrowser (z.B. webbasierte E-Mail) zugänglich. In mindestens einer Ausführungsform verwaltet oder steuert der Verbraucher die zugrunde liegende Cloud-Infrastruktur einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder sogar einzelne Anwendungsfunktionen nicht, mit einer möglichen Ausnahme begrenzter benutzerspezifischer Anwendungskonfigurationseinstellungen.
  • In mindestens einer Ausführungsform kann sich Cloud Platform as a Service (PaaS) auf einen Dienst beziehen, bei dem eine einem Verbraucher zur Verfügung gestellte Fähigkeit darin besteht, vom Verbraucher erstellte oder erworbene Anwendungen, die mit von einem Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. In mindestens einer Ausführungsform verwaltet oder kontrolliert der Kunde nicht die zugrunde liegende Cloud-Infrastruktur, einschließlich Netze, Server, Betriebssysteme oder Speicher, sondern hat die Kontrolle über die bereitgestellten Anwendungen und möglicherweise die Konfigurationen der Anwendungshosting-Umgebung.
  • In mindestens einer Ausführungsform kann sich Cloud Infrastructure as a Service (IaaS) auf einen Dienst beziehen, bei dem einem Verbraucher die Möglichkeit geboten wird, Verarbeitungs-, Speicher-, Netzwerk- und andere grundlegende Rechenressourcen bereitzustellen, auf denen ein Verbraucher beliebige Software einsetzen und ausführen kann, die Betriebssysteme und Anwendungen umfassen kann. In mindestens einer Ausführungsform verwaltet oder kontrolliert der Verbraucher die zugrunde liegende Cloud-Infrastruktur nicht, sondern hat die Kontrolle über Betriebssysteme, Speicher, bereitgestellte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • In mindestens einer Ausführungsform kann Cloud Computing auf verschiedene Weise eingesetzt werden. In mindestens einer Ausführungsform kann sich eine private Cloud auf eine Cloud-Infrastruktur beziehen, die ausschließlich für eine Organisation betrieben wird. In mindestens einer Ausführungsform kann eine private Cloud von einer Organisation oder einem Dritten verwaltet werden und kann sowohl vor Ort als auch außerhalb von Gebäuden existieren. In mindestens einer Ausführungsform kann sich eine Community Cloud auf eine Cloud-Infrastruktur beziehen, die von mehreren Organisationen gemeinsam genutzt wird und eine bestimmte Community unterstützt, die gemeinsame Anliegen hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien und Compliance-Überlegungen). In mindestens einer Ausführungsform kann eine Community-Cloud von Organisationen oder einem Dritten verwaltet werden und sowohl vor Ort als auch außerhalb von Gebäuden existieren. In mindestens einer Ausführungsform kann sich eine öffentliche Cloud auf eine Cloud-Infrastruktur beziehen, die der Allgemeinheit oder einer großen Industriegruppe zur Verfügung gestellt wird und sich im Besitz einer Organisation befindet, die Cloud-Dienste anbietet. In mindestens einer Ausführungsform kann sich eine hybride Cloud auf eine Cloud-Infrastruktur beziehen, die aus zwei oder mehr Clouds (privat, gemeinschaftlich oder öffentlich) besteht, die zwar eigenständige Einheiten bleiben, aber durch standardisierte oder proprietäre Technologien miteinander verbunden sind, die die Übertragbarkeit von Daten und Anwendungen ermöglichen (z.B. Cloud Bursting zum Lastausgleich zwischen Clouds). In mindestens einer Ausführungsform ist eine Cloud-Computing-Umgebung serviceorientiert und legt den Schwerpunkt auf Zustandslosigkeit, geringe Kopplung, Modularität und semantische Interoperabilität.
  • 16 veranschaulicht eine oder mehrere Komponenten einer Systemumgebung 1600, in der Dienste als Drittanbieter-Netzwerkdienste angeboten werden können, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann ein Drittanbieternetzwerk als eine Cloud, ein Cloud-Netzwerk, ein Cloud-Computing-Netzwerk und/oder Variationen davon bezeichnet werden. In mindestens einer Ausführungsform umfasst die Systemumgebung 1600 ein oder mehrere Client-Computing-Vorrichtungen 1604, 1606 und 1608, die von Benutzern verwendet werden können, um mit einem Drittanbieter-Netzwerkinfrastruktursystem 1602 zu interagieren, das Drittanbieter-Netzwerkdienste bereitstellt, die als Cloud-Computing-Dienste bezeichnet werden können. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 einen oder mehrere Computer und/oder Server umfassen.
  • Es versteht sich, dass das in 16 dargestellte Drittanbieter-Netzwerkinfrastruktursystem 1602 andere als die dargestellten Komponenten aufweisen kann. Darüber hinaus zeigt 16 eine Ausführungsform eines Drittanbieter-Netzwerkinfrastruktursystems. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 mehr oder weniger Komponenten als in 16 dargestellt aufweisen, zwei oder mehr Komponenten kombinieren oder eine andere Konfiguration oder Anordnung von Komponenten haben.
  • In mindestens einer Ausführungsform können die Client-Computing-Vorrichtungen 1604, 1606 und 1608 so konfiguriert sein, dass sie eine Client-Anwendung wie beispielsweise einen Webbrowser, eine proprietäre Client-Anwendung oder eine andere Anwendung betreiben, die von einem Benutzer einer Client-Computing-Vorrichtung verwendet werden kann, um mit dem Drittanbieter-Netzwerkinfrastruktursystem 1602 zu interagieren, um die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellten Dienste zu nutzen. Obwohl die beispielhafte Systemumgebung 1600 mit drei Client-Computing-Vorrichtungen gezeigt ist, kann jede beliebige Anzahl von Client-Computing-Vorrichtungen unterstützt werden. In mindestens einer Ausführungsform können andere Vorrichtungen, wie z.B. Vorrichtungen mit Sensoren usw., mit dem Drittanbieter-Netzwerkinfrastruktursystem 1602 interagieren. In mindestens einer Ausführungsform kann/können das/die Netzwerk(e) 1610 die Kommunikation und den Datenaustausch zwischen den Client-Computing-Vorrichtungen 1604, 1606 und 1608 und dem Drittanbieter-Netzwerkinfrastruktursystem 1602 erleichtern.
  • In mindestens einer Ausführungsform können die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellten Dienste eine Vielzahl von Diensten umfassen, die den Benutzern eines Drittanbieter-Netzwerkinfrastruktursystems auf Anfrage zur Verfügung gestellt werden. In mindestens einer Ausführungsform können auch verschiedene Dienste angeboten werden, darunter, ohne Beschränkung darauf, Online-Datenspeicher- und Datensicherungslösungen, webbasierte E-Mail-Dienste, gehostete Office-Suiten und Dienste für die Zusammenarbeit mit Dokumenten, Datenbankmanagement und -verarbeitung, verwaltete technische Unterstützungsdienste und/oder Variationen davon. In mindestens einer Ausführungsform können die von einem Drittanbieter-Netzwerkinfrastruktursystem bereitgestellten Dienste dynamisch skaliert werden, um den Bedürfnissen der Nutzer gerecht zu werden.
  • In mindestens einer Ausführungsform kann eine spezifische Instanziierung eines Dienstes, der von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellt wird, als eine „Dienstinstanz“ bezeichnet werden. In mindestens einer Ausführungsform wird im Allgemeinen jeder Dienst, der einem Benutzer über ein Kommunikationsnetz, z.B. das Internet, von einem System eines Netzwerkdienste-Drittanbieters zur Verfügung gestellt wird, als ein „Drittanbieter-Netzwerkdienst“ bezeichnet. In mindestens einer Ausführungsform unterscheiden sich in einer öffentlichen Netzwerkumgebung die Server und Systeme, aus denen das System eines Netzwerkbetreibers besteht, von den eigenen Servern und Systemen des Kunden vor Ort. In mindestens einer Ausführungsform kann das System eines Drittanbieters von Netzwerkdiensten eine Anwendung hosten, und ein Benutzer kann über ein Kommunikationsnetzwerk wie beispielsweise das Internet bei Bedarf eine Anwendung bestellen und nutzen.
  • In mindestens einer Ausführungsform kann ein Dienst in einer Computernetzwerk-Infrastruktur eines Drittanbieters einen geschützten Computernetzwerkzugang zu einem Speicher, einer gehosteten Datenbank, einem gehosteten Webserver, einer Softwareanwendung oder einem anderen Dienst umfassen, der von einem Anbieter eines Drittanbieternetzwerks für einen Benutzer bereitgestellt wird. In mindestens einer Ausführungsform kann ein Dienst einen passwortgeschützten Zugang zu einem entfernten Speicher in einem Drittanbieternetzwerk über das Internet umfassen. In mindestens einer Ausführungsform kann ein Dienst eine webdienstbasierte, gehostete relationale Datenbank und eine skriptsprachliche Middleware-Engine für die private Nutzung durch einen vernetzten Entwickler umfassen. In mindestens einer Ausführungsform kann ein Dienst den Zugang zu einer E-Mail-Softwareanwendung umfassen, die auf der Website eines Drittanbieters gehostet wird.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 eine Reihe von Anwendungen, Middleware und Datenbankdienstangeboten umfassen, die einem Kunden in einer Selbstbedienung, auf Abonnementbasis, elastisch skalierbar, zuverlässig, hochverfügbar und sicher bereitgestellt werden. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 auch „Big Data“-bezogene Berechnungs- und Analysedienste bereitstellen. In mindestens einer Ausführungsform wird der Begriff „Big Data“ allgemein verwendet, um sich auf extrem große Datensätze zu beziehen, die von Analysten und Forschern gespeichert und manipuliert werden können, um große Datenmengen zu visualisieren, Trends zu erkennen und/oder anderweitig mit Daten zu interagieren. In mindestens einer Ausführungsform können Big Data und zugehörige Anwendungen von einem Infrastruktursystem auf vielen Ebenen und in verschiedenen Maßstäben gehostet und/oder bearbeitet werden. In mindestens einer Ausführungsform können Dutzende, Hunderte oder Tausende von parallel verbundenen Prozessoren auf solche Daten einwirken, um sie darzustellen oder externe Kräfte auf die Daten oder das, was sie darstellen, zu simulieren. In mindestens einer Ausführungsform können diese Datensätze strukturierte Daten, wie z.B. in einer Datenbank oder anderweitig nach einem strukturierten Modell organisierte Daten, und/oder unstrukturierte Daten (z.B. E-Mails, Bilder, Datenblöcke (binäre große Objekte), Webseiten, komplexe Ereignisverarbeitung) umfassen. In mindestens einer Ausführungsform kann ein Drittanbieter-Netzwerkinfrastruktursystem durch die Nutzung der Fähigkeit einer Ausführungsform, relativ schnell mehr (oder weniger) Rechenressourcen auf ein Ziel zu konzentrieren, besser verfügbar sein, um Aufgaben an großen Datensätzen auf der Grundlage der Nachfrage eines Unternehmens, einer Regierungsbehörde, einer Forschungsorganisation, einer Privatperson, einer Gruppe gleichgesinnter Personen oder Organisationen oder einer anderen Einrichtung auszuführen.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 so angepasst sein, dass es das Abonnement eines Kunden für die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 angebotenen Dienste automatisch bereitstellt, verwaltet und verfolgt. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 Netzwerkdienste von Drittanbietern über verschiedene Bereitstellungsmodelle anbieten. In mindestens einer Ausführungsform können Dienste im Rahmen eines öffentlichen Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1602 einer Organisation gehört, die Drittanbieter-Netzwerkdienste verkauft, und die Dienste einer allgemeinen Öffentlichkeit oder verschiedenen Industrieunternehmen zur Verfügung gestellt werden. In mindestens einer Ausführungsform können Dienste im Rahmen eines privaten Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1602 ausschließlich für eine einzelne Organisation betrieben wird und Dienste für eine oder mehrere Einheiten innerhalb einer Organisation bereitstellen kann. In mindestens einer Ausführungsform können Drittanbieter-Netzwerkdienste auch im Rahmen eines gemeinschaftlichen Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem das Drittanbieter-Netzwerkinfrastruktursystem 1602 und die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellten Dienste von mehreren Organisationen in einer entsprechenden Gemeinschaft gemeinsam genutzt werden. In mindestens einer Ausführungsform können Drittanbieter-Netzwerkdienste auch im Rahmen eines hybriden Drittanbieter-Netzwerkmodells bereitgestellt werden, bei dem es sich um eine Kombination aus zwei oder mehr verschiedenen Modellen handelt.
  • In mindestens einer Ausführungsform können die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellten Dienste einen oder mehrere Dienste umfassen, die unter der Kategorie „Software as a Service“ (SaaS), der Kategorie „Platform as a Service“ (PaaS), der Kategorie „Infrastructure as a Service“ (IaaS) oder anderen Kategorien von Diensten, einschließlich hybrider Dienste, bereitgestellt werden. In mindestens einer Ausführungsform kann ein Kunde über eine Abonnementbestellung einen oder mehrere Dienste bestellen, die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellt werden. In mindestens einer Ausführungsform führt das Drittanbieter-Netzwerkinfrastruktursystem 1602 dann die Verarbeitung durch, um die Dienste in der Abonnementbestellung des Kunden bereitzustellen.
  • In mindestens einer Ausführungsform können von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellten Dienste, ohne Beschränkung darauf, Anwendungsdienste, Plattformdienste und Infrastrukturdienste umfassen. In mindestens einer Ausführungsform können Anwendungsdienste von einem Drittanbieter-Netzwerkinfrastruktursystem über eine SaaS-Plattform bereitgestellt werden. In mindestens einer Ausführungsform kann die SaaS-Plattform so konfiguriert sein, dass sie Drittanbieter-Netzwerkdienste bereitstellt, die unter eine SaaS-Kategorie fallen. In mindestens einer Ausführungsform kann die SaaS-Plattform Fähigkeiten zur Erstellung und Bereitstellung einer Reihe von On-Demand-Anwendungen auf einer integrierten Entwicklungs- und Bereitstellungsplattform bereitstellen. In mindestens einer Ausführungsform kann die SaaS-Plattform die zugrunde liegende Software und Infrastruktur für die Bereitstellung von SaaS-Diensten verwalten und kontrollieren. In mindestens einer Ausführungsform können Kunden durch die Nutzung von Diensten, die von einer SaaS-Plattform bereitgestellt werden, Anwendungen nutzen, die auf einem Drittanbieter-Netzwerkinfrastruktursystem ausgeführt werden. In mindestens einer Ausführungsform können die Kunden Anwendungsdienste erwerben, ohne dass sie separate Lizenzen und Support erwerben müssen. In mindestens einer Ausführungsform können verschiedene SaaS-Dienste angeboten werden. In mindestens einer Ausführungsform umfassen Beispiele, ohne Beschränkung darauf, Dienste, die Lösungen für das Management der Vertriebsleistung, die Unternehmensintegration und die geschäftliche Flexibilität für große Organisationen bereitstellen.
  • In mindestens einer Ausführungsform können Plattformdienste von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 über eine PaaS-Plattform bereitgestellt werden. In mindestens einer Ausführungsform kann die PaaS-Plattform so konfiguriert sein, dass sie Drittanbieter-Netzwerkdienste bereitstellt, die unter eine PaaS-Kategorie fallen. In mindestens einer Ausführungsform können Beispiele von Plattformdiensten, ohne Beschränkung darauf, Dienste umfassen, die es Organisationen ermöglichen, bestehende Anwendungen auf einer gemeinsamen, gemeinsamen Architektur zu konsolidieren, sowie die Möglichkeit, neue Anwendungen zu erstellen, die von einer Plattform bereitgestellte gemeinsame Dienste nutzen. In mindestens einer Ausführungsform kann die PaaS-Plattform die zugrunde liegende Software und Infrastruktur für die Bereitstellung von PaaS-Diensten verwalten und kontrollieren. In mindestens einer Ausführungsform können Kunden PaaS-Dienste erwerben, die von einem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellt werden, ohne dass Kunden separate Lizenzen und Support erwerben müssen.
  • In mindestens einer Ausführungsform können Kunden durch die Nutzung von Diensten, die von einer PaaS-Plattform bereitgestellt werden, Programmiersprachen und Tools verwenden, die von einem Drittanbieter-Netzwerkinfrastruktursystem unterstützt werden, und auch die bereitgestellten Dienste kontrollieren. In mindestens einer Ausführungsform können die von einem Drittanbieter-Netzwerkinfrastruktursystem bereitgestellten Plattformdienste Datenbank-Drittanbieter-Netzwerkdienste, Middleware-Drittanbieter-Netzwerkdienste und Drittanbieter-Netzwerkdienste umfassen. In mindestens einer Ausführungsform können Datenbank-Drittanbieter-Netzwerkdienste gemeinsam genutzte Dienstbereitstellungsmodelle unterstützen, die es Organisationen ermöglichen, Datenbankressourcen zusammenzufassen und Kunden eine Datenbank als Dienst in Form eines Datenbank-Drittanbieter-Netzwerks anzubieten. In mindestens einer Ausführungsform können Middleware-Drittanbieter-Netzwerkdienste eine Plattform für Kunden zur Entwicklung und zum Einsatz verschiedener Geschäftsanwendungen und Drittanbieter-Netzwerkdienste eine Plattform für Kunden zum Einsatz von Anwendungen in einem Drittanbieter-Netzwerkinfrastruktursystem bereitstellen.
  • In mindestens einer Ausführungsform können verschiedene Infrastrukturdienste von einer IaaS-Plattform in einem Drittanbieter-Netzwerkinfrastruktursystem bereitgestellt werden. In mindestens einer Ausführungsform erleichtern Infrastrukturdienste die Verwaltung und Kontrolle der zugrundeliegenden Datenverarbeitungsressourcen wie Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen für Kunden, die die von einer SaaS-Plattform und einer PaaS-Plattform bereitgestellten Dienste nutzen.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 auch Infrastrukturressourcen 1630 zur Bereitstellung von Ressourcen enthalten, die zur Bereitstellung verschiedener Dienste für Kunden eines Drittanbieter-Netzwerkinfrastruktursystems verwendet werden. In mindestens einer Ausführungsform können die Infrastrukturressourcen 1630 vorintegrierte und optimierte Kombinationen von Hardware, wie z.B. Server, Speicher- und Netzwerkressourcen zur Ausführung von Diensten, die von einer Paas-Plattform und einer Saas-Plattform bereitgestellt werden, sowie andere Ressourcen umfassen.
  • In mindestens einer Ausführungsform können Ressourcen in dem Drittanbieter-Netzwerkinfrastruktursystem 1602 von mehreren Benutzern gemeinsam genutzt und je nach Bedarf dynamisch neu zugewiesen werden. In mindestens einer Ausführungsform können die Ressourcen Benutzern in verschiedenen Zeitzonen zugewiesen werden. In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 es einer ersten Gruppe von Nutzern in einer ersten Zeitzone ermöglichen, Ressourcen eines Drittanbieter-Netzwerkinfrastruktursystems für eine bestimmte Anzahl von Stunden zu nutzen, und dann eine Neuzuweisung derselben Ressourcen an eine andere Gruppe von Nutzern in einer anderen Zeitzone ermöglichen, wodurch die Nutzung der Ressourcen maximiert wird.
  • In mindestens einer Ausführungsform kann eine Reihe interner gemeinsam genutzter Dienste 1632 bereitgestellt werden, die von verschiedenen Komponenten oder Modulen des Drittanbieter-Netzwerkinfrastruktursystems 1602 gemeinsam genutzt werden, um die Bereitstellung von Diensten durch das Drittanbieter-Netzwerkinfrastruktursystem 1602 zu ermöglichen. In mindestens einer Ausführungsform können diese internen gemeinsam genutzten Dienste, ohne Beschränkung darauf, einen Sicherheits- und Identitätsdienst, einen Integrationsdienst, einen Enterprise-Repository-Dienst, einen Enterprise-Manager-Dienst, einen Virenscan- und Whitelist-Dienst, einen Hochverfügbarkeits-, Sicherungs- und Wiederherstellungsdienst, einen Dienst zur Ermöglichung der Netzwerkunterstützung durch Dritte, einen E-Mail-Dienst, einen Benachrichtigungsdienst, einen Dateiübertragungsdienst und/oder Varianten davon umfassen.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1602 eine umfassende Verwaltung von Drittanbieter-Netzwerkdiensten (z.B. SaaS-, PaaS- und IaaS-Dienste) in einem Drittanbieter-Netzwerkinfrastruktursystem bereitstellen. In mindestens einer Ausführungsform kann die Drittanbieter-Netzwerkverwaltungsfunktionalität Fähigkeiten zur Bereitstellung, Verwaltung und Nachverfolgung des von dem Drittanbieternetz-Infrastruktursystem 1602 empfangenen Abonnements eines Kunden und/oder Variationen davon umfassen.
  • In mindestens einer Ausführungsform, wie in 16 dargestellt, kann die Drittanbieter-Netzwerkverwaltungsfunktionalität durch ein oder mehrere Module bereitgestellt werden, wie z.B. ein Auftragsmanagementmodul 1620, ein Auftragsorchestrationsmodul 1622, ein Auftragsbereitstellungsmodul 1624, ein Auftragsmanagement- und Überwachungsmodul 1626 und ein Identitätsmanagementmodul 1628. In mindestens einer Ausführungsform können diese Module einen oder mehrere Computer und/oder Server umfassen oder bereitgestellt werden, bei denen es sich um Universalcomputer, spezialisierte Servercomputer, Serverfarmen, Servercluster oder jede andere geeignete Anordnung und/oder Kombination handeln kann.
  • In mindestens einer Ausführungsform kann ein Kunde, der ein Client-Gerät wie beispielsweise die Client-Computing-Vorrichtungen 1604, 1606 oder 1608 verwendet, in Schritt 1634 mit dem Drittanbieter-Netzwerkinfrastruktursystem 1602 interagieren, indem er einen oder mehrere Dienste anfordert, die von der Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellt werden, und eine Bestellung für ein Abonnement für einen oder mehrere Dienste aufgibt, die von dem Drittanbieter-Netzwerkinfrastruktursystem 1602 angeboten werden. In mindestens einer Ausführungsform kann ein Kunde auf eine Benutzeroberfläche (UI) eines Drittanbieternetzwerks zugreifen, wie z.B. UI 1612, UI 1614 und/oder UI 1616 eines Drittanbieternetzwerks, und über diese UIs eine Abonnementbestellung aufgeben. In mindestens einer Ausführungsform können die Bestellinformationen, die das Drittanbieter-Netzwerkinfrastruktursystem 1602 in Reaktion auf die Bestellung eines Kunden empfängt, Informationen enthalten, die den Kunden und einen oder mehrere Dienste identifizieren, die von einem Drittanbieter-Netzwerkinfrastruktursystem 1602 angeboten werden und die der Kunde zu abonnieren beabsichtigt.
  • In mindestens einer Ausführungsform kann in Schritt 1636 eine von einem Kunden erhaltene Auftragsinformation in einer Auftragsdatenbank 1618 gespeichert werden. In mindestens einer Ausführungsform kann, wenn es sich um eine neue Bestellung handelt, ein neuer Datensatz für eine Bestellung erstellt werden. In mindestens einer Ausführungsform kann die Auftragsdatenbank 1618 eine von mehreren Datenbanken sein, die von dem Drittanbieter-Netzwerkinfrastruktursystem 1618 betrieben werden und mit anderen Systemelementen zusammenarbeiten.
  • In mindestens einer Ausführungsform kann in Schritt 1638 eine Auftragsinformation an ein Auftragsverwaltungsmodul 1620 weitergeleitet werden, das so konfiguriert sein kann, dass es Abrechnungs- und Buchhaltungsfunktionen im Zusammenhang mit einem Auftrag durchführt, wie z.B. die Überprüfung eines Auftrags und nach der Überprüfung die Buchung eines Auftrags.
  • In mindestens einer Ausführungsform können in Schritt 1640 Informationen über eine Bestellung an ein Auftragsorganisationsmodul 1622 übermittelt werden, das so konfiguriert ist, dass es die Bereitstellung von Diensten und Ressourcen für eine von einem Kunden aufgegebene Bestellung orchestriert. In mindestens einer Ausführungsform kann das Auftragsorganisationsmodul 1622 die Dienste des Auftragsbereitstellungsmoduls 1624 für die Bereitstellung nutzen. In mindestens einer Ausführungsform ermöglicht das Auftragsorganisationsmodul 1622 die Verwaltung von Geschäftsprozessen, die mit jedem Auftrag verbunden sind, und wendet Geschäftslogik an, um zu bestimmen, ob ein Auftrag zur Bereitstellung übergehen soll.
  • In mindestens einer Ausführungsform sendet das Auftragsorchestrationsmodul 1622 in Schritt 1642 nach Erhalt einer Bestellung für ein neues Abonnement eine Anforderung an das Auftragsbereitstellungsmodul 1624, um Ressourcen zuzuweisen und Ressourcen zu konfigurieren, die zur Erfüllung einer Abonnementbestellung benötigt werden. In mindestens einer Ausführungsform ermöglicht das Auftragsbereitstellungsmodul 1624 die Zuweisung von Ressourcen für von einem Kunden bestellte Dienste. In mindestens einer Ausführungsform bietet das Auftragsbereitstellungsmodul 1624 eine Abstraktionsebene zwischen den Netzwerkdiensten eines Drittanbieters, die von dem Drittanbieter-Netzwerkinfrastruktursystem 1600 bereitgestellt werden, und einer physikalischen Implementierungsschicht, die zur Bereitstellung von Ressourcen für die Bereitstellung angeforderter Dienste verwendet wird. In mindestens einer Ausführungsform ermöglicht dies die Isolierung des Auftragsorchestrierungsmoduls 1622 von Implementierungsdetails, wie z.B. der Frage, ob Dienste und Ressourcen tatsächlich in Echtzeit oder im Voraus bereitgestellt und nur auf Anfrage zugewiesen/zugewiesen werden.
  • In mindestens einer Ausführungsform kann in Schritt 1644 nach der Bereitstellung von Diensten und Ressourcen eine Benachrichtigung an die abonnierenden Kunden gesendet werden, die anzeigt, dass ein angeforderter Dienst nun zur Nutzung bereit ist. In mindestens einer Ausführungsform können Informationen (z.B. ein Link) an einen Kunden gesendet werden, die es ihm ermöglichen, die angeforderten Dienste zu nutzen.
  • In mindestens einer Ausführungsform kann in Schritt 1646 die Abonnementbestellung eines Kunden durch ein Auftragsverwaltungs- und Überwachungsmodul 1626 verwaltet und verfolgt werden. In mindestens einer Ausführungsform kann das Auftragsverwaltungs- und Überwachungsmodul 1626 so konfiguriert sein, dass es Nutzungsstatistiken über die Nutzung der abonnierten Dienste durch den Kunden erfasst. In mindestens einer Ausführungsform können Statistiken über die genutzte Speichermenge, die übertragene Datenmenge, die Anzahl der Benutzer, die Systembetriebszeit und die Systemausfallzeit und/oder Variationen davon erfasst werden.
  • In mindestens einer Ausführungsform kann das Drittanbieter-Netzwerkinfrastruktursystem 1600 ein Identitätsverwaltungsmodul 1628 enthalten, das so konfiguriert ist, dass es Identitätsdienste, wie z.B. Zugriffsverwaltung und Autorisierungsdienste, in dem Drittanbieter-Netzwerkinfrastruktursystem 1600 bereitstellt. In mindestens einer Ausführungsform kann das Identitätsverwaltungsmodul 1628 Informationen über Kunden kontrollieren, die Dienste nutzen möchten, die von einem Drittanbieter-Netzwerkinfrastruktursystem 1602 bereitgestellt werden. In mindestens einer Ausführungsform können solche Informationen Informationen enthalten, die die Identitäten solcher Kunden authentifizieren, und Informationen, die beschreiben, zu welchen Aktionen diese Kunden in Bezug auf verschiedene Systemressourcen (z.B. Dateien, Verzeichnisse, Anwendungen, Kommunikationsports, Speichersegmente usw.) berechtigt sind. In mindestens einer Ausführungsform kann das Identitätsverwaltungsmodul 1628 auch die Verwaltung von beschreibenden Informationen über jeden Kunden und darüber, wie und von wem auf diese beschreibenden Informationen zugegriffen werden kann und wie sie geändert werden können, umfassen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 17 veranschaulicht eine Cloud-Computing-Umgebung 1702, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst die Cloud-Computing-Umgebung 1702 ein oder mehrere Computersysteme/Server 1704, mit denen Datenverarbeitungsvorrichtungen, wie beispielsweise ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 1706A, ein Desktop-Computer 1706B, ein Laptop 1706C und/oder ein Kfz-Computersystem 1706N, kommunizieren. In mindestens einer Ausführungsform ermöglicht dies, dass Infrastruktur, Plattformen und/oder Software als Dienste von der Cloud-Computing-Umgebung 1702 angeboten werden können, so dass nicht jeder Kunde solche Ressourcen separat pflegen muss. Es versteht sich, dass die in 17 gezeigten Typen von Rechenvorrichtungen 1706AN nur zur Veranschaulichung dienen und dass die Cloud-Computing-Umgebung 1702 mit jeder Art von Rechenvorrichtung über jede Art von Netzwerk und/oder Netzwerk/adressierbare Verbindung (z.B. mit einem Webbrowser) kommunizieren kann.
  • In mindestens einer Ausführungsform ist ein Computersystem/Server 1704, der als ein Cloud-Computing-Knoten bezeichnet werden kann, mit zahlreichen anderen allgemeinen oder speziellen Computersystemumgebungen oder -konfigurationen betriebsbereit. In mindestens einer Ausführungsform umfassen Beispiele von Computersystemen, Umgebungen und/oder Konfigurationen, die für die Verwendung mit dem Computersystem/Server 1704 geeignet sein können, unter anderem Personalcomputersysteme, Servercomputersysteme, Thin-Clients, Thick-Clients, Handheld- oder Laptop-Geräte, Multiprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die eines der oben genannten Systeme oder Geräte und/oder Variationen davon umfassen.
  • In mindestens einer Ausführungsform kann das Computersystem/der Server 1704 in einem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen, wie z.B. Programmmodulen, beschrieben werden. In mindestens einer Ausführungsform umfassen Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw., die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. In mindestens einer Ausführungsform kann das beispielhafte Computersystem/Server 1704 in verteilten, lauten Computerumgebungen eingesetzt werden, in denen Aufgaben von entfernten Verarbeitungsgeräten ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind. In mindestens einer Ausführungsform können sich in einer verteilten Cloud-Computing-Umgebung Programmmodule sowohl in lokalen als auch in entfernten Computersystem-Speichermedien, einschließlich Speichervorrichtungen, befinden.
  • 18 veranschaulicht eine Reihe von funktionalen Abstraktionsschichten, die von der Cloud-Computing-Umgebung 1702 (17) gemäß mindestens einer Ausführungsform bereitgestellt werden. Es versteht sich im Voraus, dass die in 18 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung dienen und Komponenten, Schichten und Funktionen variieren können.
  • In mindestens einer Ausführungsform umfasst die Hardware- und Softwareschicht 1802 Hardware- und Softwarekomponenten. In mindestens einer Ausführungsform umfassen Beispiele für Hardwarekomponenten Großrechner, verschiedene Server mit RISC-Architektur (Reduced Instruction Set Computer), verschiedene Computersysteme, Supercomputersysteme, Speichergeräte, Netzwerke, Netzwerkkomponenten und/oder Variationen davon. In mindestens einer Ausführungsform umfassen Beispiele für Softwarekomponenten Netzwerkanwendungsserversoftware, verschiedene Anwendungsserversoftware, verschiedene Datenbanksoftware und/oder Variationen davon.
  • In mindestens einer Ausführungsform stellt die Virtualisierungsschicht 1804 eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Einheiten bereitgestellt werden können: virtuelle Server, virtuelle Speicher, virtuelle Netzwerke, einschließlich virtueller privater Netzwerke, virtuelle Anwendungen, virtuelle Clients und/oder Variationen davon.
  • In mindestens einer Ausführungsform stellt die Verwaltungsschicht 1806 verschiedene Funktionen bereit. In mindestens einer Ausführungsform ermöglicht die Ressourcenbereitstellung die dynamische Beschaffung von Rechenressourcen und anderen Ressourcen, die zur Ausführung von Aufgaben in einer Cloud-Computing-Umgebung verwendet werden. In mindestens einer Ausführungsform ermöglicht die Zählung die Verfolgung der Nutzung von Ressourcen in einer Cloud-Computing-Umgebung und die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen. In mindestens einer Ausführungsform kann es sich bei den Ressourcen um Lizenzen für Anwendungssoftware handeln. In mindestens einer Ausführungsform stellt die Sicherheit eine Identitätsüberprüfung für Benutzer und Aufgaben sowie beispielsweise einen Schutz für Daten und andere Ressourcen bereit. In mindestens einer Ausführungsform stellt die Benutzerschnittstelle sowohl den Benutzern als auch den Systemadministratoren Zugang zu einer Cloud-Computing-Umgebung bereit. In mindestens einer Ausführungsform ermöglicht das Service-Level-Management die Zuweisung und Verwaltung von Cloud Computing-Ressourcen, so dass die erforderlichen Service-Levels eingehalten werden. In mindestens einer Ausführungsform bietet die Verwaltung von Service Level Agreements (SLA) die Vorabvereinbarung und Beschaffung von Cloud-Computing-Ressourcen, für die ein künftiger Bedarf gemäß einem SLA erwartet wird.
  • In mindestens einer Ausführungsform stellt die Arbeitslastenschicht 1808 Funktionalität bereit, für die eine Cloud-Computing-Umgebung genutzt wird. In mindestens einer Ausführungsform umfassen Beispiele für Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können: Kartierung und Navigation, Softwareentwicklung und -verwaltung, Bildungsdienste, Datenanalyse und -verarbeitung, Transaktionsverarbeitung und Dienstbereitstellung.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • SUPERCOMPUTING
  • Die folgenden Figuren zeigen, ohne Beschränkung darauf, beispielhafte Supercomputer-basierte Systeme, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • In mindestens einer Ausführungsform kann sich ein Supercomputer auf ein Hardwaresystem beziehen, das eine signifikante Parallelität aufweist und mindestens einen Chip umfasst, wobei die Chips in einem System durch ein Netzwerk miteinander verbunden sind und in hierarchisch organisierten Gehäusen untergebracht sind. In mindestens einer Ausführungsform ist ein großes, einen Maschinenraum füllendes Hardwaresystem mit mehreren Racks, die jeweils mehrere Platinen/Rack-Module mit jeweils mehreren Chips enthalten, die alle über ein skalierbares Netzwerk miteinander verbunden sind, ein besonderes Beispiel für einen Supercomputer. In mindestens einer Ausführungsform ist ein einzelnes Rack eines solchen großen Hardwaresystems ein weiteres Beispiel für einen Supercomputer. In mindestens einer Ausführungsform kann auch ein einzelner Chip, der eine signifikante Parallelität aufweist und mehrere Hardwarekomponenten enthält, als Supercomputer betrachtet werden, da mit der Verringerung der Größe der Merkmale auch die Menge der Hardware, die in einen einzelnen Chip integriert werden kann, zunehmen kann.
  • 19 veranschaulicht einen Supercomputer auf Chipebene, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform werden in einem FPGA- oder ASIC-Chip die Hauptberechnungen in endlichen Zustandsmaschinen (1904), so genannten Thread-Einheiten, durchgeführt. In mindestens einer Ausführungsform verbinden Task- und Synchronisationsnetzwerke (1902) endliche Zustandsmaschinen und werden verwendet, um Threads zu verteilen und Operationen in der richtigen Reihenfolge auszuführen. In mindestens einer Ausführungsform erfolgt der Zugriff auf eine mehrstufig partitionierte On-Chip-Cache-Hierarchie (1908, 1912) über Speichernetze (1906, 1910). In mindestens einer Ausführungsform erfolgt der Zugriff auf Off-Chip-Speicher über Speicher-Controller (1916) und ein Off-Chip-Speichernetzwerk (1914). In mindestens einer Ausführungsform wird ein E/A-Controller (1918) für die chipübergreifende Kommunikation verwendet, wenn eine Ausgestaltung nicht auf einen einzigen Logikchip passt.
  • 20 veranschaulicht einen Supercomputer auf der Ebene eines Rackmoduls, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform gibt es innerhalb eines Rackmoduls mehrere FPGA- oder ASIC-Chips (2002), die mit einer oder mehreren DRAM-Einheiten (2004) verbunden sind, die den Hauptbeschleunigungsspeicher bilden. In mindestens einer Ausführungsform ist jeder FPGA/ASIC-Chip mit seinem benachbarten FPGA/ASIC-Chip über breite Busse auf einer Platine mit differenzieller Hochgeschwindigkeitssignalisierung (2006) verbunden. In mindestens einer Ausführungsform ist jeder FPGA/ASIC-Chip auch mit mindestens einem seriellen Hochgeschwindigkeits-Kommunikationskabel verbunden.
  • 21 veranschaulicht einen Supercomputer auf Rackebene, gemäß mindestens einer Ausführungsform. 22 zeigt einen Supercomputer auf der Ebene des gesamten Systems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform, die sich auf 21 und 22 bezieht, werden zwischen Rackmodulen in einem Rack und über Racks hinweg in einem gesamten System serielle optische Hochgeschwindigkeits- oder Kupferkabel (2102, 2202) verwendet, um ein skalierbares, möglicherweise unvollständiges Hypercube-Netzwerk zu realisieren. In mindestens einer Ausführungsform ist einer der FPGA/ASIC-Chips eines Beschleunigers über eine PCI-Express-Verbindung (2204) mit einem Host-System verbunden. In mindestens einer Ausführungsform umfasst das Hostsystem einen Host-Mikroprozessor (2208), auf dem ein Softwareteil einer Anwendung läuft, und einen Speicher, der aus einer oder mehreren Host-Speicher-DRAM-Einheiten (2206) besteht, die mit dem Speicher auf einem Beschleuniger kohärent gehalten werden. In mindestens einer Ausführungsform kann das Hostsystem ein separates Modul auf einem der Racks sein oder in eines der Module eines Supercomputers integriert sein. In mindestens einer Ausführungsform bieten würfelförmig verbundene Zyklen Kommunikationsverbindungen, um ein Hyperwürfelnetzwerk für einen großen Supercomputer zu schaffen. In mindestens einer Ausführungsform kann eine kleine Gruppe von FPGA/ASIC-Chips auf einem Rackmodul als einzelner Hypercube-Knoten fungieren, so dass die Gesamtzahl der externen Verbindungen jeder Gruppe im Vergleich zu einem einzelnen Chip erhöht wird. In mindestens einer Ausführungsform enthält eine Gruppe die Chips A, B, C und D auf einem Rackmodul mit internen breiten Differenzialbussen, die A, B, C und D in einer Torusorganisation verbinden. In mindestens einer Ausführungsform gibt es 12 serielle Kommunikationskabel, die ein Rackmodul mit der Außenwelt verbinden. In mindestens einer Ausführungsform ist der Chip A auf einem Rackmodul mit den seriellen Kommunikationskabeln 0, 1, 2 verbunden. In mindestens einer Ausführungsform ist der Chip B mit den Kabeln 3, 4, 5 verbunden. In mindestens einer Ausführungsform ist der Chip C mit den Kabeln 6, 7, 8 verbunden. In mindestens einer Ausführungsform ist der Chip D mit den Kabeln 9, 10, 11 verbunden. In mindestens einer Ausführungsform kann eine gesamte Gruppe {A, B, C, D}, die ein Rackmodul bildet, einen Hypercube-Knoten innerhalb eines Supercomputersystems mit bis zu 212=4096 Rackmodulen (16384 FPGA/ASIC-Chips) bilden. In mindestens einer Ausführungsform muss eine Nachricht, die von Chip A über die Verbindung 4 der Gruppe {A, B, C, D} gesendet werden soll, zunächst über eine bordeigene differenzielle breite Busverbindung an Chip B weitergeleitet werden. In mindestens einer Ausführungsform muss eine Nachricht, die in einer Gruppe {A, B, C, D} auf Link 4 eintrifft (d.h. bei B ankommt) und für Chip A bestimmt ist, auch zuerst zu einem korrekten Zielchip (A) innerhalb einer Gruppe {A, B, C, D} geleitet werden. In mindestens einer Ausführungsform können auch parallele Supercomputersysteme anderer Größe eingesetzt werden.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • KÜNSTLICHE INTELLIGENZ
  • Die folgenden Figuren zeigen, ohne Beschränkung darauf, beispielhafte Systeme auf der Grundlage künstlicher Intelligenz, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • 23A zeigt eine Inferenzierungs- und/oder Trainingslogik 2315, die verwendet wird, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details zur Inferenzierungs- und/oder Trainingslogik 2315 werden weiter unten in Verbindung mit 23A und/oder 23B beschrieben.
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 2315, ohne darauf beschränkt zu sein, Code- und/oder Datenspeicher 2301 zum Speichern von Vorwärts- und/oder Ausgabegewicht und/oder Eingangs-/Ausgangsdaten und/oder anderen Parametern zum Konfigurieren von Neuronen oder Schichten eines neuronalen Netzwerks beinhalten, das zur Inferenzierung in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder verwendet wird. In mindestens einer Ausführungsform kann die Trainingslogik 2315 Code und/oder Datenspeicher 2301 beinhalten oder mit diesem gekoppelt sein, um Grafikcode oder andere Software zum Steuern des Timings und/oder der Reihenfolge zu speichern, in welcher Gewichts- und/oder andere Parameterinformationen zu laden sind, um Logik, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (kollektiv Arithmetik-Logik-Einheiten (ALUs)) zu konfigurieren. In mindestens einer Ausführungsform lädt Code, wie beispielsweise Grafikcode, Gewichts- oder andere Parameterinformationen in Prozessor-ALUs, basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 2301 Gewichtsparameter und/oder Ein-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, das in Verbindung mit einer oder mehreren Ausführungsformen während der Vorwärtspropagation von Ein-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet wurde. In mindestens einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 2301 in anderem On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein.
  • In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 2301 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen sein. In mindestens einer Ausführungsform können Code und/oder der Code und/oder Datenspeicher 2301 Cache-Speicher, dynamisches RAM („DRAM“), statisches RAM („SRAM“), nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob Code und/oder der Code und/oder Datenspeicher 2301 beispielsweise intern oder extern zu einem Prozessor ist oder aus DRAM, SRAM, Flash-Speicher oder einem anderen Speichertyp besteht, von auf dem Chip bzw. on-chip gegenüber nicht auf dem Chip bzw. off-chip verfügbarem Speicher, Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Losgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 2315, ohne darauf beschränkt zu sein, einen Code- und/oder Datenspeicher 2305 beinhalten zum Speichern von Rückwärts- und/oder Ausgangsgewichten und/oder Eingangs-/Ausgangsdaten, die Neuronen oder Schichten eines neuronalen Netzwerks entsprechen, das zur Inferenzierung in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder verwendet wird. In mindestens einer Ausführungsform speichert der Code- und /oder Datenspeicher 2305 Gewichtsparameter und/oder Eingangs-/ Ausgangsdaten jeder Schicht eines neuronalen Netzwerks, die in Verbindung mit einer oder mehreren Ausführungsformen während einer Rückwärtspropagation von Eingangs-/Ausgangsdaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet werden. In mindestens einer Ausführungsform kann die Trainingslogik 2315 den Code und/oder Datenspeicher 2305 beinhalten oder mit diesem gekoppelt sein, um Grafikcode oder andere Software zum Steuern des Timings und/oder der Reihenfolge zu speichern, in welchem bzw. welcher Gewichts- und/oder andere Parameterinformationen zum Konfigurieren von Logik einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (kollektiv Arithmetik-Logik-Einheiten (ALUs)) zu laden sind.
  • In mindestens einer Ausführungsform bewirkt Code, wie beispielsweise Graphencode, basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht, das Laden von Gewichts- oder andere Parameterinformationen in Prozessor-ALUs. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 2305 mit anderem On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, verbunden sein. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 2305 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen sein. In mindestens einer Ausführungsform kann der Code- und/oder Datenspeicher 2305 Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Datenspeicher 2305 beispielsweise intern oder extern zu einem Prozessor ist oder aus DRAM, SRAM, Flash-Speicher oder einem anderen Speichertyp besteht, von On-Chip gegenüber Off-Chip verfügbarem Speicher, Latenzanforderungen an durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Losgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Code und/oder Datenspeicher 2301 und der Code und/oder Datenspeicher 2305 separate Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code und/oder Datenspeicher 2301 und der Code und/oder Datenspeicher 2305 eine kombinierte Speicherstruktur sein. In mindestens einer Ausführungsform können der Code und/oder Datenspeicher 2301 und der Code und/oder Datenspeicher 2305 teilweise eine gleiche Speicherstruktur und teilweise separate Speicherstrukturen sein. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 2301 und des Code- und/oder Datenspeichers 2305 mit anderen On-Chip- oder Off-Chip-Datenspeichern, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, kombiniert sein.
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 2315, ohne darauf beschränkt zu sein, eine oder mehrere Arithmetik-Logik-Einheiten („ALU(s)“) 2310, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten, beinhalten, um logische und/oder mathematische Operationen durchzuführen, die zumindest teilweise auf Trainings- und/oder Inferenzierungscode (beispielsweise Grafikcode) basieren oder durch diesen angezeigt werden, deren Ergebnis Aktivierungen (z.B. Ausgangswerte von Schichten oder Neuronen innerhalb eines neuronalen Netzwerks), die in einem Aktivierungsspeicher 2320 gespeichert sind, erzeugen kann, die Funktionen von Eingangs-/Ausgangs- und/oder Gewichtsparameterdaten sind, die in dem Code und/oder Datenspeicher 2301 und/oder dem Code und/oder Datenspeicher 2305 gespeichert sind. In mindestens einer Ausführungsform werden in dem Aktivierungsspeicher 2320 gespeicherte Aktivierungen in Übereinstimmung mit linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die von den ALU(s) 2310 im Ansprechen auf das Ausführen von Anweisungen oder anderem Code durchgeführt wird, wobei Gewichtswerte, die in dem Code und/oder Datenspeicher 2305 und/oder dem Datenspeicher 2305 gespeichert sind, als Operanden zusammen mit anderen Werten, wie beispielsweise Bias-Werten, Gradienteninformationen, Impulswerten oder anderen Parametern oder Hyperparametern, verwendet werden, von welchen beliebige oder alle in dem Code und/oder Datenspeicher 2305 oder dem Code und/oder Datenspeicher 901 oder einem anderen Speicher auf oder außerhalb des Chips gespeichert sein können.
  • In mindestens einer Ausführungsform sind die ALU(s) 2310 in einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder -Schaltungen enthalten, während in einer anderen Ausführungsform die ALU(s) 2310 extern zu einem Prozessor oder einer anderen Hardware-Logikvorrichtung oder einer Schaltung sein können, die sie verwenden (z.B. ein Co-Prozessor). In mindestens einer Ausführungsform können die ALUs 2310 in den Ausführungseinheiten eines Prozessors oder anderweitig in einer Bank von ALUs enthalten sein, auf die die Ausführungseinheiten eines Prozessors zugreifen können, entweder innerhalb desselben Prozessors oder verteilt auf verschiedene Prozessoren unterschiedlichen Typs (z.B. zentrale Verarbeitungseinheiten, Grafikverarbeitungseinheiten, Festfunktionseinheiten usw.). In mindestens einer Ausführungsform können sich der Code- und/oder Datenspeicher 2301, der Code- und/oder Datenspeicher 2305 und der Aktivierungsspeicher 2320 einen Prozessor oder eine andere Hardware-Logikvorrichtung oder -schaltung teilen, während sie sich in einer anderen Ausführungsform in verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen oder in einer Kombination aus gleichen und verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen befinden können. In mindestens einer Ausführungsform kann ein beliebiger Teil des Aktivierungsspeichers 2320 in anderen On-Chip- oder Off-Chip-Datenspeichem enthalten sein, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors. Ferner kann der Inferenzierungs- und/oder Trainingscode zusammen mit anderem Code gespeichert sein, auf den ein Prozessor oder eine andere Hardware-Logik oder -Schaltung zugreifen kann und der unter Verwendung der Abruf-, Decodier-, Planungs-, Ausführungs-, Ausscheidungs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet wird.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 2320 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 2320 vollständig oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen befinden. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 2320 z.B. innerhalb oder außerhalb eines Prozessors liegt oder DRAM, SRAM, Flash-Speicher oder einen anderen Speichertyp umfasst, von dem verfügbaren Speicher auf dem Chip im Vergleich zu außerhalb des Chips, den Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzfunktionen, der Stackgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die in 23A dargestellte Inferenzierungs- und/oder Trainingslogik 2315 in Verbindung mit einem anwendungsspezifischen integrierten Schaltkreis („ASIC“) verwendet werden, wie z.B. einer TensorFlow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana® (z.B. „Lake Crest“) Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 23A dargestellte Inferenzierungs- und/oder Trainingslogik 2315 in Verbindung mit Hardware der Zentralverarbeitungseinheit („CPU“), der Grafikverarbeitungseinheit („GPU“) oder anderer Hardware, wie z.B. Field Programmable Gate Arrays („FPGAs“), verwendet werden.
  • 23B veranschaulicht die Inferenzierungs- und/oder Trainingslogik 2315, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 2315, ohne darauf beschränkt zu sein, Hardware-Logik umfassen, in der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzwerks entsprechen. In mindestens einer Ausführungsform kann die in 23B dargestellte Inferenzierungs- und/oder Trainingslogik 2315 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie z.B. der TensorFlow® Processing Unit von Google, einer Inferenzierungsverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana® (z.B. „Lake Crest“)-Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 23B veranschaulichte Inferenzierungs- und/oder Trainingslogik 2315 in Verbindung mit Hardware der Zentralverarbeitungseinheit (CPU), der Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie z.B. FPGAs (Field Programmable Gate Arrays), verwendet werden. In mindestens einer Ausführungsform umfasst die Inferenzierungs- und/oder Trainingslogik 2315, ohne darauf beschränkt zu sein, den Code- und/oder Datenspeicher 2301 und den Code- und/oder Datenspeicher 2305, die zum Speichern von Code (z.B. Graphencode), Gewichtswerten und/oder anderen Informationen, einschließlich Bias-Werten, Gradienteninformationen, Impulswerten und/oder anderen Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 23B dargestellt ist, ist jeder Code- und/oder Datenspeicher 2301 und jeder Code- und/oder Datenspeicher 2305 mit einer dedizierten Rechenressource verbunden, wie z.B. Rechenhardware 2302 bzw. Rechenhardware 2306. In mindestens einer Ausführungsform umfasst jede der Rechenhardware 2302 und der Rechenhardware 2306 eine oder mehrere ALUs, die mathematische Funktionen, wie lineare algebraische Funktionen, nur auf Informationen ausführen, die im Code- und/oder Datenspeicher 2301 bzw. im Code- und/oder Datenspeicher 2305 gespeichert sind, deren Ergebnis im Aktivierungsspeicher 2320 gespeichert wird.
  • In mindestens einer Ausführungsform entspricht jeder der Code- und/oder Datenspeicher 2301 und 2305 und die entsprechende Rechenhardware 2302 bzw. 2306 verschiedenen Schichten eines neuronalen Netzwerks, so dass eine resultierende Aktivierung von einem Speicher-/Rechenpaar 2301/2302 aus Code- und/oder Datenspeicher 2301 und Rechenhardware 2302 als Eingabe für ein nächstes Speicher-/Rechenpaar 2305/2306 aus Code- und/oder Datenspeicher 2305 und Rechenhardware 2306 bereitgestellt wird, um eine konzeptionelle Organisation eines neuronalen Netzwerks zu spiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaare 2301/2302 und 2305/2306 mehr als einer neuronalen Netzwerkschicht entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher-/Rechenpaare (nicht dargestellt) im Anschluss an oder parallel zu den Speicher-/Rechenpaaren 2301/2302 und 2305/2306 in die Inferenzierungs- und/oder Trainingslogik 815 einbezogen sein.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren. dazu geeignet, eine Ursache für eine Leistungsregression zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 24 veranschaulicht das Training und den Einsatz eines tiefen neuronalen Netzwerks, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 2406 mit einem Trainingsdatensatz 2402 trainiert. In mindestens einer Ausführungsform ist das Trainings-Framework 2404 ein PyTorch-Framework, während in anderen Ausführungsformen das Trainings-Framework 2404 ein TensorFlow, Boost, Caffe, Microsoft Cognitive Toolkit/CNTK, MXNet, Chainer, Keras, Deeplearning4j oder ein anderes Trainings-Framework ist. In mindestens einer Ausführungsform trainiert das Trainings-Framework 2404 ein untrainiertes neuronales Netzwerk 2406 und ermöglicht dessen Training unter Verwendung der hierin beschriebenen Verarbeitungsressourcen, um ein trainiertes neuronales Netzwerk 2408 zu erzeugen. In mindestens einer Ausführungsform können Gewichte zufällig oder durch Vortraining mit einem Deep Belief-Netztwerk ausgewählt werden. In mindestens einer Ausführungsform kann das Training entweder auf überwachte, teilweise überwachte oder nicht überwachte Weise durchgeführt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 2406 unter Verwendung von überwachtem Lernen trainiert, wobei der Trainingsdatensatz 2402 eine Eingabe enthält, die mit einer gewünschten Ausgabe für eine Eingabe gepaart ist, oder wobei der Trainingsdatensatz 2402 eine Eingabe mit einer bekannten Ausgabe enthält und eine Ausgabe des neuronalen Netzwerks 2406 manuell eingestuft wird. In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 2406 auf überwachte Weise trainiert und verarbeitet Eingaben aus dem Trainingsdatensatz 2402 und vergleicht die resultierenden Ausgaben mit einem Satz von erwarteten oder gewünschten Ausgaben. In mindestens einer Ausführungsform werden die Fehler dann durch das untrainierte neuronale Netzwerk 2406 zurückpropagiert. In mindestens einer Ausführungsform passt das Trainings-Framework 2404 Gewichte an, die das untrainierte neuronale Netzwerk 2406 steuern. In mindestens einer Ausführungsform enthält das Trainings-Framework 2404 Werkzeuge, um zu überwachen, wie gut das untrainierte neuronale Netzwerk 2406 zu einem Modell konvergiert, wie z.B. dem trainierten neuronalen Netzwerk 2408, das geeignet ist, korrekte Antworten zu erzeugen, wie z.B. im Ergebnis 2414, basierend auf Eingangsdaten, wie z.B. einem neuen Datensatz 2412. In mindestens einer Ausführungsform trainiert das Trainings-Framework 2404 das untrainierte neuronale Netzwerk 2406 wiederholt, während es Gewichte anpasst, um eine Ausgabe des untrainierten neuronalen Netzwerks 2406 unter Verwendung einer Verlustfunktion und eines Anpassungsalgorithmus, wie z.B. stochastischer Gradientenabstieg, zu verfeinern. In mindestens einer Ausführungsform trainiert das Trainings-Framework 2404 das untrainierte neuronale Netzwerk 2406, bis das untrainierte neuronale Netzwerk 2406 eine gewünschte Genauigkeit erreicht. In mindestens einer Ausführungsform kann das trainierte neuronale Netzwerk 2408 dann eingesetzt werden, um eine beliebige Anzahl von Operationen maschinellen Lernens zu implementieren.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netzwerk 2406 unter Verwendung von unüberwachtem Lernen trainiert, wobei das untrainierte neuronale Netzwerk 2406 versucht, sich selbst unter Verwendung unmarkierter Daten zu trainieren. In mindestens einer Ausführungsform enthält der Trainingsdatensatz 2402 des unüberwachten Lernens Eingangsdaten ohne zugeordnete Ausgabedaten oder „Grundwahrheitsdaten“. In mindestens einer Ausführungsform kann das untrainierte neuronale Netzwerk 2406 Gruppierungen innerhalb des Trainingsdatensatzes 2402 lernen und bestimmen, wie einzelne Eingaben mit dem untrainierten Datensatz 2402 in Beziehung stehen. In mindestens einer Ausführungsform kann unüberwachtes Training verwendet werden, um eine selbstorganisierende Karte in dem trainierten neuronalen Netzwerk 2408 zu erzeugen, die in der Lage ist, Operationen durchzuführen, die bei der Reduzierung der Dimensionalität des neuen Datensatzes 2412 nützlich sind. In mindestens einer Ausführungsform kann unüberwachtes Training auch verwendet werden, um eine Anomalieerkennung durchzuführen, die die Identifizierung von Datenpunkten, die von normalen Mustern des neuen Datensatzes 2412 abweichen, in dem neuen Datensatz 2412 ermöglicht.
  • In mindestens einer Ausführungsform kann halbüberwachtes Lernen verwendet werden, welches eine Technik ist, bei der der Trainingsdatensatz 2402 eine Mischung aus gekennzeichneten und nicht gekennzeichneten Daten enthält. In mindestens einer Ausführungsform kann das Trainings-Framework 2404 verwendet werden, um inkrementelles Lernen durchzuführen, wie z.B. durch übertragene Lerntechniken. In mindestens einer Ausführungsform ermöglicht das inkrementelle Lernen dem trainierten neuronalen Netzwerk 2408, sich an einen neuen Datensatz 2412 anzupassen, ohne Wissen zu vergessen, das dem trainierten neuronalen Netzwerk 2408 während anfänglichen Trainings eingeflößt wurde.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 5G-NETZWERKE
  • Die folgenden Figuren zeigen, ohne Beschränkung darauf, beispielhafte 5G-Netzwerk-basierte Systeme, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • 25 veranschaulicht die Architektur eines Systems 2500 eines Netzwerks gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist das System 2500 so dargestellt, dass es ein Benutzergerät (UE) 2502 und ein UE 2504 umfasst. In mindestens einer Ausführungsform sind die UEs 2502 und 2504 als Smartphones dargestellt (z.B. tragbare mobile Computergeräte mit Touchscreen, die mit einem oder mehreren Mobilfunknetzen verbunden werden können), können aber auch jedes andere mobile oder nicht mobile Computergerät umfassen, wie z.B. Personal Data Assistants (PDAs), Pager, Laptops, Desktop-Computer, drahtlose Handgeräte oder jedes andere Computergerät mit einer drahtlosen Kommunikationsschnittstelle.
  • In mindestens einer Ausführungsform kann jedes der UEs 2502 und 2504 ein Internet of Things (IoT) UE umfassen, das eine Netzwerkzugangsschicht für IoT-Anwendungen mit geringem Stromverbrauch umfassen kann, die kurzlebige UE-Verbindungen nutzen. In mindestens einer Ausführungsform kann ein IoT-UE Technologien wie Machine-to-Machine (M2M) oder Machine-type Communications (MTC) zum Austausch von Daten mit einem MTC-Server oder - Gerät über ein öffentliches Mobilfunknetzwerk (PLMN), Proximity-Based Service (ProSe) oder Device-to-Device (D2D)-Kommunikation, Sensornetzwerke oder IoT-Netzwerke nutzen. In mindestens einer Ausführungsform kann es sich bei einem M2M- oder MTC-Datenaustausch um einen maschineninitiierten Datenaustausch handeln. In mindestens einer Ausführungsform beschreibt ein IoT-Netzwerk die Verbindung von IoT-UEs, die eindeutig identifizierbare eingebettete Rechengeräte (innerhalb der Internet-Infrastruktur) umfassen können, mit kurzlebigen Verbindungen. In mindestens einer Ausführungsform können IoT-EUs Hintergrundanwendungen ausführen (z.B. Keep-Alive-Nachrichten, Statusaktualisierungen usw.), um Verbindungen eines IoT-Netzwerks zu erleichtern.
  • In mindestens einer Ausführungsform können die UEs 2502 und 2504 so konfiguriert sein, dass sie sich mit einem Funkzugangsnetzwerk (RAN) 2516 verbinden, z.B. kommunikativ koppeln. In mindestens einer Ausführungsform kann das RAN 2516 beispielsweise ein Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN), ein NextGen RAN (NG RAN) oder eine andere Art von RAN sein. In mindestens einer Ausführungsform nutzen die Endgeräte 2502 und 2504 die Verbindungen 2512 bzw. 2514, von denen jede eine physikalische Kommunikationsschnittstelle oder -schicht umfasst. In mindestens einer Ausführungsform sind die Verbindungen 2512 und 2514 als Luftschnittstelle dargestellt, um eine kommunikative Kopplung zu ermöglichen, und können mit zellularen Kommunikationsprotokollen übereinstimmen, wie z.B. einem GSM-Protokoll (Global System for Mobile Communications), einem CDMA-Netzwerkprotokoll (Code-Division Multiple Access), ein Push-to-Talk (PTT)-Protokoll, ein PTT over Cellular (POC)-Protokoll, ein Universal Mobile Telecommunications System (UMTS)-Protokoll, ein 3GPP Long Term Evolution (LTE)-Protokoll, ein Protokoll der fünften Generation (5G), ein New Radio (NR)-Protokoll und Varianten davon.
  • In mindestens einer Ausführungsform können die Endgeräte 2502 und 2504 außerdem direkt Kommunikationsdaten über eine ProSe-Schnittstelle 2506 austauschen. In mindestens einer Ausführungsform kann die ProSe-Schnittstelle 2506 alternativ als Sidelink-Schnittstelle bezeichnet werden, die einen oder mehrere logische Kanäle umfasst, einschließlich, aber nicht beschränkt auf einen Physical Sidelink Control Channel (PSCCH), einen Physical Sidelink Shared Channel (PSSCH), einen Physical Sidelink Discovery Channel (PSDCH) und einen Physical Sidelink Broadcast Channel (PSBCH).
  • In mindestens einer Ausführungsform ist die UE 2504 so konfiguriert, dass sie über die Verbindung 2508 auf einen Zugangspunkt (AP) 2510 zugreifen kann. In mindestens einer Ausführungsform kann die Verbindung 2508 eine lokale drahtlose Verbindung umfassen, wie z.B. eine Verbindung, die mit einem IEEE 802.11-Protokoll übereinstimmt, wobei der AP 2510 einen Wireless Fidelity (WiFi®)-Router umfassen würde. In mindestens einer Ausführungsform ist der AP 2510 so dargestellt, dass er mit dem Internet verbunden ist, ohne sich mit einem Kernnetzwerk eines drahtlosen Systems zu verbinden.
  • In mindestens einer Ausführungsform kann das RAN 2516 einen oder mehrere Zugangsknoten enthalten, die die Verbindungen 2512 und 2514 ermöglichen. In mindestens einer Ausführungsform können diese Zugangsknoten (ANs) als Basisstationen (BSs), NodeBs, evolved NodeBs (eNBs), next Generation NodeBs (gNB), RAN-Knoten usw. bezeichnet werden und können Bodenstationen (z.B. terrestrische Zugangspunkte) oder Satellitenstationen umfassen, die eine Abdeckung innerhalb eines geografischen Gebiets (z.B. einer Zelle) bereitstellen. In mindestens einer Ausführungsform kann RAN 2516 einen oder mehrere RAN-Knoten für die Bereitstellung von Makrozellen, z.B. Makro-RAN-Knoten 2518, und einen oder mehrere RAN-Knoten für die Bereitstellung von Femto- oder Pikozellen (z.B. Zellen mit kleineren Abdeckungsbereichen, geringerer Nutzerkapazität oder höherer Bandbreite im Vergleich zu Makrozellen), z.B. Low Power (LP) RAN-Knoten 2520, umfassen.
  • In mindestens einer Ausführungsform kann jeder der RAN-Knoten 2518 und 2520 ein Luftschnittstellenprotokoll beenden und ein erster Kontaktpunkt für UEs 2502 und 2504 sein. In mindestens einer Ausführungsform kann jeder der RAN-Knoten 2518 und 2520 verschiedene logische Funktionen für das RAN 2516 erfüllen, einschließlich, aber nicht beschränkt auf, Funktionen des Funknetz-Controllers (RNC), wie z.B. Verwaltung von Funkträgern, dynamische Verwaltung von Funkressourcen in der Aufwärts- und Abwärtsrichtung, Planung von Datenpaketen und Mobilitätsmanagement.
  • In mindestens einer Ausführungsform können die UEs 2502 und 2504 so konfiguriert werden, dass sie unter Verwendung von OFDM-Kommunikationssignalen (Orthogonal Frequency-Division Multiplexing) miteinander oder mit einem der RAN-Knoten 2518 und 2520 über einen Mehrträger-Kommunikationskanal gemäß verschiedenen Kommunikationstechniken kommunizieren, wie z.B. einer OFDMA-Kommunikationstechnik (Orthogonal Frequency Division Multiple Access) (z.B., (z.B. für die Downlink-Kommunikation) oder eine Single Carrier Frequency Division Multiple Access (SC-FDMA)-Kommunikationstechnik (z.B. für Uplink- und ProSe- oder Sidelink-Kommunikation) und/oder Variationen davon. In mindestens einer Ausführungsform können OFDM-Signale eine Vielzahl von orthogonalen Unterträgern umfassen.
  • In mindestens einer Ausführungsform kann ein Downlink-Ressourcenraster für Downlink-Übertragungen von einem der RAN-Knoten 2518 und 2520 an die UEs 2502 und 2504 verwendet werden, während für Uplink-Übertragungen ähnliche Techniken eingesetzt werden können. In mindestens einer Ausführungsform kann ein Raster ein Zeit-Frequenz-Raster sein, das als Ressourcenraster oder Zeit-Frequenz-Ressourcenraster bezeichnet wird und eine physikalische Ressource in einer Abwärtsverbindung in jedem Slot ist. In mindestens einer Ausführungsform ist eine solche Darstellung auf der Zeit-Frequenz-Ebene eine gängige Praxis für OFDM-Systeme, was sie für die Zuweisung von Funkressourcen intuitiv macht. In mindestens einer Ausführungsform entspricht jede Spalte und jede Zeile eines Ressourcenrasters einem OFDM-Symbol bzw. einem OFDM-Unterträger. In mindestens einer Ausführungsform entspricht die Dauer eines Ressourcenrasters in einem Zeitbereich einem Zeitschlitz in einem Funkrahmen. In mindestens einer Ausführungsform wird die kleinste Zeit-/Frequenzeinheit in einem Ressourcenraster als Ressourcenelement bezeichnet. In mindestens einer Ausführungsform umfasst jedes Ressourcengitter eine Anzahl von Ressourcenblöcken, die eine Zuordnung bestimmter physikalischer Kanäle zu Ressourcenelementen beschreiben. In mindestens einer Ausführungsform umfasst jeder Ressourcenblock eine Sammlung von Ressourcenelementen. In mindestens einer Ausführungsform kann dies in einem Frequenzbereich eine kleinste Menge von Ressourcen darstellen, die derzeit zugewiesen werden können. In mindestens einer Ausführungsform gibt es mehrere verschiedene physikalische Downlink-Kanäle, die über solche Ressourcenblöcke übertragen werden.
  • In mindestens einer Ausführungsform kann ein gemeinsam genutzter physikalischer Downlink-Kanal (PDSCH) Benutzerdaten und Signalisierung auf höherer Ebene zu den UEs 2502 und 2504 übertragen. In mindestens einer Ausführungsform kann ein Physical Downlink Control Channel (PDCCH) unter anderem Informationen über ein Transportformat und Ressourcenzuweisungen in Bezug auf den PDSCH-Kanal übertragen. In mindestens einer Ausführungsform kann er auch die UEs 2502 und 2504 über ein Transportformat, eine Ressourcenzuweisung und HARQ-Informationen (Hybrid Automatic Repeat Request) in Bezug auf einen gemeinsam genutzten Kanal in der Aufwärtsrichtung informieren. In mindestens einer Ausführungsform kann typischerweise das Downlink-Scheduling (Zuweisung von Kontroll- und Shared-Channel-Ressourcenblöcken an UE 2502 innerhalb einer Zelle) an einem der RAN-Knoten 2518 und 2520 auf der Grundlage von Kanalqualitätsinformationen durchgeführt werden, die von einem der UEs 2502 und 2504 zurückgemeldet werden. In mindestens einer Ausführungsform können Informationen über die Zuweisung von Downlink-Ressourcen auf einem PDCCH gesendet werden, der für jedes der UEs 2502 und 2504 verwendet (z.B. zugewiesen) wird.
  • In mindestens einer Ausführungsform kann ein PDCCH Steuerkanalelemente (CCEs) verwenden, um Steuerinformationen zu übertragen. In mindestens einer Ausführungsform können komplexwertige PDCCH-Symbole vor ihrer Zuordnung zu Ressourcenelementen zunächst in Quadrupletts organisiert werden, die dann zur Ratenanpassung mit einem Subblock-Interleaver permutiert werden können. In mindestens einer Ausführungsform kann jedes PDCCH unter Verwendung eines oder mehrerer dieser CCEs übertragen werden, wobei jedes CCE neun Sätzen von vier physikalischen Ressourcenelementen, den so genannten Ressourcenelementgruppen (REGs), entsprechen kann. In mindestens einer Ausführungsform können jeder REG vier Quadraturphasenumtastungssymbole (QPSK) zugeordnet werden. In mindestens einer Ausführungsform kann PDCCH unter Verwendung einer oder mehrerer CCEs übertragen werden, abhängig von der Größe einer Downlink-Kontrollinformation (DCI) und einer Kanalbedingung. In mindestens einer Ausführungsform kann es vier oder mehr verschiedene PDCCH-Formate geben, die in LTE mit einer unterschiedlichen Anzahl von CCEs definiert sind (z.B. Aggregationsebene, L=1, 2, 4 oder 8).
  • In mindestens einer Ausführungsform kann ein erweiterter physikalischer Downlink-Kontrollkanal (EPDCCH), der PDSCH-Ressourcen nutzt, für die Übertragung von Kontrollinformationen verwendet werden. In mindestens einer Ausführungsform kann der EPDCCH unter Verwendung eines oder mehrerer erweiterter Steuerkanalelemente (Enhanced Control Channel Elements, ECCEs) übertragen werden. In mindestens einer Ausführungsform kann jedes ECCE neun Sätzen von vier physikalischen Ressourcenelementen entsprechen, die als Enhanced Resource Element Groups (EREGs) bezeichnet werden. In mindestens einer Ausführungsform kann eine ECCE in bestimmten Situationen eine andere Anzahl von EREGs aufweisen.
  • In mindestens einer Ausführungsform ist das RAN 2516 über eine S1-Schnittstelle 2522 mit einem Kernnetzwerk (CN) 2538 kommunikativ verbunden. In mindestens einer Ausführungsform kann das CN 2538 ein Evolved Packet Core (EPC)-Netz, ein NextGen Packet Core (NPC)-Netzwerk oder eine andere Art von CN sein. In mindestens einer Ausführungsform ist die S1-Schnittstelle 2522 in zwei Teile aufgeteilt: eine S1-U-Schnittstelle 2526, die Verkehrsdaten zwischen den RAN-Knoten 2518 und 2520 und dem Serving Gateway (S-GW) 2530 überträgt, und eine S1-Mobility Management Entity (MME)-Schnittstelle 2524, die eine Signalisierungsschnittstelle zwischen den RAN-Knoten 2518 und 2520 und den MMEs 2528 ist.
  • In mindestens einer Ausführungsform umfasst CN 2538 MMEs 2528, S-GW 2530, Packet Data Network (PDN) Gateway (P-GW) 2534 und einen Home Subscriber Server (HSS) 2532. In mindestens einer Ausführungsform können die MMEs 2528 eine ähnliche Funktion haben wie beispielsweise die Steuerebene von älteren Serving General Packet Radio Service (GPRS) Support Nodes (SGSN). In mindestens einer Ausführungsform können die MMEs 2528 Mobilitätsaspekte beim Zugang verwalten, wie z.B. die Gateway-Auswahl und die Verwaltung der Tracking Area List. In mindestens einer Ausführungsform kann der HSS 2532 eine Datenbank für Netzwerknutzer umfassen, einschließlich abonnementbezogener Informationen zur Unterstützung der Handhabung von Kommunikationssitzungen durch Netzwerkeinheiten. In mindestens einer Ausführungsform kann der CN 2538 einen oder mehrere HSS 2532 umfassen, abhängig von der Anzahl der Mobilfunkteilnehmer, der Kapazität eines Geräts, der Organisation eines Netzwerks usw. In mindestens einer Ausführungsform kann der HSS 2532 Unterstützung für Routing/Roaming, Authentifizierung, Autorisierung, Namens-/Adressierungsauflösung, Standortabhängigkeiten usw. bereitstellen.
  • In mindestens einer Ausführungsform kann S-GW 2530 eine S1-Schnittstelle 2522 in Richtung RAN 2516 abschließen und Datenpakete zwischen RAN 2516 und CN 2538 weiterleiten. In mindestens einer Ausführungsform kann S-GW 2530 ein lokaler Mobilitätsankerpunkt für Inter-RAN-Knoten-Handover sein und auch einen Anker für Inter-3GPP-Mobilität bereitstellen. In mindestens einer Ausführungsform können weitere Aufgaben das rechtmäßige Abfangen, die Gebührenerhebung und die Durchsetzung einiger Richtlinien sein.
  • In mindestens einer Ausführungsform kann P-GW 2534 eine SGi-Schnittstelle in Richtung eines PDN abschließen. In mindestens einer Ausführungsform kann P-GW 2534 Datenpakete zwischen einem EPC-Netzwerk 2538 und externen Netzwerken wie beispielsweise einem Netzwerk mit einem Anwendungsserver 2540 (alternativ als Anwendungsfunktion (AF) bezeichnet) über eine Internetprotokoll-(IP-)Schnittstelle 2542 weiterleiten. In mindestens einer Ausführungsform kann der Anwendungsserver 2540 ein Element sein, das Anwendungen anbietet, die IP-Trägerressourcen mit einem Kernnetzwerk nutzen (z.B. UMTS-Paketdienste (PS)-Domäne, LTE-PS-Datendienste usw.). In mindestens einer Ausführungsform ist P-GW 2534 über eine IP-Kommunikationsschnittstelle 2542 kommunikativ mit einem Anwendungsserver 2540 gekoppelt. In mindestens einer Ausführungsform kann der Anwendungsserver 2540 auch so konfiguriert sein, dass er einen oder mehrere Kommunikationsdienste (z.B. Voice-over-Internet Protocol (VoIP)-Sitzungen, PTT-Sitzungen, Gruppenkommunikationssitzungen, soziale Netzwerkdienste usw.) für die UEs 2502 und 2504 über CN 2538 unterstützt.
  • In mindestens einer Ausführungsform kann P-GW 2534 außerdem ein Knoten für die Durchsetzung von Richtlinien und die Erhebung von Gebührendaten sein. In mindestens einer Ausführungsform ist die Policy and Charging Enforcement Function (PCRF) 2536 ein Policy- und Gebührenkontrollelement des CN 2538. In mindestens einer Ausführungsform kann es in einem Nicht-Roaming-Szenario eine einzige PCRF in einem Home Public Land Mobile Network (HPLMN) geben, die mit einer Internet Protocol Connectivity Access Network (IP-CAN)-Sitzung eines UE verbunden ist. In mindestens einer Ausführungsform kann es in einem Roaming-Szenario mit lokaler Verkehrsaufteilung zwei PCRFs geben, die mit der IP-CAN-Sitzung eines UE verbunden sind: eine Home-PCRF (H-PCRF) innerhalb eines HPLMN und eine Visited-PCRF (V-PCRF) innerhalb eines Visited Public Land Mobile Network (VPLMN). In mindestens einer Ausführungsform kann die PCRF 2536 über den P-GW 2534 mit dem Anwendungsserver 2540 kommunikativ verbunden sein. In mindestens einer Ausführungsform kann der Anwendungsserver 2540 dem PCRF 2536 signalisieren, einen neuen Dienstfluss anzugeben und eine geeignete Dienstgüte (QoS) und Gebührenparameter auszuwählen. In mindestens einer Ausführungsform kann PCRF 2536 diese Regel in einer Policy and Charging Enforcement Function (PCEF) (nicht dargestellt) mit einer geeigneten Verkehrsflussvorlage (TFT) und einer QoS-Klassenkennung (QCI) bereitstellen, die eine QoS und Gebührenerhebung gemäß den Angaben des Anwendungsservers 2540 einleitet.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 26 veranschaulicht eine Architektur eines Systems 2600 eines Netzwerks gemäß einigen Ausführungsformen. In mindestens einer Ausführungsform umfasst das System 2600 einen UE 2602, einen 5G-Zugangsknoten oder RAN-Knoten (dargestellt als (R)AN-Knoten 2608), eine User Plane Function (dargestellt als UPF 2604), ein Datennetzwerk (DN 2606), bei dem es sich beispielsweise um Betreiberdienste, Internetzugang oder Dienste Dritter handeln kann, und ein 5G-Kernnetzwerk (5GC) (dargestellt als CN 2610).
  • In mindestens einer Ausführungsform umfasst CN 2610 eine Authentifizierungsserverfunktion (AUSF 2614), eine Kernzugangs- und Mobilitätsmanagementfunktion (AMF 2612), eine Sitzungsmanagementfunktion (SMF 2618), eine Netzwerkexpositionsfunktion (NEF 2616), eine Richtlinienkontrollfunktion (PCF 2622), eine Netzwerkfunktions-(NF)-Speicherfunktion (NRF 2620), eine einheitliche Datenverwaltung (UDM 2624) und eine Anwendungsfunktion (AF 2626). In mindestens einer Ausführungsform kann CN 2610 auch andere Elemente enthalten, die nicht dargestellt sind, wie z.B. eine Netzwerkfunktion zur Speicherung strukturierter Daten (SDSF), eine Netzwerkfunktion zur Speicherung unstrukturierter Daten (UDSF) und Variationen davon.
  • In mindestens einer Ausführungsform kann UPF 2604 als Ankerpunkt für Intra-RAT- und Inter-RAT-Mobilität, als externer PDU-Sitzungs-Verbindungspunkt zu DN 2606 und als Verzweigungspunkt zur Unterstützung von PDU-Sitzungen mit mehreren Teilnehmern fungieren. In mindestens einer Ausführungsform kann UPF 2604 auch Paketrouting und -weiterleitung, Paketinspektion, Durchsetzung von Richtlinienregeln für die Benutzerebene, rechtmäßiges Abfangen von Paketen (UP-Sammlung), Verkehrsnutzungsberichte, QoS-Behandlung für die Benutzerebene (z.B. Paketfilterung, Gating, UL/DL-Ratenerzwingung), Uplink-Verkehrsüberprüfung (z.B. SDF auf QoS-Flow-Mapping), Paketmarkierung auf Transportebene in Uplink und Downlink sowie Downlink-Paketpufferung und Auslösung von Downlink-Datenbenachrichtigungen durchführen. In mindestens einer Ausführungsform kann UPF 2604 einen Uplink-Klassifikator enthalten, um die Weiterleitung von Verkehrsströmen an ein Datennetzwerk zu unterstützen. In mindestens einer Ausführungsform kann DN 2606 verschiedene Netzbetreiberdienste, Internetzugang oder Dienste von Drittanbietern darstellen.
  • In mindestens einer Ausführungsform kann AUSF 2614 Daten für die Authentifizierung von UE 2602 speichern und authentifizierungsbezogene Funktionen verwalten. In mindestens einer Ausführungsform kann AUSF 2614 einen gemeinsamen Authentifizierungsrahmen für verschiedene Zugangsarten ermöglichen.
  • In mindestens einer Ausführungsform kann AMF 2612 für das Registrierungsmanagement (z.B. für die Registrierung von UE 2602 usw.), das Verbindungsmanagement, das Erreichbarkeitsmanagement, das Mobilitätsmanagement und das rechtmäßige Abfangen von AMF-bezogenen Ereignissen sowie die Zugangsauthentifizierung und -autorisierung zuständig sein. In mindestens einer Ausführungsform kann AMF 2612 den Transport von SM-Nachrichten für SMF 2618 bereitstellen und als transparenter Proxy für das Routing von SM-Nachrichten fungieren. In mindestens einer Ausführungsform kann AMF 2612 auch den Transport von SMS-Nachrichten (Short Message Service) zwischen UE 2602 und einer SMS-Funktion (SMSF) bereitstellen (in 26 nicht dargestellt). In mindestens einer Ausführungsform kann AMF 2612 als Sicherheitsankerfunktion (SEA) fungieren, was eine Interaktion mit AUSF 2614 und UE 2602 und den Empfang eines Zwischenschlüssels umfassen kann, der als Ergebnis des Authentifizierungsprozesses von UE 2602 erstellt wurde. In mindestens einer Ausführungsform, in der USIM-basierte Authentifizierung verwendet wird, kann AMF 2612 Sicherheitsmaterial von AUSF 2614 abrufen. In mindestens einer Ausführungsform kann AMF 2612 auch eine Sicherheits-Kontext-Management-Funktion (SCM) enthalten, die einen Schlüssel von SEA erhält, den sie zur Ableitung von zugangsnetzspezifischen Schlüsseln verwendet. In mindestens einer Ausführungsform kann AMF 2612 außerdem ein Abschlusspunkt der RAN-CP-Schnittstelle (N2-Referenzpunkt) und ein Abschlusspunkt der NAS-Signalisierung (NI) sein und NAS-Verschlüsselung und Integritätsschutz durchführen.
  • In mindestens einer Ausführungsform kann AMF 2612 auch NAS-Signalisierung mit einem UE 2602 über eine N3-Interworking-Function (IWF)-Schnittstelle unterstützen. In mindestens einer Ausführungsform kann N3IWF verwendet werden, um den Zugang zu nicht vertrauenswürdigen Stellen zu ermöglichen. In mindestens einer Ausführungsform kann N3IWF ein Abschlusspunkt für N2- und N3-Schnittstellen für die Steuerebene bzw. die Benutzerebene sein und als solcher die N2-Signalisierung von SMF und AMF für PDU-Sitzungen und QoS verarbeiten, Pakete für IPSec- und N3-Tunneling einkapseln/entkapseln, N3-Pakete der Benutzerebene im Uplink markieren und QoS entsprechend der N3-Paketmarkierung durchsetzen, wobei QoS-Anforderungen im Zusammenhang mit einer solchen über N2 empfangenen Markierung berücksichtigt werden. In mindestens einer Ausführungsform kann N3IWF auch Uplink- und Downlink-NAS (NI)-Signalisierung zwischen UE 2602 und AMF 2612 weiterleiten und Uplink- und Downlink-User-Plane-Pakete zwischen UE 2602 und UPF 2604 weiterleiten. In mindestens einer Ausführungsform bietet N3IWF auch Mechanismen für den IPsec-Tunnelaufbau mit UE 2602.
  • In mindestens einer Ausführungsform kann SMF 2618 für das Sitzungsmanagement verantwortlich sein (z.B. Sitzungsaufbau, -änderung und -freigabe, einschließlich der Aufrechterhaltung des Tunnels zwischen UPF- und AN-Knoten); Zuweisung und Verwaltung von UE-IP-Adressen (einschließlich optionaler Autorisierung); Auswahl und Steuerung der UP-Funktion; Konfiguration der Verkehrslenkung bei UPF, um den Verkehr an das richtige Ziel zu leiten; Beendigung von Schnittstellen zu Richtlinienkontrollfunktionen; Kontrolle des Teils der Richtliniendurchsetzung und der QoS; rechtmäßiges Abfangen (für SM-Ereignisse und Schnittstelle zum LI-System); Beendigung von SM-Teilen von NAS-Nachrichten; Downlink-Datenbenachrichtigung; Initiator von AN-spezifischen SM-Informationen, die über AMF über N2 an AN gesendet werden; Bestimmung des SSC-Modus einer Sitzung. In mindestens einer Ausführungsform kann SMF 2618 die folgenden Roaming-Funktionen enthalten: lokale Durchsetzung der Anwendung von QoS SLAB (VPLMN); Erhebung von Gebührendaten und Gebührenschnittstelle (VPLMN); rechtmäßiges Abfangen (in VPLMN für SM-Ereignisse und Schnittstelle zum LI-System); Unterstützung der Interaktion mit externen DN für den Transport von Signalen zur PDU-Sitzungsautorisierung/Authentifizierung durch externe DN.
  • In mindestens einer Ausführungsform kann NEF 2616 Mittel zur sicheren Freigabe von Diensten und Fähigkeiten bereitstellen, die von 3GPP-Netzfunktionen für Dritte, interne Freigabe/Wiederfreigabe, Anwendungsfunktionen (z.B. AF 2626), Edge-Computing- oder Fog-Computing-Systeme usw. bereitgestellt werden. In mindestens einer Ausführungsform kann NEF 2616 AFs authentifizieren, autorisieren und/oder drosseln. In mindestens einer Ausführungsform kann NEF 2616 auch mit AF 2626 ausgetauschte Informationen und mit internen Netzwerkfunktionen ausgetauschte Informationen übersetzen. In mindestens einer Ausführungsform kann NEF 2616 zwischen einem AF-Service-Identifier und einer internen 5GC-Information übersetzen. In mindestens einer Ausführungsform kann NEF 2616 auch Informationen von anderen Netzwerkfunktionen (NFs) empfangen, die auf den offengelegten Fähigkeiten anderer Netzwerkfunktionen basieren. In mindestens einer Ausführungsform können diese Informationen in NEF 2616 als strukturierte Daten oder in einer Datenspeicher-NF unter Verwendung einer standardisierten Schnittstelle gespeichert werden. In mindestens einer Ausführungsform können die gespeicherten Informationen dann von NEF 2616 an andere NFs und AFs weitergegeben und/oder für andere Zwecke wie Analysen verwendet werden.
  • In mindestens einer Ausführungsform kann NRF 2620 Service Discovery Funktionen unterstützen, NF Discovery Requests von NF-Instanzen empfangen und Informationen über entdeckte NF-Instanzen an NF-Instanzen liefern. In mindestens einer Ausführungsform verwaltet NRF 2620 auch Informationen über verfügbare NF-Instanzen und deren unterstützte Dienste.
  • In mindestens einer Ausführungsform kann PCF 2622 Regeln für Funktionen der Steuerungsebene bereitstellen, um diese durchzusetzen, und sie kann auch ein einheitliches Regelwerk zur Steuerung des Netzwerkverhaltens unterstützen. In mindestens einer Ausführungsform kann PCF 2622 auch ein Frontend (FE) implementieren, um auf Abonnementinformationen zuzugreifen, die für Richtlinienentscheidungen in einem UDR von UDM 2624 relevant sind.
  • In mindestens einer Ausführungsform kann UDM 2624 abonnementbezogene Informationen verarbeiten, um die Abwicklung von Kommunikationssitzungen durch Netzentitäten zu unterstützen, und kann Abonnementdaten des UE 2602 speichern. In mindestens einer Ausführungsform kann UDM 2624 zwei Teile umfassen, eine Anwendung FE und ein User Data Repository (UDR). In mindestens einer Ausführungsform kann das UDM ein UDM FE enthalten, das für die Verarbeitung von Anmeldeinformationen, die Standortverwaltung, die Abonnementverwaltung usw. zuständig ist. In mindestens einer Ausführungsform können mehrere verschiedene Front-Ends denselben Benutzer bei verschiedenen Transaktionen bedienen. In mindestens einer Ausführungsform greift UDM-FE auf die in einem UDR gespeicherten Abonnementinformationen zu und führt die Verarbeitung von Authentifizierungsnachweisen, die Bearbeitung der Benutzeridentifikation, die Zugangsberechtigung, die Verwaltung der Registrierung/Mobilität und die Abonnementverwaltung durch. In mindestens einer Ausführungsform kann UDR mit PCF 2622 interagieren. In mindestens einer Ausführungsform kann UDM 2624 auch die SMS-Verwaltung unterstützen, wobei eine SMS-FE eine ähnliche Anwendungslogik wie zuvor beschrieben implementiert.
  • In mindestens einer Ausführungsform kann AF 2626 den Einfluss der Anwendung auf die Verkehrslenkung, den Zugang zu einem Network Capability Exposure (NCE) und die Interaktion mit einem Policy Framework für die Richtlinienkontrolle ermöglichen. In mindestens einer Ausführungsform kann NCE ein Mechanismus sein, der es einem 5GC und AF 2626 ermöglicht, einander über NEF 2616, das für Edge-Computing-Implementierungen verwendet werden kann, Informationen zur Verfügung zu stellen. In mindestens einer Ausführungsform können Dienste von Netzbetreibern und Drittanbietern in der Nähe des Access Point of Attachment von UE 2602 gehostet werden, um eine effiziente Dienstbereitstellung durch eine geringere End-to-End-Latenz und Belastung eines Transportnetzwerks zu erreichen. In mindestens einer Ausführungsform kann 5GC für Edge-Computing-Implementierungen eine UPF 2604 in der Nähe von UE 2602 auswählen und eine Verkehrslenkung von UPF 2604 zu DN 2606 über die N6-Schnittstelle durchführen. In mindestens einer Ausführungsform kann dies auf UE-Abonnementdaten, UE-Standort und von AF 2626 bereitgestellten Informationen beruhen. In mindestens einer Ausführungsform kann AF 2626 die UPF-(Neu-)Auswahl und das Verkehrsrouting beeinflussen. In mindestens einer Ausführungsform kann ein Netzbetreiber, wenn AF 2626 als vertrauenswürdige Instanz betrachtet wird, AF 2626 erlauben, direkt mit relevanten NFs zu interagieren.
  • In mindestens einer Ausführungsform kann CN 2610 ein SMSF enthalten, das für die Überprüfung und Verifizierung von SMS-Abonnements und die Weiterleitung von SM-Nachrichten an/von UE 2602 an/von anderen Stellen, wie z.B. einem SMS-GMSC/IWMSC/SMS-Router, verantwortlich sein kann. In mindestens einer Ausführungsform kann SMS auch mit AMF 2612 und UDM 2624 für das Benachrichtigungsverfahren interagieren, dass UE 2602 für die SMS-Übertragung verfügbar ist (z.B. Setzen eines UEnicht-erreichbar-Flags und Benachrichtigung von UDM 2624, wenn UE 2602 für SMS verfügbar ist).
  • In mindestens einer Ausführungsform kann das System 2600 die folgenden dienstbasierten Schnittstellen enthalten: Namf: Dienstbasierte Schnittstelle, die von AMF dargestellt wird; Nsmf: Dienstbasierte Schnittstelle, die von SMF dargestellt wird; Nnef: Dienstbasierte Schnittstelle, die von NEF dargestellt wird; Npcf: Dienstbasierte Schnittstelle, die von PCF dargestellt wird; Nudm: Dienstbasierte Schnittstelle, die von UDM dargestellt wird; Naf: Dienstbasierte Schnittstelle, die von AF dargestellt wird; Nnrf: Dienstbasierte Schnittstelle, die von NRF dargestellt wird; und Nausf: Dienstgestützte Schnittstelle, die von AUSF dargestellt wird.
  • In mindestens einer Ausführungsform kann das System 2600 die folgenden Referenzpunkte enthalten: N1: Referenzpunkt zwischen UE und AMF; N2: Referenzpunkt zwischen (R)AN und AMF; N3: Referenzpunkt zwischen (R)AN und UPF; N4: Referenzpunkt zwischen SMF und UPF; und N6: Referenzpunkt zwischen UPF und einem Datennetz. In mindestens einer Ausführungsform kann es viele weitere Referenzpunkte und/oder dienstbasierte Schnittstellen zwischen NF-Diensten in NFs geben, wie diese Schnittstellen und Referenzpunkte aus Gründen der Übersichtlichkeit weggelassen wurden. In mindestens einer Ausführungsform kann ein NS-Referenzpunkt zwischen einer PCF und einer AF liegen; ein N7-Referenzpunkt kann zwischen PCF und SMF liegen; ein N11-Referenzpunkt zwischen AMF und SMF; usw. In mindestens einer Ausführungsform kann CN 2610 eine Nx-Schnittstelle enthalten, die eine Inter-CN-Schnittstelle zwischen MME und AMF 2612 ist, um das Interworking zwischen CN 2610 und CN 7226 zu ermöglichen.
  • In mindestens einer Ausführungsform kann das System 2600 mehrere RAN-Knoten (wie den (R)AN-Knoten 2608) umfassen, wobei eine Xn-Schnittstelle zwischen zwei oder mehr (R)AN-Knoten 2608 (z.B. gNBs), die mit 5GC 410 verbunden sind, zwischen einem (R)AN-Knoten 2608 (z.B. gNB), der mit CN 2610 verbunden ist, und einem eNB (z.B. einem Makro-RAN-Knoten) und/oder zwischen zwei eNBs, die mit CN 2610 verbunden sind, definiert ist.
  • In mindestens einer Ausführungsform kann die Xn-Schnittstelle eine Xn-Benutzerebenen-Schnittstelle (Xn-U) und eine Xn-Steuerebenen-Schnittstelle (Xn-C) umfassen. In mindestens einer Ausführungsform kann Xn-U eine nicht garantierte Zustellung von PDUs der Benutzerebene bereitstellen und Datenweiterleitung und Flusssteuerungsfunktionen unterstützen/bereitstellen. In mindestens einer Ausführungsform kann Xn-C Verwaltungs- und Fehlerbehandlungsfunktionen, Funktionen zur Verwaltung einer Xn-C-Schnittstelle, Mobilitätsunterstützung für UE 2602 in einem verbundenen Modus (z.B. CM-CONNECTED) einschließlich Funktionen zur Verwaltung der UE-Mobilität für den verbundenen Modus zwischen einem oder mehreren (R)AN-Knoten 2608 bereitstellen. In mindestens einer Ausführungsform kann die Mobilitätsunterstützung die Kontextübertragung von einem alten (Quelldienenden (R)AN-Knoten 2608 zu einem neuen (Ziel-)dienenden (R)AN-Knoten 2608 umfassen; und die Steuerung von Nutzerebenen-Tunneln zwischen dem alten (Quell-)dienenden (R)AN-Knoten 2608 und dem neuen (Ziel-)dienenden (R)AN-Knoten 2608.
  • In mindestens einer Ausführungsform kann ein Xn-U-Protokollstack eine Transportnetzwerkschicht, die auf der Transportschicht des Internetprotokolls (IP) aufbaut, und eine GTP-U-Schicht auf einer UDP- und/oder IP-Schicht(en) zur Übertragung von PDUs der Benutzerebene umfassen. In mindestens einer Ausführungsform kann der Xn-C-Protokollstack ein Signalisierungsprotokoll der Anwendungsschicht (als Xn Application Protocol (Xn-AP) bezeichnet) und eine Transportnetzwerkschicht, die auf einer SCTP-Schicht aufbaut, umfassen. In mindestens einer Ausführungsform kann die SCTP-Schicht über einer IP-Schicht liegen. In mindestens einer Ausführungsform bietet die SCTP-Schicht eine garantierte Zustellung von Nachrichten der Anwendungsschicht. In mindestens einer Ausführungsform wird in einer Transport-IP-Schicht eine Punkt-zu-Punkt-Übertragung zur Übermittlung von Signalisierungs-PDUs verwendet. In mindestens einer Ausführungsform können der Xn-U-Protokollstack und/oder der Xn-C-Protokollstack gleich oder ähnlich wie beispielsweise der/die hierin gezeigte(n) und beschriebene(n) Protokollstack der Benutzerebene und/oder der Steuerebene sein.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 27 ist eine Darstellung eines Steuerebenen-Protokollstacks gemäß einigen Ausführungsformen. In mindestens einer Ausführungsform ist eine Steuerebene 2700 als ein Kommunikationsprotokollstack zwischen UE 2502 (oder alternativ UE 2504), RAN 2516 und MME(s) 2528 dargestellt.
  • In mindestens einer Ausführungsform kann die PHY-Schicht 2702 Informationen, die von der MAC-Schicht 2704 verwendet werden, über eine oder mehrere Luftschnittstellen senden oder empfangen. In mindestens einer Ausführungsform kann die PHY-Schicht 2702 weiterhin Verbindungsanpassung oder adaptive Modulation und Kodierung (AMC), Leistungssteuerung, Zellensuche (z.B. für anfängliche Synchronisation und Handover-Zwecke) und andere Messungen durchführen, die von höheren Schichten, wie z.B. einer RRC-Schicht 2710, verwendet werden. In mindestens einer Ausführungsform kann die PHY-Schicht 2702 weiterhin Fehlererkennung auf Transportkanälen, Vorwärtsfehlerkorrektur (FEC), Kodierung/Dekodierung von Transportkanälen, Modulation/Demodulation von physikalischen Kanälen, Verschachtelung, Ratenanpassung, Zuordnung zu physikalischen Kanälen und MIMO-Antennenverarbeitung (Multiple Input Multiple Output) durchführen.
  • In mindestens einer Ausführungsform kann die MAC-Schicht 2704 die Zuordnung zwischen logischen Kanälen und Transportkanälen, das Multiplexen von MAC-Dienstdateneinheiten (SDUs) von einem oder mehreren logischen Kanälen auf Transportblöcke (TB), die über Transportkanäle an die PHY zu liefern sind, das Demultiplexen von MAC-SDUs auf einen oder mehrere logische Kanäle von Transportblöcken (TB), die von der PHY über Transportkanäle geliefert werden, das Multiplexen von MAC-SDUs auf TBs, die Meldung von Planungsinformationen, die Fehlerkorrektur durch hybride automatische Wiederholungsanforderung (HARD) und die Priorisierung logischer Kanäle durchführen.
  • In mindestens einer Ausführungsform kann die RLC-Schicht 2706 in einer Vielzahl von Betriebsmodi arbeiten, darunter: Transparent Mode (TM), Unacknowledged Mode (UM) und Acknowledged Mode (AM). In mindestens einer Ausführungsform kann die RLC-Schicht 2706 die Übertragung von Protokolldateneinheiten (PDUs) der oberen Schicht, die Fehlerkorrektur durch automatische Wiederholungsanforderung (ARQ) für AM-Datenübertragungen und die Verkettung, Segmentierung und Wiederzusammensetzung von RLC-SDUs für UM- und AM-Datenübertragungen durchführen. In mindestens einer Ausführungsform kann die RLC-Schicht 2706 auch eine Neusegmentierung von RLC-Daten-PDUs für AM-Datenübertragungen durchführen, RLC-Daten-PDUs für UM- und AM-Datenübertragungen neu anordnen, doppelte Daten für UM- und AM-Datenübertragungen erkennen, RLC-SDUs für UM- und AM-Datenübertragungen verwerfen, Protokollfehler für AM-Datenübertragungen erkennen und eine RLC-Wiederherstellung durchführen.
  • In mindestens einer Ausführungsform kann die PDCP-Schicht 2708 eine Header-Komprimierung und -Dekomprimierung von IP-Daten durchführen, PDCP-Sequenznummern (SNs) beibehalten, eine sequenzgenaue Zustellung von PDUs der oberen Schicht bei der Wiederherstellung der unteren Schichten durchführen, Duplikate von SDUs der unteren Schicht bei der Wiederherstellung der unteren Schichten für Funkträger, die auf RLC AM abgebildet sind, beseitigen, Daten der Steuerebene verschlüsseln und entschlüsseln, einen Integritätsschutz und eine Integritätsüberprüfung von Daten der Steuerebene durchführen, das zeitgesteuerte Verwerfen von Daten steuern und Sicherheitsoperationen durchführen (z.B. Chiffrierung, Dechiffrierung, Integritätsschutz, Integritätsprüfung usw.).
  • In mindestens einer Ausführungsform können die Hauptdienste und -funktionen einer RRC-Schicht 2710 die Übertragung von Systeminformationen (z.B. in Master Information Blocks (MIBs) oder System Information Blocks (SIBs), die sich auf eine Nicht-Zugangsschicht (NAS) beziehen), die Übertragung von Systeminformationen, die sich auf eine Zugangsschicht (AS) beziehen, Paging, Aufbau, Aufrechterhaltung und Abbau einer RRC-Verbindung zwischen einem UE und E-UTRAN (z.B., RRC-Verbindungsruf, RRC-Verbindungsaufbau, RRC-Verbindungsänderung und RRC-Verbindungsfreigabe), Aufbau, Konfiguration, Aufrechterhaltung und Freigabe von Punkt-zu-Punkt-Funkträgern, Sicherheitsfunktionen einschließlich Schlüsselverwaltung, Mobilität zwischen Funkzugangstechnologien (RAT) und Messkonfiguration für UE-Messberichte. In mindestens einer Ausführungsform können die MIBs und SIBs ein oder mehrere Informationselemente (IEs) umfassen, die jeweils aus einzelnen Datenfeldern oder Datenstrukturen bestehen können.
  • In mindestens einer Ausführungsform können UE 2502 und RAN 2516 eine Uu-Schnittstelle (z.B. eine LTE-Uu-Schnittstelle) verwenden, um Steuerebenendaten über einen Protokollstack auszutauschen, der die PHY-Schicht 2702, die MAC-Schicht 2704, die RLC-Schicht 2706, die PDCP-Schicht 2708 und die RRC-Schicht 2710 umfasst.
  • In mindestens einer Ausführungsform bilden Nicht-Zugriffsschicht-Protokolle (NAS-Protokolle 2712) eine höchste Schicht einer Steuerungsebene zwischen UE 2502 und MME(s) 2528. In mindestens einer Ausführungsform unterstützen die NAS-Protokolle 2712 die Mobilität des UE 2502 und Sitzungsmanagementprozeduren zum Aufbau und zur Aufrechterhaltung der IP-Konnektivität zwischen UE 2502 und P-GW 2534.
  • In mindestens einer Ausführungsform kann die Si-Anwendungsprotokoll (S1-AP)-Schicht (Si-AP-Schicht 2722) Funktionen einer Si-Schnittstelle unterstützen und elementare Prozeduren (EPs) umfassen. In mindestens einer Ausführungsform ist ein EP eine Einheit der Interaktion zwischen RAN 2516 und CN 2528. In mindestens einer Ausführungsform können die Dienste der S1-AP-Schicht zwei Gruppen umfassen: UE-assoziierte Dienste und Nicht-UE-assoziierte Dienste. In mindestens einer Ausführungsform führen diese Dienste Funktionen aus, einschließlich, aber nicht beschränkt auf: E-UTRAN Radio Access Bearer (E-RAB) Management, UE-Fähigkeitsanzeige, Mobilität, NAS-Signaltransport, RAN Information Management (RIM) und Konfigurationsübertragung.
  • In mindestens einer Ausführungsform kann die Stream Control Transmission Protocol (SCTP)-Schicht (alternativ als Stream Control Transmission Protocol/Internet Protocol (SCTP/IP)-Schicht bezeichnet) (SCTP-Schicht 2720) eine zuverlässige Zustellung von Signalisierungsnachrichten zwischen RAN 2516 und MME(s) 2528 gewährleisten, die teilweise auf einem IP-Protokoll basiert, das von einer IP-Schicht 2718 unterstützt wird. In mindestens einer Ausführungsform können sich die L2-Schicht 2716 und die L1-Schicht 2714 auf Kommunikationsverbindungen (z.B. drahtgebunden oder drahtlos) beziehen, die von einem RAN-Knoten und einer MME zum Informationsaustausch verwendet werden.
  • In mindestens einer Ausführungsform können RAN 2516 und MME(s) 2528 eine S1-MME-Schnittstelle verwenden, um Steuerebenendaten über einen Protokollstack auszutauschen, der eine L1-Schicht 2714, L2-Schicht 2716, IP-Schicht 2718, SCTP-Schicht 2720 und Si-AP-Schicht 2722 umfasst.
  • 28 ist eine Darstellung eines Protokollstacks der Benutzerebene gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist eine Benutzerebene 2800 als Kommunikationsprotokollstack zwischen einem UE 2502, RAN 2516, S-GW 2530 und P-GW 2534 dargestellt. In mindestens einer Ausführungsform kann die Benutzerebene 2800 die gleichen Protokollschichten wie beispielsweise die Steuerebene 2700 verwenden. In mindestens einer Ausführungsform können UE 2502 und RAN 2516 beispielsweise eine Uu-Schnittstelle (z.B. eine LTE-Uu-Schnittstelle) verwenden, um Daten der Benutzerebene über einen Protokollstack auszutauschen, der PHY-Schicht 2702, MAC-Schicht 2704, RLC-Schicht 2706 und PDCP-Schicht 2708 umfasst.
  • In mindestens einer Ausführungsform kann das General Packet Radio Service (GPRS) Tunneling Protocol for a user plane (GTP-U) layer (GTP-U layer 2804) zur Übertragung von Benutzerdaten innerhalb eines GPRS-Kernnetzwerks und zwischen einem Funkzugangsnetzwerk und einem Kernnetzwerk verwendet werden. In mindestens einer Ausführungsform können die transportierten Nutzdaten Pakete in einem der Formate IPv4, IPv6 oder PPP sein. In mindestens einer Ausführungsform kann die UDP- und IP-Sicherheitsschicht (UDP/IP-Schicht 2802) Prüfsummen für die Datenintegrität, Portnummern für die Adressierung verschiedener Funktionen an einer Quelle und einem Ziel sowie Verschlüsselung und Authentifizierung für ausgewählte Datenströme bereitstellen. In mindestens einer Ausführungsform können RAN 2516 und S-GW 2530 eine S1-U-Schnittstelle verwenden, um Daten der Benutzerebene über einen Protokollstack auszutauschen, der L1-Schicht 2714, L2-Schicht 2716, UDP/IP-Schicht 2802 und GTP-U-Schicht 2804 umfasst. In mindestens einer Ausführungsform können S-GW 2530 und P-GW 2534 eine S5/S8a-Schnittstelle verwenden, um Daten der Benutzerebene über einen Protokollstack auszutauschen, der L1-Schicht 2714, L2-Schicht 2716, UDP/IP-Schicht 2802 und GTP-U-Schicht 2804 umfasst. In mindestens einer Ausführungsform, wie oben in Bezug auf 27 beschrieben, unterstützen NAS-Protokolle die Mobilität des UE 2502 und Sitzungsmanagementverfahren zum Aufbau und zur Aufrechterhaltung der IP-Konnektivität zwischen UE 2502 und P-GW 2534.
  • In mindestens einer Ausführungsform sind ein oder mehrere Schaltkreise, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die obigen Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß den hierin in Bezug auf die 1-10 beschriebenen Ausführungsformen.
  • 29 veranschaulicht die Komponenten 2900 eines Kernnetzwerks, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können die Komponenten des CN 2538 in einem physikalischen Knoten oder in separaten physikalischen Knoten implementiert sein, einschließlich Komponenten zum Lesen und Ausführen von Anweisungen von einem maschinenlesbaren oder computerlesbaren Medium (z.B. einem nicht-transitorischen maschinenlesbaren Speichermedium). In mindestens einer Ausführungsform wird Netzwerkfunktionsvirtualisierung (NFV) verwendet, um beliebige oder alle der oben beschriebenen Netzwerkknotenfunktionen über ausführbare Befehle zu virtualisieren, die in einem oder mehreren computerlesbaren Speichermedien gespeichert sind (weiter unten im Einzelnen beschrieben). In mindestens einer Ausführungsform kann eine logische Instanziierung von CN 2538 als ein Netzwerk-Slice 2902 bezeichnet werden (z.B. wird gezeigt, dass das Netzwerk-Slice 2902 HSS 2532, MME(s) 2528 und S-GW 2530 umfasst). In mindestens einer Ausführungsform kann eine logische Instanziierung eines Teils von CN 2538 als Netzwerk-Subslice 2904 bezeichnet werden (z.B. umfasst das Netzwerk-Subslice 2904 P-GW 2534 und PCRF 2536).
  • In mindestens einer Ausführungsform können NFV-Architekturen und -Infrastrukturen verwendet werden, um eine oder mehrere Netzwerkfunktionen, die alternativ von proprietärer Hardware ausgeführt werden, auf physikalischen Ressourcen zu virtualisieren, die eine Kombination aus branchenüblicher Serverhardware, Speicherhardware oder Switches umfassen. In mindestens einer Ausführungsform können NFV-Systeme zur Ausführung virtueller oder rekonfigurierbarer Implementierungen von einer oder mehreren EPC-Komponenten/Funktionen verwendet werden.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 30 ist ein Blockdiagramm, das Komponenten eines Systems 3000 zur Unterstützung der Netzwerkfunktionsvirtualisierung (NFV) veranschaulicht, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist das System 3000 so dargestellt, dass es einen virtualisierten Infrastrukturmanager (dargestellt als VIM 3002), eine Netzwerkfunktionsvirtualisierungsinfrastruktur (dargestellt als NFVI 3004), einen VNF-Manager (dargestellt als VNFM 3006), virtualisierte Netzwerkfunktionen (dargestellt als VNF 3008), einen Elementmanager (dargestellt als EM 3010), einen NFV-Orchestrator (dargestellt als NFVO 3012) und einen Netzwerkmanager (dargestellt als NM 3014) umfasst.
  • In mindestens einer Ausführungsform verwaltet VIM 3002 die Ressourcen von NFVI 3004. In mindestens einer Ausführungsform kann NFVI 3004 physikalische oder virtuelle Ressourcen und Anwendungen (einschließlich Hypervisoren) enthalten, die zur Ausführung des Systems 3000 verwendet werden. In mindestens einer Ausführungsform kann VIM 3002 einen Lebenszyklus virtueller Ressourcen mit NFVI 3004 verwalten (z.B. Erstellung, Wartung und Abbau virtueller Maschinen (VMs), die mit einer oder mehreren physikalischen Ressourcen verbunden sind), VM-Instanzen verfolgen, Leistung, Fehler und Sicherheit von VM-Instanzen und zugehörigen physikalischen Ressourcen verfolgen und VM-Instanzen und zugehörige physikalische Ressourcen anderen Verwaltungssystemen zugänglich machen.
  • In mindestens einer Ausführungsform kann VNFM 3006 VNF 3008 verwalten. In mindestens einer Ausführungsform kann VNF 3008 zur Ausführung von EPC-Komponenten/Funktionen verwendet werden. In mindestens einer Ausführungsform kann VNFM 3006 einen Lebenszyklus von VNF 3008 verwalten und Leistung, Fehler und Sicherheit virtueller Aspekte von VNF 3008 verfolgen. In mindestens einer Ausführungsform kann EM 3010 die Leistung, Fehler und Sicherheit der funktionalen Aspekte von VNF 3008 verfolgen. In mindestens einer Ausführungsform können die Verfolgungsdaten von VNFM 3006 und EM 3010 zum Beispiel Leistungsmessungsdaten (PM) umfassen, die von VIM 3002 oder NFVI 3004 verwendet werden. In mindestens einer Ausführungsform können sowohl VNFM 3006 als auch EM 3010 eine Menge von VNFs des Systems 3000 hoch- bzw. herunterskalieren.
  • In mindestens einer Ausführungsform kann NFVO 3012 Ressourcen von NFVI 3004 koordinieren, autorisieren, freigeben und in Anspruch nehmen, um einen angeforderten Dienst bereitzustellen (z.B. um eine EPC-Funktion, -Komponente oder -Slice auszuführen). In mindestens einer Ausführungsform kann NM 3014 ein Paket von Endbenutzerfunktionen bereitstellen, die für die Verwaltung eines Netzwerks zuständig sind, das Netzwerkelemente mit VNFs, nicht virtualisierte Netzwerkfunktionen oder beides umfassen kann (die Verwaltung von VNFs kann über ein EM 3010 erfolgen).
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß den hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • COMPUTERGESTÜTZTE SYSTEME
  • Die folgenden Figuren zeigen, ohne Beschränkung darauf, beispielhafte computergestützte Systeme, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • 31 veranschaulicht ein Verarbeitungssystem 3100, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das Verarbeitungssystem 3100 einen oder mehrere Prozessoren 3102 und einen oder mehrere Grafikprozessoren 3108, und kann ein Einzelprozessor-Desktop-System, ein Multiprozessor-Workstation-System oder ein Serversystem mit einer großen Anzahl von Prozessoren 3102 oder Prozessorkernen 3107 sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 3100 eine Verarbeitungsplattform, die in eine integrierte System-on-a-Chip („SoC“)-Schaltung zur Verwendung in mobilen, tragbaren oder eingebetteten Geräten integriert ist.
  • In mindestens einer Ausführungsform kann das Verarbeitungssystem 3100 eine serverbasierte Spielplattform, eine Spielkonsole, eine Medienkonsole, eine mobile Spielkonsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole beinhalten oder in diese integriert sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 3100 ein Mobiltelefon, ein Smartphone, ein Tablet-Computergerät oder ein mobiles Internetgerät. In mindestens einer Ausführungsform kann das Verarbeitungssystem 3100 auch ein Wearable-Gerät, wie z.B. ein Smart Watch-Wearable-Gerät, eine intelligente Brille, ein Augmented-Reality-Gerät oder ein Virtual-Reality-Gerät beinhalten, mit diesem gekoppelt oder in dieses integriert sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 3100 ein Fernseh- oder Set-Top-Box-Gerät mit einem oder mehreren Prozessoren 3102 und einer grafischen Oberfläche, die von einem oder mehreren Grafikprozessoren 3108 erzeugt wird.
  • In mindestens einer Ausführungsform enthalten ein oder mehrere Prozessoren 3102 jeweils einen oder mehrere Prozessorkerne 3107 zur Verarbeitung von Anweisungen, die bei ihrer Ausführung Operationen für System- und Anwendersoftware durchführen. In mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 3107 so konfiguriert, dass er einen bestimmten Befehlssatz 3109 verarbeitet. In mindestens einer Ausführungsform kann der Befehlssatz 3109 Complex Instruction Set Computing („CISC“), Reduced Instruction Set Computing („RISC“) oder das Rechnen über Very Long Instruction Word („VLIW“) erleichtern. In mindestens einer Ausführungsform können die Prozessorkerne 3107 jeweils einen anderen Befehlssatz 3109 verarbeiten, der Anweisungen enthalten kann, um die Emulation anderer Befehlssätze zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 3107 auch andere Verarbeitungsvorrichtungen enthalten, wie z.B. einen digitalen Signalprozessor („DSP“).
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 3102 einen Cachespeicher („Cache“) 3104. In mindestens einer Ausführungsform kann der Prozessor 3102 einen einzigen internen Cache oder mehrere Ebenen von internem Cache haben. In mindestens einer Ausführungsform wird der Cachespeicher von verschiedenen Komponenten des Prozessors 3102 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 3102 auch einen externen Cache (z.B. einen Level 3 („L3“)-Cache oder Last Level Cache („LLC“)) (nicht dargestellt), der von den Prozessorkernen 3107 unter Verwendung bekannter Cache-Kohärenztechniken gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist zusätzlich eine Registerdatei 3106 in dem Prozessor 3102 enthalten, die verschiedene Arten von Registern zum Speichern unterschiedlicher Datentypen (z.B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister) enthalten kann. In mindestens einer Ausführungsform kann die Registerdatei 3106 Universalregister oder andere Register enthalten.
  • In mindestens einer Ausführungsform ist/sind ein oder mehrere Prozessor(en) 3102 mit einem oder mehreren Schnittstellenbus(en) 3110 gekoppelt, um Kommunikationssignale wie Adress-, Daten- oder Steuersignale zwischen dem Prozessor 3102 und anderen Komponenten in dem Verarbeitungssystem 3100 zu übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 3110 ein Prozessorbus sein, wie z.B. eine Version eines Direct Media Interface („DMI“)-Busses. In mindestens einer Ausführungsform ist der Schnittstellenbus 3110 nicht auf einen DMI-Bus beschränkt und kann einen oder mehrere Peripheral Component Interconnect-Busse (z.B. „PCI“, PCI Express („PCIe“)), Speicherbusse oder andere Arten von Schnittstellenbussen beinhalten. In mindestens einer Ausführungsform beinhalten der/die Prozessor(en) 3102 einen integrierten Speichercontroller 3116 und einen Plattformcontroller-Hub 3130. In mindestens einer Ausführungsform erleichtert der Speichercontroller 3116 die Kommunikation zwischen einem Speichervorrichtung und anderen Komponenten des Verarbeitungssystems 3100, während der Plattformcontroller-Hub („PCH“) 3130 Verbindungen zu Eingabe/Ausgabe-Geräten („E/A“) über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann die Speichervorrichtung 3120 eine dynamische Direktzugriffsspeicher („DRAM“)-Vorrichtung, eine statische Direktzugriffsspeicher („SRAM“)-Vorrichtung, eine Flash-Speicher-Vorrichtung, eine Phasenwechsel-Speicher-Vorrichtung oder eine andere Speichervorrichtung mit geeigneter Leistung sein, um als Prozessorspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 3120 als Systemspeicher für das Verarbeitungssystem 3100 arbeiten, um Daten 3122 und Anweisungen 3121 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 3102 eine Anwendung oder einen Prozess ausführen. In mindestens einer Ausführungsform koppelt der Speichercontroller 3116 auch mit einem optionalen externen Grafikprozessor 3112, der mit einem oder mehreren Grafikprozessoren 3108 in den Prozessoren 3102 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 3111 mit dem/den Prozessor(en) 3102 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 3111 eine oder mehrere interne Anzeigevorrichtungen, wie in einem mobilen elektronischen Gerät oder einem Laptop, oder eine externe Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) angeschlossen ist, beinhalten. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 3111 eine kopfmontierte Anzeige („HMD“), wie beispielsweise eine stereoskopische Anzeigevorrichtung zur Verwendung in Anwendungen der virtuellen Realität („VR“) oder der erweiterten Realität („AR“), beinhalten.
  • In mindestens einer Ausführungsform ermöglicht der Plattformcontroller-Hub 3130 die Verbindung von Peripheriegeräten mit der Speichervorrichtung 3120 und dem Prozessor 3102 über einen Hochgeschwindigkeits-E/A-Bus. In mindestens einer Ausführungsform beinhalten die E/A-Peripheriegeräte, ohne darauf beschränkt zu sein, einen Audiocontroller 3146, einen Netzwerkcontroller 3134, eine Firmware-Schnittstelle 3128, einen drahtlosen Transceiver 3126, Berührungssensoren 3125 und eine Datenspeichervorrichtung 3124 (z.B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 3124 über eine Speicherschnittstelle (z.B. SATA) oder über einen Peripheriebus, wie PCI oder PCIe, verbunden sein. In mindestens einer Ausführungsform können die Berührungssensoren 3125 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren beinhalten. In mindestens einer Ausführungsform kann der drahtlose Transceiver 3126 ein Wi-Fi-Transceiver, ein Bluetooth-Transceiver oder ein Mobilfunk-Transceiver wie beispielsweise ein 3G-, 4G- oder Long Term Evolution („LTE“)-Transceiver sein. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 3128 eine Kommunikation mit System-Firmware und kann z.B. eine einheitliche erweiterbare Firmware-Schnittstelle („UEFI“) sein. In mindestens einer Ausführungsform kann der Netzwerkcontroller 3134 eine Netzwerkverbindung zu einem kabelgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform koppelt ein Hochleistungs-Netzwerkcontroller (nicht dargestellt) mit dem Schnittstellenbus 3110. In mindestens einer Ausführungsform ist der Audiocontroller 3146 ein Mehrkanal-High-Definition-Audiocontroller. In mindestens einer Ausführungsform enthält das Verarbeitungssystem 3100 einen optionalen Legacy-E/A-Controller 3140 zur Kopplung von Legacy-Geräten (z.B. Personal System 2 („PS/2“)) mit dem Verarbeitungssystem 3100. In mindestens einer Ausführungsform kann der Plattformcontroller-Hub 3130 auch mit einem oder mehreren Universal Serial Bus („USB“)-Controllern 3142 verbinden, die Eingabevorrichtungen, wie z.B. Tastatur- und Mauskombinationen 3143, eine Kamera 3144 oder andere USB-Eingabevorrichtungen verbinden.
  • In mindestens einer Ausführungsform kann eine Instanz des Speichercontrollers 3116 und des Plattformcontroller-Hubs 3130 in einen diskreten externen Grafikprozessor, wie beispielsweise den externen Grafikprozessor 3112, integriert sein. In mindestens einer Ausführungsform können der Plattformcontroller-Hub 3130 und/oder der Speichercontroller 3116 extern zu einem oder mehreren Prozessor(en) 3102 sein. In mindestens einer Ausführungsform kann das Verarbeitungssystem 3100 beispielsweise einen externen Speichercontroller 3116 und einen Plattformcontroller-Hub 3130 enthalten, der als ein Speichercontroller-Hub und Peripheriecontroller-Hub innerhalb eines System-Chipsatzes konfiguriert sein kann, der mit dem/den Prozessor(en) 3102 in Verbindung steht.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 32 veranschaulicht ein Computersystem 3200 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 3200 ein System mit miteinander verbundenen Vorrichtungen und Komponenten, ein SOC oder eine Kombination davon sein. In mindestens einer Ausführungsform ist das Computersystem 3200 mit einem Prozessor 3202 ausgebildet, der Ausführungseinheiten zum Ausführen einer Anweisung enthalten kann. In mindestens einer Ausführungsform kann das Computersystem 3200, ohne Beschränkung darauf, eine Komponente, wie beispielsweise den Prozessor 3202, beinhalten, um Ausführungseinheiten einschließlich Logik zur Durchführung von Algorithmen zur Verarbeitung von Daten einzusetzen. In mindestens einer Ausführungsform kann das Computersystem 3200 Prozessoren beinhalten, wie z.B. die PENTIUM®-Prozessorfamilie, XeonTM, Itanium®, XScaleTM und/oder StrongARMTM, Intel® Core™ oder Intel® Nervana™-Mikroprozessoren, die von der Intel Corporation aus Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 3200 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z.B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • In mindestens einer Ausführungsform kann das Computersystem 3200 in anderen Vorrichtungen wie Handheld-Geräten und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Handheld-Geräte sind Mobiltelefone, Internetprotokollgeräte, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein SoC, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerk-Hubs, Wide-Area-Network („WAN“)-Switches oder jedes andere System umfassen, das eine oder mehrere Anweisungen ausführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 3200, ohne Beschränkung darauf, einen Prozessor 3202 enthalten, der, ohne Beschränkung darauf, eine oder mehrere Ausführungseinheiten 3208 enthalten kann, die so konfiguriert sein können, dass sie ein Compute Unified Device Architecture („CUDA“)-Programm (CUDA® wird von der NVIDIA Corporation in Santa Clara, CA, entwickelt) ausführen. In mindestens einer Ausführungsform ist ein CUDA-Programm mindestens ein Teil einer Softwareanwendung, die in einer CUDA-Programmiersprache geschrieben ist. In mindestens einer Ausführungsform ist das Computersystem 3200 ein Einzelprozessor-Desktop- oder ein Serversystem. In mindestens einer Ausführungsform kann das Computersystem 3200 ein Multiprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 3202, ohne Beschränkung darauf, einen CISC-Mikroprozessor, einen RISC-Mikroprozessor, einen VLIW-Mikroprozessor, einen Prozessor, der eine Kombination von Befehlssätzen implementiert, oder eine beliebige andere Prozessoreinheit, wie z.B. einen digitalen Signalprozessor, beinhalten. In mindestens einer Ausführungsform kann der Prozessor 3202 mit einem Prozessorbus 3210 gekoppelt sein, der Datensignale zwischen dem Prozessor 3202 und anderen Komponenten in dem Computersystem 3200 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 3202, ohne Beschränkung darauf, einen internen Level 1 („L1“)-Cachespeicher („Cache“) 3204 enthalten. In mindestens einer Ausführungsform kann der Prozessor 3202 einen einzigen internen Cache oder mehrere Ebenen von internem Cache haben. In mindestens einer Ausführungsform kann sich der Cachespeicher außerhalb des Prozessors 3202 befinden. In mindestens einer Ausführungsform kann der Prozessor 3202 auch eine Kombination aus sowohl internen als auch externen Caches enthalten. In mindestens einer Ausführungsform kann eine Registerdatei 3206 verschiedene Arten von Daten in verschiedenen Registern, einschließlich, ohne Beschränkung darauf, Ganzzahlregister, Gleitkommaregister, Statusregister und Befehlszeigerregister, speichern.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 3208, einschließlich, ohne Beschränkung darauf, von Logik zur Durchführung von Ganzzahl- und Gleitkommaoperationen, ebenfalls in dem Prozessor 3202. Der Prozessor 3202 kann auch einen Nur-Lese-Speicher („ROM“) für Mikrocode („ucode“) enthalten, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 3208 Logik zur Verarbeitung eines gepackten Befehlssatzes 3209 enthalten. In mindestens einer Ausführungsform können durch Aufnahme des gepackten Befehlssatzes 3209 in einen Befehlssatz eines Universalprozessors 3202 zusammen mit zugehörigen Schaltkreisen zur Ausführung von Anweisungen Operationen, die von vielen Multimedia-Anwendungen verwendet werden, unter Verwendung gepackter Daten in einem Universalprozessor 3202 durchgeführt werden. In mindestens einer Ausführungsform können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors für die Ausführung von Operationen mit gepackten Daten genutzt wird, welches die Notwendigkeit eliminieren kann, kleinere Dateneinheiten über den Datenbus eines Prozessors zu übertragen, um eine oder mehrere Operationen auf bzw. mit einem Datenelement nach dem anderen durchzuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 3208 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 3200, ohne Beschränkung darauf, einen Speicher 3220 enthalten. In mindestens einer Ausführungsform kann der Speicher 3220 als eine DRAM-Vorrichtung, eine SRAM-Vorrichtung, eine Flash-Speicher-Vorrichtung oder eine andere Speichervorrichtung implementiert sein. Der Speicher 3220 kann Anweisung(en) 3219 und/oder Daten 3221 speichern, die durch Datensignale repräsentiert werden, die von dem Prozessor 3202 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip mit dem Prozessorbus 3210 und dem Speicher 3220 gekoppelt sein. In mindestens einer Ausführungsform kann der Systemlogikchip, ohne Beschränkung darauf, einen Speichercontroller-Hub („MCH“) 3216 enthalten, und kann der Prozessor 3202 mit dem MCH 3216 über den Prozessorbus 3210 kommunizieren. In mindestens einer Ausführungsform kann der MCH 3216 einen Speicherpfad 3218 mit hoher Bandbreite zu dem Speicher 3220 zur Befehls- und Datenspeicherung und zur Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH 3216 Datensignale zwischen dem Prozessor 3202, dem Speicher 3220 und anderen Komponenten in dem Computersystem 3200 leiten und Datensignale zwischen dem Prozessorbus 3210, dem Speicher 3220 und einer System-E/A 3222 überbrücken. In mindestens einer Ausführungsform kann der Systemlogikchip einen Grafik-Port zur Kopplung mit einem Grafikcontroller bereitstellen. In mindestens einer Ausführungsform kann der MCH 3216 über einen Speicherpfad 3218 mit hoher Bandbreite mit dem Speicher 3220 gekoppelt sein, und kann die Grafik-/ Videokarte 3212 über eine Accelerated Graphics Port („AGP“)-Verbindung bzw. Zwischenverbindung bzw. Interconnect 3214 mit dem MCH 3216 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 3200 einen System-E/A-Bus 3222 verwenden, der ein proprietärer Hub-Schnittstellenbus ist, um den MCH 3216 mit dem E/A-Controller-Hub („ICH“) 3230 zu koppeln. In mindestens einer Ausführungsform kann der ICH 3230 direkte Verbindungen zu einigen E/A-Geräten über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann der lokale E/A-Bus, ohne Beschränkung darauf, einen Hochgeschwindigkeits-E/A-Bus zur Verbindung von Peripheriegeräten mit dem Speicher 3220, einem Chipsatz und dem Prozessor 3202 umfassen. Beispiele können, ohne Beschränkung darauf, einen Audiocontroller 3229, einen Firmware-Hub („Flash-BIOS“) 3228, einen drahtlosen Transceiver 3226, einen Datenspeicher 3224, einen Legacy-E/A-Controller 3223, der eine Benutzereingabeschnittstelle 3225 und eine Tastaturschnittstelle enthält, einen seriellen Erweiterungs-Port 3227, wie z.B. ein USB, und einen Netzwerkcontroller 3234 beinhalten. Der Datenspeicher 3224 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Gerät, eine Flash-Speicher-Vorrichtung oder eine andere Massenspeichervorrichtung beinhalten.
  • In mindestens einer Ausführungsform veranschaulicht 32 ein System, das miteinander verbundene Hardwaregeräte oder „Chips“ enthält. In mindestens einer Ausführungsform kann 32 ein beispielhaftes SoC veranschaulichen. In mindestens einer Ausführungsform können in 32 dargestellte Vorrichtungen mit proprietären Zwischenverbindungen bzw. Interconnects, standardisierten Interconnects (z.B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Systems 3200 unter Verwendung von Compute-Express-Link („CXL“)-Interconnects miteinander verbunden.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß den hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 33 veranschaulicht ein System 3300, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist das System 3300 eine elektronische Vorrichtung, das einen Prozessor 3310 verwendet. In mindestens einer Ausführungsform kann das System 3300 zum Beispiel, und ohne Beschränkung darauf, ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, eine mobile Vorrichtung, ein Telefon, ein eingebetteter Computer oder eine beliebige andere geeignete elektronische Vorrichtung sein.
  • In mindestens einer Ausführungsform kann das System 3300, ohne Beschränkung darauf, einen Prozessor 3310 enthalten, der mit einer beliebigen Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Geräten bzw. Vorrichtungen kommunikativ gekoppelt ist. In mindestens einer Ausführungsform ist der Prozessor 3310 unter Verwendung eines Busses oder einer Schnittstelle, wie z.B. ein I2C-Bus, ein System Management-Bus („SMBus“), ein Low Pin Count-Bus („LPC“), ein Serial Peripheral Interface („SPI“), ein High Definition Audio-Bus („HDA“), ein Serial Advance Technology Attachment-Bus („SATA“), ein USB-Bus (Versionen 1, 2, 3) oder ein Universal Asynchronous Receiver/Transmitter-Bus („UART“), gekoppelt. In mindestens einer Ausführungsform veranschaulicht 33 ein System, das miteinander verbundene Hardwaregeräte oder „Chips“ enthält. In mindestens einer Ausführungsform kann 33 ein beispielhaftes SoC darstellen. In mindestens einer Ausführungsform können die in 33 dargestellten Vorrichtungen mit proprietären Interconnects, standardisierten Interconnects (z.B. PCIe) oder einer Kombination davon miteinander verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten von 33 unter Verwendung von CXL-Interconnects miteinander verbunden.
  • In mindestens einer Ausführungsform kann 33 eine Anzeige 3324, einen Touchscreen 3325, ein Touchpad 3330, eine Near Field Communications („NFC“)-Einheit 3345, einen Sensor-Hub 3340, einen Wärmesensor 3346, einen Express-Chipsatz („EC“) 3335, ein Trusted Platform Module („TPM“) 3338, BIOS/Firmware/Flash-Speicher („BIOS, FW Flash“) 3322, einen DSP 3360, eine Solid State Disk („SSD“) oder eine Festplatte („HDD“) 3320, eine Wireless Local Area Network („WLAN“)-Einheit 3350, eine Bluetooth-Einheit 3352, eine Wireless Wide Area Network („WWAN“)-Einheit 3356, ein Global Positioning System („GPS“) 3355, eine Kamera („USB 3.0-Kamera“) 3354, wie z.B. eine USB 3.0-Kamera, oder eine Low Power Double Data Rate („LPDDR“)-Speichereinheit („LPDDR3“) 3315, die z.B. in dem LPDDR3-Standard implementiert ist, beinhalten. Jede dieser Komponenten kann in jeder geeigneten Weise implementiert sein.
  • In mindestens einer Ausführungsform können andere Komponenten über die vorstehend beschriebenen Komponenten kommunikativ mit dem Prozessor 3310 verbunden sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 3341, ein Umgebungslichtsensor („ALS“) 3342, ein Kompass 3343 und ein Gyroskop 3344 kommunikativ mit dem Sensor-Hub 3340 gekoppelt sein. In mindestens einer Ausführungsform können ein Wärmesensor 3339, ein Lüfter 3337, eine Tastatur 3346 und ein Touchpad 3330 kommunikativ mit dem EC 3335 gekoppelt sein. In mindestens einer Ausführungsform können ein Lautsprecher 3363, ein Kopfhörer 3364 und ein Mikrofon („mic“) 3365 kommunikativ mit einer Audioeinheit („audio codec and dass d amp“) 3364 gekoppelt sein, die ihrerseits kommunikativ mit dem DSP 3360 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 3364 beispielsweise, und ohne Beschränkung darauf, einen Audio-Kodierer/-Dekodierer („codec“) und einen Verstärker der Klasse D beinhalten. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 3357 kommunikativ mit der WWAN-Einheit 3356 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten wie beispielsweise die WLAN-Einheit 3350 und die Bluetooth-Einheit 3352 sowie die WWAN-Einheit 3356 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 34 veranschaulicht eine beispielhafte integrierte Schaltung 3400, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die beispielhafte integrierte Schaltung 3400 ein SoC, das unter Verwendung eines oder mehrerer IP-Cores hergestellt sein kann. In mindestens einer Ausführungsform enthält die integrierte Schaltung 3400 einen oder mehrere Anwendungsprozessor(en) 3405 (z.B. CPUs), mindestens einen Grafikprozessor 3410 und kann zusätzlich einen Bildprozessor 3415 und/oder einen Videoprozessor 3420 enthalten, von denen jeder ein modularer IP-Kern sein kann. In mindestens einer Ausführungsform enthält die integrierte Schaltung 3400 eine Peripherie- oder Bus-Logik einschließlich eines USB-Controllers 3425, eines UART-Controllers 3430, eines SPI/SDIO-Controllers 3435 und eines I2S/I2C-Controllers 3440. In mindestens einer Ausführungsform kann die integrierte Schaltung 3400 eine Anzeigevorrichtung 3445 enthalten, die mit einem oder mehreren eines High-Definition Multimedia Interface („HDMI“)-Controllers 3450 und einer Mobile Industry Processor Interface („MIPI“)-Anzeigeschnittstelle 3455 verbunden ist. In mindestens einer Ausführungsform kann der Speicher durch ein Flash-Speicher-Subsystem 3460 mit Flash-Speicher und einem Flash-Speichercontroller bereitgestellt sein. In mindestens einer Ausführungsform kann eine Speicherschnittstelle über einen Speichercontroller 3465 für den Zugriff auf SDRAM- oder SRAM-Speichervorrichtungen bereitgestellt sein. In mindestens einer Ausführungsform enthalten einige integrierte Schaltungen zusätzlich eine eingebettete Sicherheits-Engine 3470.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 35 veranschaulicht ein Computer- bzw. Rechensystem 3500, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst das Rechensystem 3500 ein Verarbeitungssubsystem 3501 mit einem oder mehreren Prozessor(en) 3502 und einem Systemspeicher 3504, der über einen Zwischenverbindungspfad bzw. Verbindungspfad kommuniziert, der einen Speicher-Hub 3505 enthalten kann. In mindestens einer Ausführungsform kann der Speicher-Hub 3505 eine separate Komponente innerhalb einer Chipsatzkomponente sein oder in einen oder mehrere Prozessor(en) 3502 integriert sein. In mindestens einer Ausführungsform ist der Speicher-Hub 3505 mit einem E/A-Subsystem 3511 über eine Kommunikationsverbindung 3506 gekoppelt. In mindestens einer Ausführungsform beinhaltet das E/A-Subsystem 3511 einen E/A-Hub 3507, der es dem Rechensystem 3500 ermöglichen kann, Eingaben von einer oder mehreren Eingabevorrichtung(en) 3508 zu empfangen. In mindestens einer Ausführungsform kann der E/A-Hub 3507 einen Anzeigecontroller, der in einem oder mehreren Prozessor(en) 3502 enthalten sein kann, in die Lage versetzen, Ausgaben an eine oder mehrere Anzeigevorrichtung(en) 3510A zu liefern. In mindestens einer Ausführungsform kann/können ein oder mehrere Anzeigevorrichtung(en) 3510A, die mit dem E/A-Hub 3507 gekoppelt sind, eine lokale, interne oder eingebettete Anzeigevorrichtung beinhalten.
  • In mindestens einer Ausführungsform beinhaltet das Verarbeitungssubsystem 3501 einen oder mehrere Parallelprozessor(en) 3512, der/die über einen Bus oder eine andere Kommunikationsverbindung 3513 mit dem Speicher-Hub 3505 verbunden ist/sind. In mindestens einer Ausführungsform kann die Kommunikationsverbindung 3513 eine einer beliebigen Anzahl von standardbasierten Kommunikationsverbindungstechnologien oder -protokollen sein, wie z.B., aber nicht beschränkt auf, PCIe, oder kann eine herstellerspezifische Kommunikationsschnittstelle oder eine Kommunikationsstruktur bzw. ein Kommunikations-Fabric sein. In mindestens einer Ausführungsform bilden ein oder mehrere Parallelprozessor(en) 3512 ein rechnerisch fokussiertes Parallel- oder Vektor-Verarbeitungssystem, das eine große Anzahl von Verarbeitungskernen und/oder Verarbeitungsclustern umfassen kann, wie z.B. einen Prozessor mit vielen integrierten Kernen. In mindestens einer Ausführungsform bilden ein oder mehrere Parallelprozessor(en) 3512 ein Grafikverarbeitungs-Subsystem, das Pixel an eine oder mehrere Anzeigevorrichtung(en) 3510A ausgeben kann, die über den E/A-Hub 3507 gekoppelt sind. In mindestens einer Ausführungsform können ein oder mehrere Parallelprozessor(en) 3512 auch einen Anzeigecontroller und eine Anzeigeschnittstelle (nicht dargestellt) enthalten, um eine direkte Verbindung zu einer oder mehreren Anzeigevorrichtung(en) 3510B zu ermöglichen.
  • In mindestens einer Ausführungsform kann eine Systemspeichereinheit 3514 mit dem E/A-Hub 3507 verbunden sein, um einen Speichermechanismus für das Rechensystem 3500 bereitzustellen. In mindestens einer Ausführungsform kann ein E/A-Switch 3516 verwendet werden, um einen Schnittstellenmechanismus bereitzustellen, der Verbindungen zwischen dem E/A-Hub 3507 und anderen Komponenten ermöglicht, wie z.B. einem Netzwerkadapter 3518 und/oder einem drahtlosen Netzwerkadapter 3519, der in eine Plattform integriert sein kann, und verschiedenen anderen Vorrichtungen, die über ein oder mehrere Add-in-Vorrichtungen 3520 hinzugefügt werden können. In mindestens einer Ausführungsform kann der Netzwerkadapter 3518 ein Ethernet-Adapter oder ein anderer kabelgebundener Netzwerkadapter sein. In mindestens einer Ausführungsform kann der drahtlose Netzwerkadapter 3519 ein oder mehrere Wi-Fi- , Bluetooth-, NFC- oder andere Netzwerkvorrichtungen umfassen, die ein oder mehrere drahtlose Funkvorrichtungen enthalten.
  • In mindestens einer Ausführungsform kann das Rechensystem 3500 weitere, nicht explizit dargestellte Komponenten enthalten, darunter USB- oder andere Portverbindungen, optische Speicherlaufwerke, Videoaufnahmevorrichtungen und dergleichen, die ebenfalls mit dem E/A-Hub 3507 verbunden sein können. In mindestens einer Ausführungsform können Kommunikationspfade, die verschiedene Komponenten in 35 miteinander verbinden, unter Verwendung beliebiger geeigneter Protokolle implementiert sein, wie z.B. PCI-basierte Protokolle (z.B. PCIe) oder andere Bus- oder Punkt-zu-Punkt-Kommunikationsschnittstellen und/oder Protokolle, wie z.B. ein NVLink-Hochgeschwindigkeits-Interconnect oder Interconnect-Protokolle.
  • In mindestens einer Ausführungsform integrieren ein oder mehrere Parallelprozessor(en) 3512 Schaltkreise, die für Grafik- und Videoverarbeitung optimiert sind, einschließlich z.B. Videoausgabeschaltungen, und bilden eine Grafikverarbeitungseinheit („GPU“). In mindestens einer Ausführungsform integrieren ein oder mehrere Parallelprozessor(en) 3512 Schaltkreise, die für allgemeine Verarbeitung optimiert sind. In mindestens einer Ausführungsform können Komponenten des Rechensystems 3500 mit einem oder mehreren anderen Systemelementen auf einem einzigen integrierten Schaltkreis integriert sein. Zum Beispiel können in mindestens einer Ausführungsform ein oder mehrere Parallelprozessor(en) 3512, der Speicher-Hub 3505, der/die Prozessor(en) 3502 und der E/A-Hub 3507 in eine integrierte SoC-Schaltung integriert sein. In mindestens einer Ausführungsform können Komponenten des Rechensystems 3500 in ein einziges Gehäuse integriert sein, um eine System-in-Package-Konfiguration („SIP“) zu bilden. In mindestens einer Ausführungsform kann mindestens ein Teil der Komponenten des Rechensystems 3500 in ein Multi-Chip-Modul („MCM“) integriert sein, das mit anderen Multi-Chip-Modulen zu einem modularen Rechensystem zusammengeschaltet sein kann. In mindestens einer Ausführungsform sind das E/A-Subsystem 3511 und die Anzeigevorrichtungen 3510B nicht in dem Rechensystem 3500 enthalten.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • VERARBEITUNGSSYSTEME
  • Die folgenden Figuren stellen, ohne Beschränkung darauf, beispielhafte Verarbeitungssysteme dar, die zur Implementierung mindestens einer Ausführungsform verwendet werden können.
  • 36 veranschaulicht eine beschleunigte Verarbeitungseinheit („APU“; accelerated processing unit) 3600, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die APU 3600 von der AMD Corporation aus Santa Clara, CA, entwickelt. In mindestens einer Ausführungsform kann die APU 3600 so konfiguriert sein, dass sie ein Anwendungsprogramm, wie z.B. ein CUDA-Programm, ausführt. In mindestens einer Ausführungsform umfasst die APU 3600, ohne Beschränkung darauf, einen Kernkomplex 3610, einen Grafikkomplex 3640, eine Struktur bzw. ein Fabric 3660, E/A-Schnittstellen 3670, Speichercontroller 3680, einen Anzeigecontroller 3692 und eine Multimedia-Engine 3694. In mindestens einer Ausführungsform kann die APU 3600, ohne Beschränkung darauf, eine beliebige Anzahl von Kernkomplexen 3610, eine beliebige Anzahl von Grafikkomplexen 3650, eine beliebige Anzahl von Anzeigecontrollern 3692 und eine beliebige Anzahl von Multimedia-Engines 3694 in beliebiger Kombination enthalten. Zu Erklärungszwecken sind hierin mehrere Instanzen gleicher Objekte bedarfsweise mit Bezugszeichen bezeichnet, die das Objekt identifizieren, und mit Zahlen in Klammern, die bedarfsweise eine Instanz identifizieren.
  • In mindestens einer Ausführungsform ist der Kernkomplex 3610 eine CPU, ist der Grafikkomplex 3640 eine GPU und ist die APU 3600 eine Verarbeitungseinheit, die, ohne Beschränkung darauf, 3610 und 3640 auf einem einzigen Chip integriert. In mindestens einer Ausführungsform können einige Aufgaben dem Kernkomplex 3610 und andere Aufgaben dem Grafikkomplex 3640 zugewiesen werden. In mindestens einer Ausführungsform ist der Kernkomplex 3610 so konfiguriert, dass er eine Hauptsteuerungssoftware ausführt, die der APU 3600 zugeordnet ist, wie z.B. ein Betriebssystem. In mindestens einer Ausführungsform ist der Kernkomplex 3610 der Hauptprozessor der APU 3600, der Operationen bzw. Betriebsabläufe der anderen Prozessoren steuert und koordiniert. In mindestens einer Ausführungsform gibt der Kernkomplex 3610 Befehle aus, die den Betrieb des Grafikkomplexes 3640 steuern. In mindestens einer Ausführungsform kann der Kernkomplex 3610 so konfiguriert sein, dass er von dem CUDA-Quellcode abgeleiteten ausführbaren Host-Code ausführt, und kann der Grafikkomplex 3640 so konfiguriert sein, dass er von dem CUDA-Quellcode abgeleiteten ausführbaren Geräte-Code ausführt.
  • In mindestens einer Ausführungsform beinhaltet der Kernkomplex 3610, ohne Beschränkung darauf, Kerne 3620(1)-3620(4) und einen L3-Cache 3630. In mindestens einer Ausführungsform kann der Kernkomplex 3610, ohne Beschränkung darauf, eine beliebige Anzahl von Kernen 3620 und eine beliebige Anzahl und Art von Caches in beliebiger Kombination enthalten. In mindestens einer Ausführungsform sind die Kerne 3620 so konfiguriert, dass sie Anweisungen einer bestimmten Befehlssatzarchitektur („ISA“) ausführen. In mindestens einer Ausführungsform ist jeder Kern 3620 ein CPU-Kern.
  • In mindestens einer Ausführungsform enthält jeder Kern 3620, ohne Beschränkung darauf, eine Abhol-/Dekodier-Einheit 3622, eine Ganzzahlausführungsmaschine 3624, eine Gleitkommaausführungsmaschine 3626 und einen L2-Cache 3628. In mindestens einer Ausführungsform holt die Abhol-/Dekodier-Einheit 3622 Anweisungen ab, dekodiert solche Anweisungen, erzeugt Mikrooperationen und sendet separate Mikroanweisungen an die Ganzzahlausführungsmaschine 3624 und die Gleitkommaausführungsmaschine 3626. In mindestens einer Ausführungsform kann die Abhol-/Dekodier-Einheit 3622 gleichzeitig eine Mikroanweisung an die Ganzzahlausführungsmaschine 3624 und eine andere Mikroanweisung an die Gleitkommaausführungsmaschine 3626 senden. In mindestens einer Ausführungsform führt die Ganzzahlausführungsmaschine 3624, ohne Beschränkung darauf, Ganzzahl- und Speicheroperationen aus.
  • In mindestens einer Ausführungsform führt die Gleitkommamaschine 3626, ohne Beschränkung darauf, Gleitkomma- und Vektoroperationen aus. In mindestens einer Ausführungsform sendet die Abhol-/Dekodier-Einheit 3622 Mikroanweisungen an eine einzige Ausführungsmaschine, die sowohl die Ganzzahlausführungsmaschine 3624 als auch die Gleitkommaausführungsmaschine 3626 ersetzt.
  • In mindestens einer Ausführungsform kann jeder Kern 3620(i), wobei i eine ganze Zahl ist, die eine bestimmte Instanz des Kerns 3620 repräsentiert, auf den L2-Cache 3628(i) zugreifen, der in dem Kern 3620(i) enthalten ist. In mindestens einer Ausführungsform ist jeder in dem Kernkomplex 3610(j) enthaltene Kern 3620, wobei j eine ganze Zahl ist, die eine bestimmte Instanz des Kernkomplexes 3610 repräsentiert, mit anderen in dem Kernkomplex 3610(j) enthaltenen Kernen 3620 über den in dem Kernkomplex 3610(j) enthaltenen L3-Cache 3630(j) verbunden. In mindestens einer Ausführungsform können die in dem Kernkomplex 3610(j) enthaltenen Kerne 3620, wobei j eine ganze Zahl ist, die eine bestimmte Instanz des Kernkomplexes 3610 repräsentiert, auf den gesamten L3-Cache 3630(j) zugreifen, der in dem Kernkomplex 3610(j) enthalten ist. In mindestens einer Ausführungsform kann der L3-Cache 3630, ohne Beschränkung darauf, eine beliebige Anzahl von Slices enthalten.
  • In mindestens einer Ausführungsform kann der Grafikkomplex 3640 so konfiguriert sein, dass er Rechenoperationen hochparallel ausführt. In mindestens einer Ausführungsform ist der Grafikkomplex 3640 so konfiguriert, dass er Grafikpipelineoperationen wie beispielsweise Zeichenbefehle, Pixeloperationen, geometrische Berechnungen und andere Operationen im Zusammenhang mit dem Rendern eines Frames auf einer Anzeige ausführt. In mindestens einer Ausführungsform ist der Grafikkomplex 3640 so konfiguriert, dass er Operationen ausführt, die nichts mit Grafik zu tun haben. In mindestens einer Ausführungsform ist der Grafikkomplex 3640 so konfiguriert, dass er sowohl grafikbezogene als auch grafikfremde Operationen ausführt.
  • In mindestens einer Ausführungsform beinhaltet der Grafikkomplex 3640, ohne Beschränkung darauf, eine beliebige Anzahl von Recheneinheiten 3650 und einen L2-Cache 3642. In mindestens einer Ausführungsform teilen sich die Recheneinheiten 3650 den L2-Cache 3642. In mindestens einer Ausführungsform ist der L2-Cache 3642 partitioniert. In mindestens einer Ausführungsform umfasst der Grafikkomplex 3640, ohne Beschränkung darauf, eine beliebige Anzahl von Recheneinheiten 3650 und eine beliebige Anzahl (einschließlich Null) und Art von Caches. In mindestens einer Ausführungsform beinhaltet der Grafikkomplex 3640, ohne Beschränkung darauf, eine beliebige Menge an dedizierter Grafikhardware.
  • In mindestens einer Ausführungsform beinhaltet jede Recheneinheit 3650, ohne Beschränkung darauf, eine beliebige Anzahl von SIMD-Einheiten 3652 und einen gemeinsamen Speicher 3654. In mindestens einer Ausführungsform implementiert jede SIMD-Einheit 3652 eine SIMD-Architektur und ist für die parallele Ausführung von Operationen konfiguriert. In mindestens einer Ausführungsform kann jede Recheneinheit 3650 eine beliebige Anzahl von Thread-Blöcken ausführen, aber jeder Thread-Block wird auf einer einzigen Recheneinheit 3650 ausgeführt. In mindestens einer Ausführungsform beinhaltet ein Thread-Block, ohne Beschränkung darauf, eine beliebige Anzahl von Ausführungs-Threads. In mindestens einer Ausführungsform ist eine Arbeitsgruppe bzw. eine Workgroup ein Thread-Block. In mindestens einer Ausführungsform führt jede SIMD-Einheit 3652 einen anderen Warp aus. In mindestens einer Ausführungsform ist ein Warp eine Gruppe von Threads (z.B. 19 Threads), wobei jeder Thread im Warp zu einem einzigen Thread-Block gehört und so konfiguriert ist, dass er einen anderen Datensatz auf der Grundlage eines einzigen Satzes von Anweisungen verarbeitet. In mindestens einer Ausführungsform kann eine Prädikation verwendet werden, um einen oder mehrere Threads in einem Warp zu deaktivieren. In mindestens einer Ausführungsform ist eine Spur bzw. eine Lane ein Thread. In mindestens einer Ausführungsform ist ein Arbeitselement bzw. Workitem ein Thread. In mindestens einer Ausführungsform ist eine Wellenfront ein Warp. In mindestens einer Ausführungsform können sich verschiedene Wellenfronten in einem Thread-Block miteinander synchronisieren und über den gemeinsamen Speicher 3654 kommunizieren.
  • In mindestens einer Ausführungsform ist die Struktur 3660 eine Systemverbindung bzw. ein System-Interconnect, die bzw. der Daten- und Steuerungs-Übertragungen zwischen dem Kernkomplex 3610, dem Grafikkomplex 3640, den E/A-Schnittstellen 3670, den Speichercontrollern 3680, dem Anzeigecontroller 3692 und der Multimedia-Engine 3694 ermöglicht. In mindestens einer Ausführungsform kann die APU 3600, ohne Beschränkung darauf, eine beliebige Menge und Art von Systemverbindungen zusätzlich zu oder anstelle des Fabric 3660 enthalten, die Daten- und Steuerungs-Übertragungen über eine beliebige Anzahl und Art von direkt oder indirekt verbundenen Komponenten ermöglicht, die intern oder extern zur APU 3600 sein können. In mindestens einer Ausführungsform sind die E/A-Schnittstellen 3670 repräsentativ für eine beliebige Anzahl und Art von E/A-Schnittstellen (z.B. PCI, PCI-Extended („PCI-X“), PCIe, Gigabit-Ethernet („GBE“), USB usw.). In mindestens einer Ausführungsform sind verschiedene Arten von Peripheriegeräten mit den E/A-Schnittstellen 3670 gekoppelt. Die Peripheriegeräte, die mit den E/A-Schnittstellen 3670 gekoppelt sind, können, ohne Beschränkung darauf, Tastaturen, Mäuse, Drucker, Scanner, Joysticks oder andere Arten von Spielsteuerungen, Medienaufzeichnungsvorrichtungen, externe Speichervorrichtungen, Netzwerkschnittstellenkarten usw. beinhalten.
  • In mindestens einer Ausführungsform zeigt der Anzeigecontroller AMD92 Bilder auf einer oder mehreren Anzeigevorrichtungen an, z.B. auf einer Flüssigkristallanzeige („LCD“). In mindestens einer Ausführungsform umfasst die Multimedia-Engine 240, ohne Beschränkung darauf, eine beliebige Menge und Art von Schaltkreisen, die sich auf Multimedia beziehen, wie z.B. einen Video-Dekoder, einen Video-Enkoder, einen Bildsignalprozessor usw. In mindestens einer Ausführungsform erleichtern Speichercontroller 3680 die Datenübertragung zwischen der APU 3600 und einem einheitlichen Systemspeicher 3690. In mindestens einer Ausführungsform teilen sich der Kernkomplex 3610 und der Grafikkomplex 3640 den vereinheitlichten Systemspeicher 3690.
  • In mindestens einer Ausführungsform implementiert die APU 3600 ein Speicher-Subsystem, das, ohne Beschränkung darauf, eine beliebige Anzahl und Art von Speichercontrollern 3680 und Speichervorrichtungen (z.B. den gemeinsam genutzten Speicher 3654) enthält, die einer Komponente zugeordnet oder von mehreren Komponenten gemeinsam genutzt werden können. In mindestens einer Ausführungsform implementiert die APU 3600 ein Cache-Subsystem, das, ohne Beschränkung darauf, einen oder mehrere Cachespeicher (z.B. L2-Caches 3728, L3-Cache 3630 und L2-Cache 3642) beinhaltet, die jeweils für eine beliebige Anzahl von Komponenten (z.B. Kerne 3620, Kernkomplex 3610, SIMD-Einheiten 3652, Recheneinheiten 3650 und Grafikkomplex 3640) reserviert sein oder von diesen gemeinsam genutzt werden können.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 37 zeigt eine CPU 3700, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die CPU 3700 von der AMD Corporation aus Santa Clara, CA, entwickelt. In mindestens einer Ausführungsform kann die CPU 3700 so konfiguriert sein, dass sie ein Anwendungsprogramm ausführt. In mindestens einer Ausführungsform ist die CPU 3700 so konfiguriert, dass sie eine Hauptsteuerungssoftware, wie z.B. ein Betriebssystem, ausführt. In mindestens einer Ausführungsform gibt die CPU 3700 Befehle aus, die den Betrieb einer externen GPU (nicht dargestellt) steuern. In mindestens einer Ausführungsform kann die CPU 3700 so konfiguriert sein, dass sie ausführbaren Host-Code ausführt, der von CUDA-Quellcode abgeleitet ist, und kann eine externe GPU so konfiguriert sein, dass sie ausführbaren Geräte-Code ausführt, der von einem solchen CUDA-Quellcode abgeleitet ist. In mindestens einer Ausführungsform beinhaltet die CPU 3700, ohne Beschränkung darauf, eine beliebige Anzahl von Kernkomplexen 3710, ein Fabric 3760, E/A-Schnittstellen 3770 und Speichercontroller 3780.
  • In mindestens einer Ausführungsform beinhaltet der Kernkomplex 3710, ohne Beschränkung darauf, Kerne 3720(1)-3720(4) und einen L3-Cache 3730. In mindestens einer Ausführungsform kann der Kernkomplex 3710, ohne Beschränkung darauf, eine beliebige Anzahl von Kernen 3720 und eine beliebige Anzahl und Art von Caches in beliebiger Kombination enthalten.
  • In mindestens einer Ausführungsform sind die Kerne 3720 so konfiguriert, dass sie Anweisungen eines bestimmten ISA ausführen. In mindestens einer Ausführungsform ist jeder Kern 3720 ein CPU-Kern.
  • In mindestens einer Ausführungsform beinhaltet jeder Kern 3720, ohne Beschränkung darauf, eine Abhol-/Dekodier-Einheit 3722, eine Ganzzahlausführungsmaschine 3724, eine Gleitkommaausführungsmaschine 3726 und einen L2-Cache 3728. In mindestens einer Ausführungsform holt die Abhol-/Dekodier-Einheit 3722 Anweisungen ab, dekodiert solche Anweisungen, erzeugt Mikrooperationen und sendet separate Mikroanweisungen an die Ganzzahlausführungs-Engine 3724 und die Gleitkommaausführungsmaschine 3726. In mindestens einer Ausführungsform kann die Abhol-/Dekodier-Einheit 3722 gleichzeitig eine Mikroanweisung an die Ganzzahlausführungsmaschine 3724 und eine andere Mikroanweisung an die Gleitkommaausführungsmaschine 3726 senden. In mindestens einer Ausführungsform führt die Ganzzahlausführungsmaschine 3724, ohne Beschränkung darauf, Ganzzahl- und Speicheroperationen aus. In mindestens einer Ausführungsform führt die Gleitkommamaschine 3726, ohne Beschränkung darauf, Gleitkomma- und Vektoroperationen aus. In mindestens einer Ausführungsform sendet die Abhol-/Dekodier-Einheit 3722 Mikroanweisungen an eine einzige Ausführungsmaschine, die sowohl die Ganzzahlausführungsmaschine 3724 als auch die Gleitkommaausführungsmaschine 3726 ersetzt.
  • In mindestens einer Ausführungsform kann jeder Kern 3720(i), wobei i eine ganze Zahl ist, die eine bestimmte Instanz des Kerns 3720 repräsentiert, auf den L2-Cache 3728(i) zugreifen, der in dem Kern 3720(i) enthalten ist. In mindestens einer Ausführungsform ist jeder in dem Kernkomplex 3710(j) enthaltene Kern 3720, wobei j eine ganze Zahl ist, die eine bestimmte Instanz des Kernkomplexes 3710 repräsentiert, mit anderen Kernen 3720 in dem Kernkomplex 3710(j) über den in dem Kernkomplex 3710(j) enthaltenen L3-Cache 3730(j) verbunden. In mindestens einer Ausführungsform können die in dem Kernkomplex 3710(j) enthaltenen Kerne 3720, wobei j eine ganze Zahl ist, die eine bestimmte Instanz des Kernkomplexes 3710 repräsentiert, auf den gesamten in dem Kernkomplex 3710(j) enthaltenen L3-Cache 3730(j) zugreifen. In mindestens einer Ausführungsform kann der L3-Cache 3730, ohne Beschränkung darauf, eine beliebige Anzahl von Slices enthalten.
  • In mindestens einer Ausführungsform ist das Fabric 3760 eine Systemverbindung, die Daten- und Steuerungs-Übertragungen über die Kernkomplexe 3710(1)-3710(N) (wobei N eine ganze Zahl größer als Null ist), E/A-Schnittstellen 3770 und Speichercontroller 3780 erleichtert. In mindestens einer Ausführungsform kann die CPU 3700, ohne Beschränkung darauf, eine beliebige Menge und Art von Systemverbindungen zusätzlich zu oder anstelle des Fabric 3760 enthalten, die Daten- und Steuerungs-Übertragungen über eine beliebige Anzahl und Art von direkt oder indirekt verbundenen Komponenten erleichtern, die intern oder extern zur CPU 3700 sein können. In mindestens einer Ausführungsform sind die E/A-Schnittstellen 3770 repräsentativ für eine beliebige Anzahl und Art von E/A-Schnittstellen (z.B. PCI, PCI-X, PCIe, GBE, USB usw.). In mindestens einer Ausführungsform sind verschiedene Arten von Peripheriegeräten mit den E/A-Schnittstellen 3770 gekoppelt. Zu den Peripheriegeräten, die mit den E/A-Schnittstellen 3770 gekoppelt sind, gehören unter anderem Bildschirme, Tastaturen, Mäuse, Drucker, Scanner, Joysticks oder andere Arten von Spielsteuerungen, Medienaufzeichnungsvorrichtungen, externe Speichervorrichtungen, Netzwerkschnittstellenkarten usw.
  • In mindestens einer Ausführungsform erleichtern die Speichercontroller 3780 Datenübertragungen zwischen der CPU 3700 und einem Systemspeicher 3790. In mindestens einer Ausführungsform teilen sich der Kernkomplex 3710 und der Grafikkomplex 3740 den Systemspeicher 3790. In mindestens einer Ausführungsform implementiert die CPU 3700 ein Speichersubsystem, das, ohne Beschränkung darauf, eine beliebige Anzahl und Art von Speichercontrollern 3780 und Speichervorrichtungen beinhaltet, die einer Komponente zugeordnet sein oder von mehreren Komponenten gemeinsam genutzt werden können. In mindestens einer Ausführungsform implementiert die CPU 3700 ein Cache-Subsystem, das, ohne Beschränkung darauf, einen oder mehrere Cachespeicher (z.B. L2-Caches 3728 und L3-Caches 3730) beinhaltet, die jeweils für eine beliebige Anzahl von Komponenten (z.B. Kerne 3720 und Kernkomplexe 3710) reserviert sein oder von diesen gemeinsam genutzt werden können.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 38 veranschaulicht ein beispielhaftes Beschleunigerintegrations-Slice 3890, gemäß mindestens einer Ausführungsform. Wie hierin verwendet, umfasst ein „Slice“ einen bestimmten Teil von Verarbeitungsressourcen einer Beschleunigerintegrationsschaltung. In mindestens einer Ausführungsform stellt die Beschleunigerintegrationsschaltung Cache-Verwaltung, Speicherzugriff, Kontextverwaltung und Interruptverwaltungsdienste für mehrere Grafikverarbeitungsmodule in einem Grafikbeschleunigungsmodul bereit. Die Grafikverarbeitungs-Engines können jeweils eine separate GPU umfassen. Alternativ können die Grafikverarbeitungs-Engines verschiedene Arten von Grafikverarbeitungs-Engines innerhalb einer GPU umfassen, wie z.B. Grafikausführungseinheiten, Medienverarbeitungs-Engines (z.B. Video-Enkoder/Dekoder), Sampler und Blit-Engines. In mindestens einer Ausführungsform kann das Grafikbeschleunigungsmodul eine GPU mit mehreren Grafikverarbeitungs-Engines sein. In mindestens einer Ausführungsform können die Grafikverarbeitungs-Engines einzelne GPUs sein, die auf einem gemeinsamen Package, einer Linecard oder einem Chip integriert sind.
  • Ein anwendungswirksamer Adressraum 3882 innerhalb eines Systemspeichers 3814 speichert Prozesselemente 3883. In einer Ausführungsform werden die Prozesselemente 3883 im Ansprechen auf GPU-Aufrufe 3881 von Anwendungen 3880, die auf dem Prozessor 3807 ausgeführt werden, gespeichert. Ein Prozesselement 3883 enthält den Prozessstatus für die entsprechende Anwendung 3880. Ein in dem Prozesselement 3883 enthaltener Arbeits- bzw. Workdeskriptor („WD“) 3884 kann ein einzelner, von einer Anwendung angeforderter Auftrag bzw. Job sein oder einen Zeiger auf eine Warteschlange von Jobs enthalten. In mindestens einer Ausführungsform ist der WD 3884 ein Zeiger auf eine Auftragsanforderungswarteschlange in dem effektiven Adressraum 3882 der Anwendung.
  • Das Grafikbeschleunigungsmodul 3846 und/oder einzelne Grafikverarbeitungs-Engines können von allen oder einer Teilmenge von Prozessen in einem System gemeinsam genutzt werden. In mindestens einer Ausführungsform kann eine Infrastruktur zum Einrichten eines Prozessstatus und zum Senden des WD 3884 an das Grafikbeschleunigungsmodul 3846 zum Starten eines Auftrags in einer virtualisierten Umgebung enthalten sein.
  • In mindestens einer Ausführungsform ist ein Dedizierter-Prozess-Programmiermodell implementierungsspezifisch. In diesem Modell besitzt ein einzelner Prozess das Grafikbeschleunigungsmodul 3846 oder eine individuelle Grafikverarbeitungs-Engine. Weil das Grafikbeschleunigungsmodul 3846 einem einzelnen Prozess gehört, initialisiert ein Hypervisor eine Beschleunigerintegrationsschaltung für eine besitzende Partition und initialisiert ein Betriebssystem die Beschleunigerintegrationsschaltung für einen besitzenden Prozess, wenn das Grafikbeschleunigungsmodul 3846 zugewiesen wird.
  • Im Betrieb holt eine WD-Abholeinheit 3891 in dem Beschleunigerintegrations-Slice 3890 den nächsten WD 3884 ab, der eine Angabe der Arbeit enthält, die von einer oder mehreren Grafikverarbeitungsmaschinen des Grafikbeschleunigungsmoduls 3846 zu erledigen ist. Daten aus dem WD 3884 können in Registern 3845 gespeichert und von einer Speicherverwaltungseinheit („MMU“) 3839, einer Unterbrechungs- bzw. Interrupt-Verwaltungsschaltung 3847 und/oder einer Kontextverwaltungsschaltung 3848 verwendet werden, wie dargestellt. Eine Ausführungsform der MMU 3839 beinhaltet beispielsweise einen Segment-/Seitenlauf-Schaltkreis für den Zugriff auf Segment-/Seitentabellen 3886 innerhalb des virtuellen Betriebssystemadressraums 3885. Die Interrupt-Verwaltungsschaltung 3847 kann von dem Grafikbeschleunigungsmodul 3846 empfangene Interrupt-Ereignisse („INT“) 3892 verarbeiten. Bei der Durchführung von Grafikoperationen wird eine von einer Grafikverarbeitungsmaschine erzeugte effektive Adresse 3893 von der MMU 3839 in eine reale Adresse übersetzt.
  • In einer Ausführungsform wird für jede Grafikverarbeitungs-Engine und/oder jedes Grafikbeschleunigungsmodul 3846 ein gleicher Satz von Registern 3845 dupliziert und kann von einem Hypervisor oder Betriebssystem initialisiert werden. Jedes dieser duplizierten Register kann in dem Beschleunigerintegrations-Slice 3890 enthalten sein. Beispielhafte Register, die von einem Hypervisor initialisiert werden können, sind in Tabelle 1 gezeigt. Tabelle 1 -Hypervisor-initialisierte Register
    1 Slicesteuerregister
    2 Realadresse (RA)-Geplantprozesse-Bereichszeiger
    3 Autoritätsmasken-Überschreibungsregister
    4 Interruptvektor-Tabelleneintragsversatz
    5 Interruptvektor-Tabelleneintragsgrenze
    6 Zustandsregister
    7 Logische Partitions-ID
    8 Realadresse (RA)-Hypervisorbeschleunigemutzungsaufzeichnungs-Zeiger
    9 Speicherbeschreibungsregister
  • Beispielhafte Register, die von einem Betriebssystem initialisiert werden können, sind in Tabelle 2 gezeigt. Tabelle 2 - Betriebssystem-initialisierte Register
    1 Prozess- und Thread-Identifikation
    2 Effektivadresse (EA) Kontextspeicherungs-/Wiederherstellungs-Zeiger
    3 Virtuelladresse (VA)-Beschleunigernutzungsaufzeichnungs-Zeiger
    4 Virtuelladresse (VA)-Speichersegmenttabellenzeiger
    5 Autoritätsmaske
    6 Arbeitsdeskriptor
  • In einer Ausführungsform ist jeder WD 3884 spezifisch für ein bestimmtes Grafikbeschleunigungsmodul 3846 und/oder eine bestimmte Grafikverarbeitungs-Engine. Er enthält alle Informationen, die von einer Grafikverarbeitungs-Engine benötigt werden, um Arbeit zu verrichten, oder er kann ein Zeiger auf einen Speicherplatz sein, an dem eine Anwendung eine Befehlswarteschlange von abzuschließender Arbeit eingerichtet hat.
  • 39A und 39B veranschaulichen beispielhafte Grafikprozessoren, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann jeder der beispielhaften Grafikprozessoren unter Verwendung eines oder mehrerer IP-Kerne hergestellt sein. Zusätzlich zu dem, was dargestellt ist, können andere Logik und Schaltungen in mindestens einer Ausführungsform enthalten sein, einschließlich zusätzlicher Grafikprozessoren/-kerne, Peripherieschnittstellencontroller oder Universalprozessorkerne. In mindestens einer Ausführungsform sind die beispielhaften Grafikprozessoren zur Verwendung innerhalb eines SoC vorgesehen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 39A veranschaulicht einen beispielhaften Grafikprozessor 3910 eines integrierten SoC-Schaltkreises, der unter Verwendung eines oder mehrerer IP-Kerne hergestellt sein kann, gemäß mindestens einer Ausführungsform. 39B veranschaulicht einen weiteren beispielhaften Grafikprozessor 3940 eines integrierten SoC-Schaltkreises, der unter Verwendung eines oder mehrerer IP-Kerne hergestellt sein kann, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafikprozessor 3910 von 39A ein stromsparender Grafikprozessorkern. In mindestens einer Ausführungsform ist der Grafikprozessor 3940 von 39B ein Grafikprozessorkern mit höherer Leistung. In mindestens einer Ausführungsform kann jeder der Grafikprozessoren 3910, 3940 eine Variante des Grafikprozessors 3410 von 34 sein.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3910 einen Vertex-Prozessor 3905 und einen oder mehrere Fragment-Prozessor(en) 3915A-3915N (z.B. 3915A, 3915B, 3915C, 3915D, bis 3915N-1 und 3915N). In mindestens einer Ausführungsform kann der Grafikprozessor 3910 verschiedene Shader-Programme über eine separate Logik ausführen, so dass der Vertex-Prozessor 3905 für die Ausführung von Operationen für Vertex-Shader-Programme optimiert ist, während ein oder mehrere Fragment-Prozessor(en) 3915A-3915N Fragment- (z.B. Pixel-) Shading-Operationen für Fragment- oder Pixel-Shader-Programme ausführen. In mindestens einer Ausführungsform führt der Vertex-Prozessor 3905 eine Vertex-Verarbeitungsstufe einer 3D-Grafik-Pipeline aus und erzeugt Primitive und Vertex-Daten. In mindestens einer Ausführungsform verwenden Fragmentprozessor(en) 3915A-3915N die von dem Vertexprozessor 3905 erzeugten Primitiv- und Vertexdaten, um einen Framebuffer bzw. Bildpuffer zu erzeugen, der auf einer Anzeigevorrichtung angezeigt wird. In mindestens einer Ausführungsform ist/sind der/die Fragmentprozessor(en) 3915A-3915N für die Ausführung von Fragment-Shader-Programmen optimiert, wie sie in einer OpenGL-API bereitgestellt sind, die verwendet werden können, um ähnliche Operationen wie ein Pixel-Shader-Programm durchzuführen, wie sie in einer Direct 3D-API bereitgestellt sind.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3910 zusätzlich eine oder mehrere MMU(s) 3920A-3920B, Cache(s) 3925A-3925B und Schaltungsverbindung(en) bzw.
  • Interconnect(s) 3930A-3930B. In mindestens einer Ausführungsform sorgen eine oder mehrere MMU(s) 3920A-3920B für die Zuordnung von virtuellen zu physikalischen Adressen für den Grafikprozessor 3910, einschließlich für den Vertex-Prozessor 3905 und/oder den/die Fragment-Prozessor(en) 3915A-3915N, der/die auf in dem Speicher gespeicherte Vertex- oder Bild/Textur-Daten verweisen kann/können, zusätzlich zu Vertex- oder Bild/Textur-Daten, die in einem oder mehreren Cache(s) 3925A-3925B gespeichert sind. In mindestens einer Ausführungsform können eine oder mehrere MMU(s) 3920A-3920B mit anderen MMUs innerhalb eines Systems synchronisiert werden, einschließlich einer oder mehrerer MMUs, die einem oder mehreren Anwendungsprozessor(en) 1605, Bildprozessor(en) 1615 und/oder Videoprozessor(en) 1620 von 16 zugeordnet sind, so dass jeder Prozessor 1605-1620 an einem gemeinsamen oder vereinheitlichten virtuellen Speichersystem teilhaben kann. In mindestens einer Ausführungsform ermöglichen eine oder mehrere Schaltungsverbindung(en) 3930A-3930B dem Grafikprozessor 3910 die Verbindung mit anderen IP-Kernen innerhalb eines SoCs, entweder über einen internen Bus des SoCs oder über eine direkte Verbindung.
  • In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3940 eine oder mehrere MMU(s) 3920A-3920B, Caches 3925A-3925B und Schaltungsverbindungen 3930A-3930B des Grafikprozessors 3910 von 39A. In mindestens einer Ausführungsform beinhaltet der Grafikprozessor 3940 einen oder mehrere Shader-Kerne 3955A-3955N (z.B. 3955A, 3955B, 3955C, 3955D, 3955E, 3955F bis 3955N-1 und 3955N), die eine einheitliche Shader-Kern-Architektur bereitstellen, in der ein einziger Kern oder Art oder Kern alle Arten von programmierbarem Shader-Code ausführen kann, einschließlich Shader-Programmcode zur Implementierung von Vertex-Shadern, Fragment-Shadern und/oder Rechen-Shadern. In mindestens einer Ausführungsform kann eine Anzahl von Shader-Kernen variieren. In mindestens einer Ausführungsform enthält der Grafikprozessor 3940 einen Zwischenkern-Aufgabenverwalter bzw. Intercore-Taskmanager 3945, der als ein Thread-Dispatcher bzw. - Versender fungiert, um Ausführungs-Threads an einen oder mehrere Shader-Kerne 3955A-3955N zu verteilen, und eine Kacheleinheit 3958, um Kacheloperationen für kachelbasiertes Rendering zu beschleunigen, bei denen Renderingoperationen für eine Szene in den Bildraum unterteilt werden, um beispielsweise lokale räumliche Kohärenz innerhalb einer Szene auszunutzen oder die Verwendung interner Caches zu optimieren.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 40A veranschaulicht einen Grafikkern 4000, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Grafikkern 4000 in dem Grafikprozessor 3410 von 34 enthalten sein. In mindestens einer Ausführungsform kann der Grafikkern 4000 ein einheitlicher Shader-Kern 3955A-3955N wie in 39B sein. In mindestens einer Ausführungsform beinhaltet der Grafikkern 4000 einen gemeinsam genutzten Befehlscache 4002, eine Textureinheit 4032 und einen Cache/gemeinsamen Speicher 4020, die den Ausführungsressourcen innerhalb des Grafikkerns 4000 gemeinsam sind. In mindestens einer Ausführungsform kann der Grafikkern 4000 mehrere Slices 4001A-4001N oder Partitionen für jeden Kern enthalten, und kann ein Grafikprozessor mehrere Instanzen des Grafikkerns 4000 enthalten. Die Slices 4001A-4001N können eine Unterstützungslogik enthalten, die einen lokalen Befehlscache 4004A-4004N, einen Thread-Planer bzw. Thread-Scheduler 4006A-4006N, einen Thread-Versender bzw. Thread-Dispatcher 4008A-4008N und einen Satz von Registern 4010A-4010N beinhaltet. In mindestens einer Ausführungsform können die Slices 4001A-4001N einen Satz zusätzlicher Funktionseinheiten („AFUs“) 4012A-4012N, Gleitkommaeinheiten („FPUs“) 4014A-2214N, ganzzahlige arithmetische Logikeinheiten („ALUs“) 4016-4016N, Adressberechnungseinheiten („ACUs“) 4013A-4013N, doppeltpräzise Gleitkommaeinheiten („DPFPUs“) 4015A-4015N und Matrixverarbeitungseinheiten („MPUs“) 4017A-4017N beinhalten.
  • In mindestens einer Ausführungsform können die FPUs 4014A-4014N Gleitkommaoperationen mit einfacher Genauigkeit (32 Bit) und halber Genauigkeit (16 Bit) durchführen, während die DPFPUs 4015A-4015N Gleitkommaoperationen mit doppelter Genauigkeit (64 Bit) durchführen. In mindestens einer Ausführungsform können die ALUs 4016A-4016N Ganzzahloperationen mit variabler Präzision bei 8-Bit-, 16-Bit- und 32-Bit-Präzision ausführen und für Operationen mit gemischter Präzision konfiguriert sein. In mindestens einer Ausführungsform können die MPUs 4017A-4017N auch für Matrixoperationen mit gemischter Genauigkeit konfiguriert sein, einschließlich Gleitkomma- und 8-Bit-Ganzzahloperationen mit halber Genauigkeit. In mindestens einer Ausführungsform können die MPUs 4017-4017N eine Vielzahl von Matrixoperationen durchführen, um CUDA-Programme zu beschleunigen, einschließlich der Unterstützung für eine beschleunigte allgemeine Matrix-zu-Matrix-Multiplikation („GEMM“). In mindestens einer Ausführungsform können die AFUs 4012A-4012N zusätzliche logische Operationen durchführen, die nicht von Gleitkomma- oder Ganzzahleinheiten unterstützt werden, einschließlich trigonometrischer Operationen (z.B. Sinus, Cosinus usw.).
  • 40B veranschaulicht eine Universal-Grafikverarbeitungseinheit („GPGPU“) 4030, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist die GPGPU 4030 hochparallel und für den Einsatz auf einem Multi-Chip-Modul geeignet. In mindestens einer Ausführungsform kann die GPGPU 4030 so konfiguriert sein, dass hochparallele Rechenoperationen von einem Array von GPUs durchgeführt werden können. In mindestens einer Ausführungsform kann die GPGPU 4030 direkt mit anderen Instanzen der GPGPU 4030 verbunden sein, um einen Multi-GPU-Cluster zu erstellen, um die Ausführungszeit für CUDA-Programme zu verbessern. In mindestens einer Ausführungsform enthält die GPGPU 4030 eine Host-Schnittstelle 4032, um eine Verbindung mit einem Hostprozessor zu ermöglichen. In mindestens einer Ausführungsform ist die Host-Schnittstelle 4032 eine PCIe-Schnittstelle. In mindestens einer Ausführungsform kann die Host-Schnittstelle 4032 eine herstellerspezifische Kommunikationsschnittstelle oder ein Kommunikations-Fabric sein. In mindestens einer Ausführungsform empfängt die GPGPU 4030 Befehle von einem Hostprozessor und verwendet einen globalen Planer bzw. Scheduler 4034, um Ausführungs-Threads, die mit diesen Befehlen verbunden sind, an einen Satz von Rechenclustern 4036A-4036H zu verteilen. In mindestens einer Ausführungsform teilen sich die Rechencluster 4036A-4036H einen Cachespeicher 4038.
  • In mindestens einer Ausführungsform kann der Cachespeicher 4038 als ein übergeordneter Cache für Cachespeicher innerhalb von Rechenclustern 4036A-4036H dienen.
  • In mindestens einer Ausführungsform umfasst die GPGPU 4030 einen Speicher 4044A-4044B, der über eine Reihe von Speichercontrollern 4042A-4042B mit den Rechenclustern 4036A-4036H verbunden ist. In mindestens einer Ausführungsform kann der Speicher 4044A-4044B verschiedene Arten von Speichervorrichtungen umfassen, darunter DRAM oder Grafik-Direktzugriffsspeicher, wie synchroner Grafik-Direktzugriffsspeicher („SGRAM“), einschließlich Grafik-Doppeldatenraten-Speicher („GDDR“).
  • In mindestens einer Ausführungsform enthalten die Rechencluster 4036A-4036H jeweils einen Satz von Grafikkernen, wie z.B. den Grafikkern 4000 von 40A, der mehrere Arten von Ganzzahl- und Gleitkomma-Logikeinheiten enthalten kann, die Rechenoperationen mit einer Reihe von Genauigkeiten durchführen können, die auch für Berechnungen im Zusammenhang mit CUDA-Programmen geeignet sind. Zum Beispiel kann in mindestens einer Ausführungsform mindestens eine Teilmenge der Gleitkommaeinheiten in jedem der Rechencluster 4036A-4036H so konfiguriert sein, dass sie 16-Bit- oder 32-Bit-Gleitkommaoperationen durchführen, während eine andere Teilmenge der Gleitkommaeinheiten so konfiguriert sein kann, dass sie 64-Bit-Gleitkommaoperationen durchführen.
  • In mindestens einer Ausführungsform können mehrere Instanzen der GPGPU 4030 so konfiguriert sein, dass sie als Rechencluster arbeiten. Die Rechencluster 4036A-4036H können beliebige technisch machbare Kommunikationstechniken zur Synchronisation und zum Datenaustausch implementieren. In mindestens einer Ausführungsform kommunizieren mehrere Instanzen der GPGPU 4030 über die Host-Schnittstelle 4032. In mindestens einer Ausführungsform enthält die GPGPU 4030 einen E/A-Hub 4039, der die GPGPU 4030 mit einer GPU-Verbindung 4040 koppelt, die eine direkte Verbindung zu anderen Instanzen der GPGPU 4030 ermöglicht. In mindestens einer Ausführungsform ist die GPU-Verbindung 4040 mit einer dedizierten GPU-zu-GPU-Brücke gekoppelt, die die Kommunikation und Synchronisation die zwischen mehreren Instanzen der GPGPU 4030 ermöglicht. In mindestens einer Ausführungsform koppelt die GPU-Verbindung 4040 mit einem Hochgeschwindigkeits-Interconnect, um Daten an andere GPGPUs 4030 oder Parallelprozessoren zu senden und von diesen zu empfangen. In mindestens einer Ausführungsform befinden sich mehrere Instanzen der GPGPU 4030 in separaten Datenverarbeitungssystemen und kommunizieren über eine Netzwerkvorrichtung, die über die Host-Schnittstelle 4032 zugänglich ist. In mindestens einer Ausführungsform kann die GPU-Verbindung 4040 so konfiguriert sein, dass sie zusätzlich oder alternativ zu der Host-Schnittstelle 4032 eine Verbindung zu einem Hostprozessor ermöglicht. In mindestens einer Ausführungsform kann die GPGPU 4030 so konfiguriert sein, dass sie ein CUDA-Programm ausführt.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die obigen Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 41A veranschaulicht einen Parallelprozessor 4100, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können verschiedene Komponenten des Parallelprozessors 4100 mit einem oder mehreren integrierten Schaltkreisen, wie z.B. programmierbaren Prozessoren, anwendungsspezifischen integrierten Schaltkreisen („ASICs“) oder FPGAs, implementiert sein.
  • In mindestens einer Ausführungsform enthält der Parallelprozessor 4100 eine Parallelverarbeitungseinheit 4102. In mindestens einer Ausführungsform enthält die Parallelverarbeitungseinheit 4102 eine E/A-Einheit 4104, die die Kommunikation mit anderen Vorrichtungen ermöglicht, einschließlich anderer Instanzen der Parallelverarbeitungseinheit 4102. In mindestens einer Ausführungsform kann die E/A-Einheit 4104 direkt mit anderen Vorrichtungen verbunden sein. In mindestens einer Ausführungsform ist die E/A-Einheit 4104 über eine Hub- oder Switch-Schnittstelle, wie z.B. den Speicher-Hub 4105, mit anderen Vorrichtungen verbunden. In mindestens einer Ausführungsform bilden die Verbindungen zwischen dem Speicher-Hub 4105 und der E/A-Einheit 4104 eine Kommunikationsverbindung. In mindestens einer Ausführungsform ist die E/A-Einheit 4104 mit einer Host-Schnittstelle 4106 und einer Speicherkreuzschiene 4116 verbunden, wobei die Host-Schnittstelle 4106 Befehle zur Durchführung von Verarbeitungsvorgängen und die Speicherkreuzschiene 4116 Befehle zur Durchführung von Speicheroperationen empfängt.
  • In mindestens einer Ausführungsform kann die Host-Schnittstelle 4106 dann, wenn die Host-Schnittstelle einen Befehlspuffer über die E/A-Einheit 4104 empfängt, Arbeitsoperationen zur Ausführung dieser Befehle an ein Frontend 4108 leiten. In mindestens einer Ausführungsform ist das Frontend 4108 mit einem Planer bzw. Scheduler 4110 gekoppelt, der so konfiguriert ist, dass er Befehle oder andere Arbeitselemente an ein Verarbeitungsfeld bzw. Verarbeitungs-Array 4112 verteilt. In mindestens einer Ausführungsform stellt der Scheduler 4110 sicher, dass das Verarbeitungs-Array 4112 richtig konfiguriert ist und sich in einem gültigen Zustand befindet, bevor Aufgaben an das Verarbeitungs-Array 4112 verteilt werden. In mindestens einer Ausführungsform ist der Scheduler 4110 über Firmware-Logik implementiert, die auf einem Mikrocontroller ausgeführt wird. In mindestens einer Ausführungsform ist der in einem Mikrocontroller implementierte Scheduler 4110 so konfigurierbar, dass er komplexe Planungs- und Arbeitsverteilungsoperationen mit grober und feiner Granularität durchführen kann, was eine schnelle Bevorrechtigung und Kontextumschaltung von Threads ermöglicht, die auf dem Verarbeitungs-Array 4112 ausgeführt werden. In mindestens einer Ausführungsform kann die Hostsoftware Arbeitslasten für die Planung auf dem Verarbeitungs-Array 4112 über eine von mehreren Grafikverarbeitungs-Doorbells nachweisen. In mindestens einer Ausführungsform können die Arbeitslasten dann automatisch über das Verarbeitungs-Array 4112 durch die Logik des Schedulers 4110 in einem Mikrocontroller mit Scheduler 4110 verteilt werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungs-Array 4112 bis zu „N“ Cluster umfassen (z.B. Cluster 4114A, Cluster 4114B bis Cluster 4114N). In mindestens einer Ausführungsform kann jeder Cluster 4114A-4114N des Verarbeitungs-Arrays 4112 eine große Anzahl gleichzeitiger Threads ausführen. In mindestens einer Ausführungsform kann der Scheduler 4110 den Clustern 4114A-4114N des Verarbeitungs-Arrays 4112 durch Verwenden verschiedener Planungs- und/oder Arbeitsverteilungsalgorithmen, die in Abhängigkeit von der Arbeitslast variieren können, die für jede Art von Programm oder Berechnung entsteht, Arbeit zuweisen. In mindestens einer Ausführungsform kann die Planung dynamisch durch den Scheduler 4110 gehandhabt werden, oder kann teilweise durch die Compilerlogik während der Kompilierung der Programmlogik, die für die Ausführung durch das Verarbeitungs-Array 4112 konfiguriert ist, unterstützt werden. In mindestens einer Ausführungsform können verschiedene Cluster 4114A-4114N des Verarbeitungs-Arrays 4112 für die Verarbeitung verschiedener Arten von Programmen oder für die Durchführung verschiedener Arten von Berechnungen zugewiesen werden.
  • In mindestens einer Ausführungsform kann das Verarbeitungs-Array 4112 so konfiguriert sein, dass es verschiedene Arten von parallelen Verarbeitungsoperationen durchführt. In mindestens einer Ausführungsform ist das Verarbeitungs-Array 4112 so konfiguriert, dass es parallele Universalrechenoperationen durchführt. Zum Beispiel kann in mindestens einer Ausführungsform das Verarbeitungs-Array 4112 Logik zur Ausführung von Verarbeitungsaufgaben enthalten, einschließlich der Filterung von Video- und/oder Audiodaten, der Durchführung von Modellierungsoperationen, einschließlich physikalischer Operationen, und der Durchführung von Datentransformationen.
  • In mindestens einer Ausführungsform ist das Verarbeitungs-Array 4112 so konfiguriert, dass es parallele Grafikverarbeitungsoperationen durchführt. In mindestens einer Ausführungsform kann das Verarbeitungsarray 4112 zusätzliche Logik enthalten, um die Ausführung solcher Grafikverarbeitungsoperationen zu unterstützen, einschließlich, aber nicht beschränkt auf, Texturabtastlogik, um Texturoperationen durchzuführen, sowie Tesselationslogik und anderer Vertex-Verarbeitungslogik. In mindestens einer Ausführungsform kann das Verarbeitungs-Array 4112 so konfiguriert sein, dass es auf die Grafikverarbeitung bezogene Shader-Programme ausführt, wie z.B. Vertex-Shader, Tesselations-Shader, Geometrie-Shader und Pixel-Shader, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann die Parallelverarbeitungseinheit 4102 Daten aus dem Systemspeicher über die E/A-Einheit 4104 zur Verarbeitung übertragen. In mindestens einer Ausführungsform können die übertragenen Daten während der Verarbeitung in dem On-Chip-Speicher (z.B. einem Parallelprozessorspeicher 4122) gespeichert und dann in den Systemspeicher zurückgeschrieben werden.
  • In mindestens einer Ausführungsform kann dann, wenn die Parallelverarbeitungseinheit 4102 zur Durchführung der Grafikverarbeitung verwendet wird, der Scheduler 4110 so konfiguriert sein, dass er eine Verarbeitungslast in ungefähr gleich große Aufgaben aufteilt, um eine bessere Verteilung der Grafikverarbeitungsoperationen auf mehrere Cluster 4114A-4114N des Verarbeitungsarrays 4112 zu ermöglichen. In mindestens einer Ausführungsform können Teile des Verarbeitungs-Arrays 4112 so konfiguriert sein, dass sie verschiedene Arten der Verarbeitung durchführen. Zum Beispiel kann in mindestens einer Ausführungsform ein erster Teil so konfiguriert sein, dass er ein Vertexshading und eine Topologieerzeugung durchführt, ein kann zweiter Teil so konfiguriert sein, dass er Tesselation und Geometrieshading durchführt, und kann ein dritter Teil so konfiguriert sein, dass er Pixelshading oder andere Bildschirmraumoperationen durchführt, um ein gerendertes Bild für die Anzeige zu erzeugen. In mindestens einer Ausführungsform können Zwischendaten, die von einem oder mehreren der Cluster 4114A-4114N erzeugt werden, in Puffern gespeichert werden, damit Zwischendaten zur weiteren Verarbeitung zwischen den Clustern 4114A-4114N übertragen werden können.
  • In mindestens einer Ausführungsform kann das Verarbeitungs-Array 4112 Verarbeitungsaufgaben empfangen, die über den Scheduler 4110 auszuführen sind, der Befehle zur Definition von Verarbeitungsaufgaben von dem Frontend 4108 empfängt. In mindestens einer Ausführungsform können die Verarbeitungsaufgaben Indizes der zu verarbeitenden Daten enthalten, z.B. Oberflächen-(Patch-)Daten, Primitivdaten, Vertexdaten und/oder Pixeldaten, sowie Zustandsparameter und Befehle, die definieren, wie die Daten zu verarbeiten sind (z.B. welches Programm auszuführen ist). In mindestens einer Ausführungsform kann der Scheduler 4110 so konfiguriert sein, dass er den Aufgaben entsprechende Indizes abruft oder Indizes von dem Frontend 4108 empfängt. In mindestens einer Ausführungsform kann das Frontend 4108 so konfiguriert sein, dass es sicherstellt, dass das Verarbeitungs-Array 4112 in einen gültigen Zustand versetzt wird, bevor eine durch eingehende Befehlspuffer (z.B. Batch-Puffer, Push-Puffer usw.) spezifizierte Arbeitslast initiiert wird.
  • In mindestens einer Ausführungsform kann jede von einer oder mehreren Instanzen der Parallelverarbeitungseinheit 4102 mit dem Parallelprozessorspeicher 4122 gekoppelt sein. In mindestens einer Ausführungsform kann auf den Parallelprozessorspeicher 4122 über eine Speicherkreuzschiene 4116 zugegriffen werden, die Speicheranforderungen von dem Verarbeitungs-Array 4112 sowie von der E/A-Einheit 4104 empfangen kann. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 4116 über eine Speicherschnittstelle 4118 auf den Parallelprozessorspeicher 4122 zugreifen. In mindestens einer Ausführungsform kann die Speicherschnittstelle 4118 mehrere Partitionseinheiten (z.B. eine Partitionseinheit 4120A, eine Partitionseinheit 4120B bis eine Partitionseinheit 4120N) beinhalten, die jeweils mit einem Teil (z.B. einer Speichereinheit) des Parallelprozessorspeichers 4122 gekoppelt sein können. In mindestens einer Ausführungsform ist eine Anzahl von Partitionseinheiten 4120A-4120N so konfiguriert, dass sie gleich einer Anzahl von Speichereinheiten ist, so dass eine erste Partitionseinheit 4120A eine entsprechende erste Speichereinheit 4124A hat, eine zweite Partitionseinheit 4120B eine entsprechende Speichereinheit 4124B hat und eine N-te Partitionseinheit 4120N eine entsprechende N-te Speichereinheit 4124N hat. In mindestens einer Ausführungsform kann die Anzahl der Partitionseinheiten 4120A-4120N nicht gleich der Anzahl der Speichereinheiten sein.
  • In mindestens einer Ausführungsform können die Speichereinheiten 4124A-4124N verschiedene Arten von Speichervorrichtungen enthalten, einschließlich DRAM oder Grafik-Direktzugriffsspeicher, wie SGRAM, einschließlich GDDR-Speicher. In mindestens einer Ausführungsform können die Speichereinheiten 4124A-4124N auch 3D-Stapelspeicher enthalten, einschließlich, aber nicht beschränkt auf, Speicher mit hoher Bandbreite („HBM“). In mindestens einer Ausführungsform können Renderingziele, wie z.B. Frame-Puffer oder Textur-Maps, über die Speichereinheiten 4124A-4124N hinweg gespeichert werden, so dass die Partitionseinheiten 4120A-4120N Teile jedes Renderingziels parallel schreiben können, um die verfügbare Bandbreite des Parallelprozessorspeichers 4122 effizient zu nutzen. In mindestens einer Ausführungsform kann eine lokale Instanz des Parallelprozessorspeichers 4122 zugunsten eines einheitlichen Speicherdesigns, das den Systemspeicher in Verbindung mit dem lokalen Cachespeicher nutzt, ausgeschlossen sein.
  • In mindestens einer Ausführungsform kann jeder der Cluster 4114A-4114N des Verarbeitungs-Arrays 4112 Daten verarbeiten, die in jede der Speichereinheiten 4124A-4124N in dem Parallelprozessorspeicher 4122 geschrieben werden. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 4116 so konfiguriert sein, dass sie eine Ausgabe jedes Clusters 4114A-4114N an eine beliebige Partitionseinheit 4120A-4120N oder an einen anderen Cluster 4114A-4114N überträgt, der zusätzliche Verarbeitungsoperationen an einer Ausgabe durchführen kann. In mindestens einer Ausführungsform kann jeder Cluster 4114A-4114N mit der Speicherschnittstelle 4118 über die Speicherkreuzschiene 4116 kommunizieren, um von verschiedenen externen Speichervorrichtungen zu lesen oder in diese zu schreiben. In mindestens einer Ausführungsform hat die Speicherkreuzschiene 4116 eine Verbindung zu der Speicherschnittstelle 4118, um mit der E/A-Einheit 4104 zu kommunizieren, sowie eine Verbindung zu einer lokalen Instanz des Parallelprozessorspeichers 4122, so dass die Verarbeitungseinheiten in den verschiedenen Clustern 4114A-4114N mit dem Systemspeicher oder einem anderen Speicher kommunizieren können, der nicht lokal zur Parallelverarbeitungseinheit 4102 ist. In mindestens einer Ausführungsform kann die Speicherkreuzschiene 4116 virtuelle Kanäle verwenden, um Verkehrsstreams zwischen Clustern 4114A-4114N und Partitionseinheiten 4120A-4120N zu trennen.
  • In mindestens einer Ausführungsform können mehrere Instanzen der Parallelverarbeitungseinheit 4102 auf einer einzigen Steckkarte bzw. Add-in-Karte bereitgestellt sein, oder es können mehrere Add-in-Karten miteinander verbunden sein. In mindestens einer Ausführungsform können verschiedene Instanzen der Parallelverarbeitungseinheit 4102 so konfiguriert sein, dass sie auch dann zusammenarbeiten, wenn die verschiedenen Instanzen eine unterschiedliche Anzahl von Prozessorkernen, unterschiedliche Mengen an lokalem Parallelprozessorspeicher und/oder andere Konfigurationsunterschiede aufweisen. Zum Beispiel können in mindestens einer Ausführungsform einige Instanzen der Parallelverarbeitungseinheit 4102 im Vergleich zu anderen Instanzen Gleitkommaeinheiten mit höherer Präzision enthalten. In mindestens einer Ausführungsform können Systeme, die eine oder mehrere Instanzen der Parallelverarbeitungseinheit 4102 oder des Parallelprozessors 4100 enthalten, in einer Vielzahl von Konfigurationen und Formfaktoren implementiert sein, einschließlich, aber nicht beschränkt auf, Desktop-, Laptop- oder Handheld-Personal Computer, Server, Workstations, Spielkonsolen und/oder eingebettete Systeme.
  • 41B zeigt einen Verarbeitungscluster 4194, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Verarbeitungscluster 4194 in einer Parallelverarbeitungseinheit enthalten. In mindestens einer Ausführungsform ist der Verarbeitungscluster 4194 einer der Verarbeitungscluster 4114A-4114N von 41. In mindestens einer Ausführungsform kann der Verarbeitungscluster 4194 so konfiguriert sein, dass er viele Threads parallel ausführt, wobei sich der Begriff „Thread“ auf eine Instanz eines bestimmten Programms bezieht, das auf einem bestimmten Satz von Eingangsdaten ausgeführt wird. In mindestens einer Ausführungsform werden SIMD („Single Instruction, Multiple Data“)-Befehlsausgabetechniken verwendet, um die parallele Ausführung einer großen Anzahl von Threads zu unterstützen, ohne mehrere unabhängige Anweisungseinheiten bereitzustellen. In mindestens einer Ausführungsform werden SIMT („Single Instruction, Multiple Thread“)-Techniken verwendet, um die parallele Ausführung einer großen Anzahl von im Allgemeinen synchronisierten Threads zu unterstützen, wobei eine gemeinsame Anweisungseinheit verwendet wird, die so konfiguriert ist, dass sie Befehle an einen Satz von Verarbeitungsmaschinen innerhalb jedes Verarbeitungsclusters 4194 ausgibt.
  • In mindestens einer Ausführungsform kann der Betrieb des Verarbeitungsclusters 4194 über einen Pipeline-Manager 4132 gesteuert werden, der Verarbeitungsaufgaben auf parallele SIMT-Prozessoren verteilt. In mindestens einer Ausführungsform empfängt der Pipeline-Manager 4132 Anweisungen von dem Scheduler 4110 von 41 und verwaltet die Ausführung dieser Anweisungen über einen Grafik-Multiprozessor 4134 und/oder eine Textureinheit 4136. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 4134 eine beispielhafte Instanz eines SIMT-Parallelprozessors. In mindestens einer Ausführungsform können jedoch verschiedene Typen von SIMT-Parallelprozessoren mit unterschiedlichen Architekturen in dem Verarbeitungscluster 4194 enthalten sein. In mindestens einer Ausführungsform können eine oder mehrere Instanzen des Grafik-Multiprozessors 4134 in dem Verarbeitungscluster 4194 enthalten sein. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 4134 Daten verarbeiten und kann eine Datenkreuzschiene 4140 verwendet werden, um verarbeitete Daten an eines von mehreren möglichen Zielen, einschließlich anderer Shader-Einheiten, zu verteilen. In mindestens einer Ausführungsform kann der Pipeline-Manager 4132 die Verteilung der verarbeiteten Daten erleichtern, indem er Ziele für die verarbeiteten Daten angibt, die über die Datenkreuzschiene 4140 zu verteilen sind.
  • In mindestens einer Ausführungsform kann jeder Grafik-Multiprozessor 4134 innerhalb des Verarbeitungsclusters 4194 einen identischen Satz an funktioneller Ausführungslogik (z.B. arithmetische Logikeinheiten, Lade-/Speichereinheiten („LSUs“) usw.) enthalten. In mindestens einer Ausführungsform kann die funktionelle Ausführungslogik in einer Pipeline konfiguriert sein, in der neue Anweisungen ausgegeben werden können, bevor vorherige Anweisungen abgeschlossen sind. In mindestens einer Ausführungsform unterstützt die funktionelle Ausführungslogik eine Vielzahl von Operationen, darunter Ganzzahl- und Gleitkommaarithmetik, Vergleichsoperationen, boolesche Operationen, Bitverschiebung und die Berechnung verschiedener algebraischer Funktionen. In mindestens einer Ausführungsform kann dieselbe Hardware mit funktionellen Einheiten genutzt werden, um verschiedene Operationen auszuführen, und es kann eine beliebige Kombination von funktionellen Einheiten vorhanden sein.
  • In mindestens einer Ausführungsform bilden die an den Verarbeitungscluster 4194 übertragenen Anweisungen einen Thread. In mindestens einer Ausführungsform ist ein Satz von Threads, die über einen Satz von Parallelverarbeitungsmaschinen ausgeführt werden, eine Thread-Gruppe. In mindestens einer Ausführungsform führt eine Thread-Gruppe ein Programm auf unterschiedlichen Eingabedaten aus. In mindestens einer Ausführungsform kann jeder Thread innerhalb einer Thread-Gruppe einer anderen Verarbeitungs-Engine innerhalb des Grafik-Multiprozessors 4134 zugewiesen sein. In mindestens einer Ausführungsform kann eine Thread-Gruppe weniger Threads umfassen als die Anzahl der Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 4134. In mindestens einer Ausführungsform können dann, wenn eine Thread-Gruppe weniger Threads als eine Anzahl von Verarbeitungs-Engines beinhaltet, eine oder mehrere der Verarbeitungs-Engines während der Zyklen, in denen diese Thread-Gruppe verarbeitet wird, im Leerlauf sein. In mindestens einer Ausführungsform kann eine Thread-Gruppe auch mehr Threads als eine Anzahl von Verarbeitungs-Engines innerhalb des Grafik-Multiprozessors 4134 enthalten. Wenn eine Thread-Gruppe mehr Threads umfasst als die Anzahl der Verarbeitungs-Engines in dem Grafik-Multiprozessor 4134, kann die Verarbeitung in mindestens einer Ausführungsform über aufeinanderfolgende Taktzyklen hinweg durchgeführt werden. In mindestens einer Ausführungsform können mehrere Thread-Gruppen gleichzeitig auf dem Grafik-Multiprozessor 4134 ausgeführt werden.
  • In mindestens einer Ausführungsform enthält der Grafik-Multiprozessor 4134 einen internen Cachespeicher, um Lade- und Speicheroperationen durchzuführen. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 4134 auf einen internen Cache verzichten und einen Cachespeicher (z.B. L1-Cache 4148) innerhalb des Verarbeitungsclusters 4194 verwenden. In mindestens einer Ausführungsform hat jeder Grafik-Multiprozessor 4134 auch Zugriff auf Level-2 („L2“)-Caches innerhalb von Partitionseinheiten (z.B. den Partitionseinheiten 4120A-4120N von 41A), die von allen Verarbeitungsclustern 4194 gemeinsam genutzt werden und zur Datenübertragung zwischen Threads verwendet werden können. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 4134 auch auf den globalen Off-Chip-Speicher zugreifen, der einen oder mehrere lokale Parallelprozessorspeicher und/oder Systemspeicher umfassen kann. In mindestens einer Ausführungsform kann jeder Speicher außerhalb der Parallelverarbeitungseinheit 4102 als globaler Speicher verwendet werden. In mindestens einer Ausführungsform umfasst der Verarbeitungscluster 4194 mehrere Instanzen des Grafik-Multiprozessors 4134, die sich gemeinsame Anweisungen und Daten teilen können, die in dem L1-Cache 4148 gespeichert sein können.
  • In mindestens einer Ausführungsform kann jeder Verarbeitungscluster 4194 eine MMU 4145 enthalten, die so konfiguriert ist, dass sie virtuelle Adressen auf physische Adressen abbildet. In mindestens einer Ausführungsform können sich eine oder mehrere Instanzen der MMU 4145 innerhalb der Speicherschnittstelle 4118 von 41 befinden. In mindestens einer Ausführungsform enthält die MMU 4145 einen Satz von Seitentabelleneinträgen („PTEs“), die verwendet werden, um eine virtuelle Adresse auf eine physische Adresse einer Tile bzw. Kachel abzubilden, und optional einen Cache-Zeilenindex. In mindestens einer Ausführungsform kann die MMU 4145 Adressübersetzungs-Lookaside-Puffer („TLBs“) oder Caches enthalten, die sich in dem Grafik-Multiprozessor 4134 oder in dem L1-Cache 4148 oder in dem Verarbeitungscluster 4194 befinden können. In mindestens einer Ausführungsform wird eine physische Adresse verarbeitet, um die Lokalität des Oberflächendatenzugriffs zu verteilen, um ein effizientes Request Interleaving zwischen den Partitionseinheiten zu ermöglichen. In mindestens einer Ausführungsform kann ein Cache-Zeilenindex verwendet werden, um zu bestimmen, ob eine Anforderung für eine Cachezeile ein Hit oder ein Miss ist.
  • In mindestens einer Ausführungsform kann der Verarbeitungscluster 4194 so konfiguriert sein, dass jeder Grafik-Multiprozessor 4134 mit einer Textureinheit 4136 gekoppelt ist, um Texturabbildungsoperationen, z.B. ein Bestimmen von Texturabtastpositionen, ein Lesen von Texturdaten und ein Filtern von Texturdaten, durchzuführen. In mindestens einer Ausführungsform werden die Texturdaten aus einem internen Textur-L1-Cache (nicht dargestellt) oder aus einem L1-Cache innerhalb des Grafik-Multiprozessors 4134 gelesen und je nach Bedarf aus einem L2-Cache, einem lokalen Parallelprozessorspeicher oder dem Systemspeicher abgerufen. In mindestens einer Ausführungsform gibt jeder Grafik-Multiprozessor 4134 eine verarbeitete Aufgabe an die Datenkreuzschiene 4140 aus, um die verarbeitete Aufgabe einem anderen Verarbeitungscluster 4194 zur weiteren Verarbeitung bereitzustellen oder um die verarbeitete Aufgabe in einem L2-Cache, einem lokalen Parallelprozessorspeicher oder einem Systemspeicher über die Speicherkreuzschiene 4116 zu speichern. In mindestens einer Ausführungsform ist eine Pre-Raster-Operations-Einheit („preROP“) 4142 so konfiguriert, dass sie Daten von dem Grafik-Multiprozessor 4134 empfängt und Daten an ROP-Einheiten weiterleitet, die sich bei den hierin beschriebenen Partitionseinheiten (z.B. den Partitionseinheiten 4120A-4120N in 41) befinden können. In mindestens einer Ausführungsform kann die PreROP 4142 Optimierungen für die Farbmischung durchführen, Pixelfarbdaten organisieren und Adressübersetzungen vornehmen.
  • 41C veranschaulicht einen Grafik-Multiprozessor 4196, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 4196 der Grafik-Multiprozessor 4134 von 41B. In mindestens einer Ausführungsform ist der Grafik-Multiprozessor 4196 mit dem Pipeline-Manager 4132 des Verarbeitungsclusters 4194 gekoppelt. In mindestens einer Ausführungsform hat der Grafik-Multiprozessor 4196 eine Ausführungs-Pipeline, die unter anderem einen Anweisungscache 4152, eine Anweisungseinheit 4154, eine Adressabbildungseinheit 4156, eine Registerdatei 4158, einen oder mehrere GPGPU-Kerne 4162 und eine oder mehrere LSUs 4166 beinhaltet. Die GPGPU-Kerne 4162 und die LSUs 4166 sind über eine Speicher- und Cache-Verbindung 4168 mit dem Cachespeicher 4172 und dem gemeinsamen Speicher 4170 gekoppelt.
  • In mindestens einer Ausführungsform empfängt der Anweisungscache 4152 einen Stream bzw. Strom von auszuführenden Befehlen von dem Pipeline-Manager 4132. In mindestens einer Ausführungsform werden die Befehle in dem Anweisungscache 4152 zwischengespeichert und von der Anweisungseinheit 4154 zur Ausführung bereitgestellt. In mindestens einer Ausführungsform kann die Anweisungseinheit 4154 Anweisungen als Thread-Gruppen (z.B. Warps) versenden, wobei jeder Thread einer Thread-Gruppe einer anderen Ausführungseinheit innerhalb des GPGPU-Kerns 4162 zugewiesen ist. In mindestens einer Ausführungsform kann ein Befehl durch Spezifizieren einer Adresse in einem einheitlichen Adressraum auf einen lokalen, gemeinsam genutzten oder globalen Adressraum zugreifen. In mindestens einer Ausführungsform kann die Adressabbildungseinheit 4156 verwendet werden, um Adressen in einem vereinheitlichten Adressraum in eine eindeutige Speicheradresse zu übersetzen, auf die die LSUs 4166 zugreifen können.
  • In mindestens einer Ausführungsform stellt die Registerdatei 4158 einen Satz von Registern für Funktionseinheiten des Grafik-Multiprozessors 4196 bereit. In mindestens einer Ausführungsform stellt die Registerdatei 4158 einen temporären Speicher für Operanden bereit, die mit Datenpfaden von Funktionseinheiten (z.B. GPGPU-Kerne 4162, LSUs 4166) des Grafik-Multiprozessors 4196 verbunden sind. In mindestens einer Ausführungsform ist die Registerdatei 4158 zwischen den einzelnen Funktionseinheiten aufgeteilt, so dass jeder Funktionseinheit ein dedizierter Teil der Registerdatei 4158 zugeordnet ist. In mindestens einer Ausführungsform ist die Registerdatei 4158 zwischen verschiedenen Thread-Gruppen aufgeteilt, die von dem Grafik-Multiprozessor 4196 ausgeführt werden.
  • In mindestens einer Ausführungsform können die GPGPU-Kerne 4162 jeweils FPUs und/oder Integer-ALUs enthalten, die zur Ausführung von Anweisungen des Grafik-Multiprozessors 4196 verwendet werden. Die GPGPU-Kerne 4162 können eine ähnliche Architektur aufweisen oder sich in der Architektur unterscheiden. In mindestens einer Ausführungsform enthält ein erster Teil der GPGPU-Kerne 4162 eine FPU mit einfacher Genauigkeit und eine Integer-ALU, während ein zweiter Teil der GPGPU-Kerne 4162 eine FPU mit doppelter Genauigkeit enthält. In mindestens einer Ausführungsform können die FPUs den IEEE 754-2008-Standard für Gleitkommaarithmetik implementieren oder Gleitkommaarithmetik mit variabler Genauigkeit ermöglichen. In mindestens einer Ausführungsform kann der Grafik-Multiprozessor 4196 zusätzlich eine oder mehrere Funktionseinheiten mit fester Funktion oder mit Sonderfunktion enthalten, um spezifische Funktionen wie Kopierrechteck- oder Pixelmischoperationen durchzuführen. In mindestens einer Ausführungsform können einer oder mehrere der GPGPU-Kerne 4162 auch eine Logik mit fester oder spezieller Funktion enthalten.
  • In mindestens einer Ausführungsform enthalten die GPGPU-Kerne 4162 SIMD-Logik, die in der Lage ist, einen einzigen Befehl auf mehreren Datensätzen auszuführen. In mindestens einer Ausführungsform können die GPGPU-Kerne 4162 physisch SIMD4-, SIMD8- und SIMD16-Anweisungen und logisch SIMD1-, SIMD2- und SIMD32-Anweisungen ausführen. In mindestens einer Ausführungsform können SIMD-Befehle für die GPGPU-Kerne 4162 zur Kompilierzeit von einem Shader-Compiler generiert werden oder automatisch generiert werden, wenn Programme ausgeführt werden, die für Single Program Multiple Data („SPMD“) oder SIMT-Architekturen geschrieben und kompiliert wurden. In mindestens einer Ausführungsform können mehrere Threads eines für ein SIMT-Ausführungsmodell konfigurierten Programms über eine einzige SIMD-Anweisung ausgeführt werden. Zum Beispiel können in mindestens einer Ausführungsform acht SIMT-Threads, die die gleichen oder ähnliche Operationen ausführen, parallel über eine einzige SIMD8-Logikeinheit ausgeführt werden.
  • In mindestens einer Ausführungsform ist die Speicher- und Cache-Verbindung 4168 ein Verbindungsnetzwerk, das jede Funktionseinheit des Grafik-Multiprozessors 4196 mit der Registerdatei 4158 und dem gemeinsamen Speicher 4170 verbindet. In mindestens einer Ausführungsform ist die Speicher- und Cache-Verbindung 4168 eine Kreuzschienenverbindung, die es der LSU 4166 ermöglicht, Lade- und Speicheroperationen zwischen dem gemeinsamen Speicher 4170 und der Registerdatei 4158 durchzuführen. In mindestens einer Ausführungsform kann die Registerdatei 4158 mit derselben Frequenz arbeiten wie die GPGPU-Kerne 4162, so dass die Datenübertragung zwischen den GPGPU-Kernen 4162 und der Registerdatei 4158 eine sehr geringe Latenz aufweist. In mindestens einer Ausführungsform kann der gemeinsame Speicher 4170 verwendet werden, um die Kommunikation zwischen Threads zu ermöglichen, die auf Funktionseinheiten innerhalb des Grafik-Multiprozessors 4196 ausgeführt werden. In mindestens einer Ausführungsform kann der Cachespeicher 4172 z.B. als Datencache verwendet werden, um Texturdaten zu cachen, die zwischen Funktionseinheiten und der Textureinheit 4136 kommuniziert werden. In mindestens einer Ausführungsform kann der gemeinsame Speicher 4170 auch als programmverwalteter Cache verwendet werden. In mindestens einer Ausführungsform können Threads, die auf den GPGPU-Kernen 4162 ausgeführt werden, zusätzlich zu den automatisch zwischengespeicherten Daten, die in dem Cachespeicher 4172 gespeichert sind, programmatisch Daten in dem gemeinsam genutzten Speicher speichern.
  • In mindestens einer Ausführungsform ist ein Parallelprozessor oder eine GPGPU, wie hierin beschrieben, kommunikativ mit einem Hostprozessor/mit Kernen gekoppelt, um Grafikoperationen, Operationen des maschinellen Lernens, Musteranalyse-operationen und verschiedene Universal-GPU-Funktionen (GPGPU) zu beschleunigen. In mindestens einer Ausführungsform kann eine GPU über einen Bus oder eine andere Verbindung (z.B. eine Hochgeschwindigkeitsverbindung wie beispielsweise PCIe oder NVLink) mit dem Hostprozessor/mit Kernen kommunikativ gekoppelt sein. In mindestens einer Ausführungsform kann eine GPU auf einem selben Gehäuse oder Chip wie die Kerne integriert sein und mit den Kernen über einen Prozessorbus/einen Interconnect kommunizieren, der sich innerhalb eines Gehäuses oder eines Chips befindet. In mindestens einer Ausführungsform können Prozessorkerne unabhängig von einer Art und Weise, in der eine GPU verbunden ist, einer GPU Arbeit in einer Form von Sequenzen von Befehlen/Anweisungen, die in einem WD enthalten sind, zuweisen. In mindestens einer Ausführungsform verwendet eine GPU dann dedizierte Schaltkreise/Logik zur effizienten Verarbeitung dieser Befehle/Anweisungen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • ALLGEMEINES RECHNEN
  • Die folgenden Figuren zeigen, ohne Beschränkung darauf, beispielhafte Softwarekonstrukte innerhalb allgemeinen Rechnens, die zum Implementieren mindestens einer Ausführungsform verwendet werden können.
  • 42 veranschaulicht einen Software-Stack einer Programmierplattform, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist eine Programmierplattform eine Plattform zur Nutzung von Hardware auf einem Rechen- bzw. Computersystem, um Berechnungsaufgaben zu beschleunigen. In mindestens einer Ausführungsform kann eine Programmierplattform für Softwareentwickler über Bibliotheken, Compilerdirektiven und/oder Erweiterungen von Programmiersprachen zugänglich sein. In mindestens einer Ausführungsform kann eine Programmierplattform CUDA, Radeon Open Compute Platform („ROCm“), OpenCL (OpenCL™ wird von der Khronos-Gruppe entwickelt), SYCL oder Intel One API sein, ist aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform stellt ein Software-Stack 4200 einer Programmierplattform eine Ausführungsumgebung für eine Anwendung 4201 bereit. In mindestens einer Ausführungsform kann die Anwendung 4201 jede beliebige Computersoftware umfassen, die auf dem Software-Stack 4200 gestartet werden kann. In mindestens einer Ausführungsform kann die Anwendung 4201 eine Anwendung für künstliche Intelligenz („KI“)/maschinelles Lernen („ML“), eine Anwendung für Hochleistungsrechnen („HPC“), eine virtuelle Desktop-Infrastruktur („VDI“) oder einen Rechenzentrums-Arbeitslast umfassen, ist aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform laufen die Anwendung 4201 und der Software-Stack 4200 auf Hardware 4207. Die Hardware 4207 kann in mindestens einer Ausführungsform eine oder mehrere GPUs, CPUs, FPGAs, KI-Engines und/oder andere Arten von Rechenvorrichtungen umfassen, die eine Programmierplattform unterstützen. In mindestens einer Ausführungsform, wie beispielsweise bei CUDA, kann der Software-Stack 4200 herstellerspezifisch und nur mit Vorrichtungen bestimmter Hersteller kompatibel sein. In mindestens einer Ausführungsform, wie beispielsweise bei OpenCL, kann der Softwarestack 4200 mit Vorrichtungen verschiedener Hersteller verwendet werden. In mindestens einer Ausführungsform umfasst die Hardware 4207 einen Host, der mit einer oder mehreren Vorrichtungen verbunden ist, auf die zugegriffen werden kann, um Berechnungsaufgaben über API (Application Programming Interface)-Aufrufe durchzuführen. Eine Vorrichtung innerhalb der Hardware 4207 kann eine GPU, ein FPGA, eine KI-Engine oder eine andere Rechenvorrichtung (aber auch eine CPU) und dessen Speicher umfassen, im Gegensatz zu einem Host innerhalb der Hardware 4207, der in mindestens einer Ausführungsform eine CPU (aber auch eine Rechenvorrichtung) und dessen Speicher umfassen kann, aber nicht darauf beschränkt ist.
  • In mindestens einer Ausführungsform umfasst der Software-Stack 4200 einer Programmierplattform, ohne Beschränkung darauf, eine Reihe von Bibliotheken 4203, eine Laufzeit 4205 und einen Gerätekerneltreiber 4206. Jede der Bibliotheken 4203 kann in mindestens einer Ausführungsform Daten und Programmiercode enthalten, die von Computerprogrammen verwendet und während der Softwareentwicklung genutzt werden können. In mindestens einer Ausführungsform können die Bibliotheken 4203 vorgefertigten Code und Unterprogramme, Klassen, Werte, Typspezifikationen, Konfigurationsdaten, Dokumentation, Hilfsdaten und/oder Nachrichtenvorlagen enthalten, sind aber nicht darauf beschränkt. In mindestens einer Ausführungsform enthalten die Bibliotheken 4203 Funktionen, die für die Ausführung auf einer oder mehreren Vorrichtungsarten optimiert sind. In mindestens einer Ausführungsform können die Bibliotheken 4203 Funktionen zur Durchführung von mathematischen, Deep-Learning- und/oder anderen Arten von Operationen auf Vorrichtungen enthalten, sind aber nicht darauf beschränkt. In mindestens einer Ausführungsform sind Bibliotheken 4303 entsprechenden APIs 4302 zugeordnet, die eine oder mehrere APIs enthalten können, die in den Bibliotheken 4303 implementierte Funktionen offenlegen.
  • In mindestens einer Ausführungsform ist die Anwendung 4201 als Quellcode geschrieben, der in ausführbaren Code kompiliert wird, wie nachstehend in Verbindung mit 47 näher erläutert wird. In mindestens einer Ausführungsform kann ausführbarer Code der Anwendung 4201 zumindest teilweise auf einer Ausführungsumgebung laufen, die von dem Software-Stack 4200 bereitgestellt wird. In mindestens einer Ausführungsform kann während der Ausführung der Anwendung 4201 Code erreicht werden, der auf einem Gerät bzw. einer Vorrichtung , im Gegensatz zu einem Host, ausgeführt werden muss. In einem solchen Fall kann in mindestens einer Ausführungsform die Laufzeit 4205 aufgerufen werden, um den erforderlichen Code auf ein Gerät zu laden und zu starten. In mindestens einer Ausführungsform kann die Laufzeit 4205 jedes technisch machbare Laufzeitsystem umfassen, das die Ausführung der Anwendung S01 unterstützen kann.
  • In mindestens einer Ausführungsform ist die Laufzeit 4205 als eine oder mehrere Laufzeitbibliotheken implementiert, die mit entsprechenden APIs verbunden sind, die als API(s) 4204 dargestellt sind. Eine oder mehrere solcher Laufzeitbibliotheken können in mindestens einer Ausführungsform, ohne Beschränkung darauf, Funktionen zur Speicherverwaltung, Ausführungssteuerung, Geräteverwaltung, Fehlerbehandlung und/oder Synchronisation enthalten. In mindestens einer Ausführungsform können die Speicherverwaltungsfunktionen. Ohne Beschränkung darauf, Funktionen zum Zuweisen, Freigeben und Kopieren von Gerätespeicher sowie zum Übertragen von Daten zwischen dem Hostspeicher und dem Gerätespeicher umfassen. In mindestens einer Ausführungsform können Ausführungssteuerungsfunktionen Funktionen zum Starten einer Funktion (manchmal als ein „Kernel“ bezeichnet, wenn eine Funktion eine globale Funktion ist, die von einem Host aus aufgerufen werden kann) auf einem Gerät und zum Festlegen von Attributwerten in einem Puffer, der von einer Laufzeitbibliothek für eine gegebene, auf einem Gerät auszuführende Funktion verwaltet wird, enthalten, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform können Laufzeitbibliotheken und entsprechende API(s) 4204 auf jede technisch machbare Weise implementiert sein. In mindestens einer Ausführungsform kann eine (oder eine beliebige Anzahl von) API(s) einen Low-Level-Satz von Funktionen für eine feinkörnige Steuerung eines Geräts bereitstellen, während eine andere (oder eine beliebige Anzahl von) API(s) einen Higher-Level-Satz solcher Funktionen bereitstellen kann. In mindestens einer Ausführungsform kann eine High-Level-Laufzeit-API auf einer Low-Level-API aufgebaut sein. In mindestens einer Ausführungsform können eine oder mehrere Laufzeit-APIs sprachspezifische APIs sein, die auf eine sprachunabhängige Laufzeit-API aufgesetzt sind.
  • In mindestens einer Ausführungsform ist der Gerätekerneltreiber 4206 so konfiguriert, dass er Kommunikation mit einem zugrunde liegenden Gerät erleichtert. In mindestens einer Ausführungsform kann der Gerätekerneltreiber 4206 Low-Level-Funktionalitäten bereitstellen, auf die sich APIs, wie z.B. die API(s) 4204, und/oder andere Software stützen. In mindestens einer Ausführungsform kann der Gerätekerneltreiber 4206 so konfiguriert sein, dass er zur Laufzeit Intermediate Representation („IR“) Code in Binärcode kompiliert. In mindestens einer Ausführungsform kann für CUDA der Gerätekerneltreiber 4206 IR-Code für parallele Thread-Ausführung („PTX“), der nicht hardwarespezifisch ist, zur Laufzeit in Binärcode für ein bestimmtes Zielgerät kompilieren (mit Zwischenspeicherung kompilierten Binärcodes), was manchmal auch als „finalisierter“ Code bezeichnet wird. Dadurch kann in mindestens einer Ausführungsform finalisierter Code auf einem Zielgerät ausgeführt werden, das möglicherweise nicht existierte, als der Quellcode ursprünglich in PTX-Code kompiliert wurde. Alternativ kann in mindestens einer Ausführungsform der Gerätequellcode offline in Binärcode kompiliert werden, ohne dass der Gerätekerneltreiber 4206 den IR-Code zur Laufzeit kompilieren muss.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 43 veranschaulicht eine CUDA-Implementierung des Software-Stacks 4200 von 42, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst ein CUDA-Software-Stack 4300, auf dem eine Anwendung 4301 gestartet werden kann, CUDA-Bibliotheken 4303, eine CUDA-Laufzeit 4305, einen CUDA-Treiber 4307 und einen Gerätekerneltreiber 4308. In mindestens einer Ausführungsform wird der CUDA-Software-Stack 4300 auf der Hardware 4309 ausgeführt, die eine GPU umfassen kann, die CUDA unterstützt und von der NVIDIA Corporation in Santa Clara, CA, entwickelt wird.
  • In mindestens einer Ausführungsform können die Anwendung 4301, die CUDA-Laufzeit 4305 und der Gerätekerneltreiber 4308 ähnliche Funktionalitäten wie die Anwendung 4201, die Laufzeit 4205 bzw. der Gerätekerneltreiber 4206 ausführen, die vorstehend in Verbindung mit 42 beschrieben sind. In mindestens einer Ausführungsform umfasst der CUDA-Treiber 4307 eine Bibliothek (libcuda.so), die eine CUDA-Treiber-API 4306 implementiert. Ähnlich zu einer CUDA-Laufzeit-API 4304, die von einer CUDA-Laufzeitbibliothek (cudart) implementiert wird, kann die CUDA-Treiber-API 4306 in mindestens einer Ausführungsform, ohne darauf beschränkt zu sein, Funktionen für Speicherverwaltung, Ausführungssteuerung, Geräteverwaltung, Fehlerbehandlung, Synchronisierung und/oder Grafik-Interoperabilität bereitstellen. In mindestens einer Ausführungsform unterscheidet sich die CUDA-Treiber-API 4306 von der CUDA-Laufzeit-API 4304 dadurch, dass die CUDA-Laufzeit-API 4304 die Geräte-Codeverwaltung vereinfacht, indem sie eine implizite Initialisierung, eine Kontextverwaltung (analog zu einem Prozess) und eine Modulverwaltung (analog zu dynamisch geladenen Bibliotheken) bereitstellt. Im Gegensatz zu der High-Level-CUDA-Laufzeit-API 4304 ist die CUDA-Treiber-API 4306 eine Low-Level-API, die eine feinkörnigere Steuerung des Geräts ermöglicht, insbesondere in Bezug auf Kontexte und das Laden von Modulen, in mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die CUDA-Treiber-API 4306 Funktionen zur Kontextverwaltung bereitstellen, die von der CUDA-Laufzeit-API 4304 nicht bereitgestellt werden. In mindestens einer Ausführungsform ist die CUDA-Treiber-API 4306 auch sprachunabhängig und unterstützt z.B. OpenCL zusätzlich zu der CUDA-Laufzeit-API 4304. Ferner können in mindestens einer Ausführungsform die Entwicklungsbibliotheken, einschließlich der CUDA-Laufzeit 4305, als getrennt von den Treiberkomponenten betrachtet werden, einschließlich des Benutzermodus-CUDA-Treibers 4307 und des Kernelmodus-Gerätetreibers 4308 (manchmal auch als „Anzeige“-Treiber bezeichnet).
  • In mindestens einer Ausführungsform können die CUDA-Bibliotheken 4303 mathematische Bibliotheken, Deep-Learning-Bibliotheken, Bibliotheken paralleler Algorithmen und/oder Bibliotheken für Signal-/Bild-/Videoverarbeitung beinhalten, die von parallelen Rechenanwendungen wie der Anwendung 4301 verwendet werden können, sind aber nicht darauf beschränkt. In mindestens einer Ausführungsform können die CUDA-Bibliotheken 4303 mathematische Bibliotheken wie beispielsweise eine cuBLAS-Bibliothek, die eine Implementierung von Basic Linear Algebra Subprograms („BLAS“) zur Durchführung linearer Algebraoperationen ist, eine cuFFT-Bibliothek zur Berechnung schneller Fourier-Transformationen („FFTs“) und eine cuRAND-Bibliothek zum Erzeugen von Zufallszahlen usw. beinhalten. In mindestens einer Ausführungsform können die CUDA-Bibliotheken 4303 unter anderem Deep-Learning-Bibliotheken wie eine cuDNN-Bibliothek mit Primitiven für tiefe neuronale Netze und eine TensorRT-Plattform für hochleistungsfähige Deep-Learning-Inferenz umfassen.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 44 veranschaulicht eine ROCm-Implementierung des Software-Stacks 4200 von 42, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst ein ROCm-Software-Stack 4400, auf dem eine Anwendung 4401 gestartet werden kann, eine Sprachlaufzeit 4403, eine Systemlaufzeit 4405, einen Thunk 4407, einen ROCm-Kerneltreiber 4408 und einen Gerätekerneltreiber. In mindestens einer Ausführungsform wird der ROCm-Software-Stack 4400 auf der Hardware 4409 ausgeführt, die eine GPU umfassen kann, die ROCm unterstützt und von der AMD Corporation in Santa Clara, CA, entwickelt wird.
  • In mindestens einer Ausführungsform kann eine Anwendung 4401 ähnliche Funktionalitäten ausführen wie die vorstehend in Verbindung mit 42 besprochene Anwendung 4201. Darüber hinaus können die Sprachlaufzeit 4403 und die Systemlaufzeit 4405 in mindestens einer Ausführungsform ähnliche Funktionalitäten ausführen wie die vorstehend in Verbindung mit 42 beschriebene Laufzeit 4205. In mindestens einer Ausführungsform unterscheiden sich die Sprachlaufzeit 4403 und die Systemlaufzeit 4405 dadurch, dass die Systemlaufzeit 4405 eine sprachunabhängige Laufzeit ist, die eine ROCr-Systemlaufzeit-API 4404 implementiert und eine Heterogeneous System Architecture („HAS“) Laufzeit-API verwendet. Die HAS-Laufzeit-API ist eine schlanke API für den Benutzermodus, die Schnittstellen für den Zugriff auf und die Interaktion mit einer AMD-GPU bereitstellt, einschließlich Funktionen für die Speicherverwaltung, die Ausführungssteuerung über architektonisches Dispatch von Kerneln, die Fehlerbehandlung, System- und Agenteninformationen sowie die Laufzeitinitialisierung und das Herunterfahren, unter anderem, in mindestens einer Ausführungsform. Im Gegensatz zur Systemlaufzeit 4405 ist die Sprachlaufzeit 4403 in mindestens einer Ausführungsform eine Implementierung einer sprachspezifischen Laufzeit-API 4402, die auf der ROCr-Systemlaufzeit-API 4404 aufliegt. In mindestens einer Ausführungsform kann die Sprach-Laufzeit-API unter anderem eine Heterogeneous Compute Interface for Portability („HIP“)-Sprach-Laufzeit-API, eine Heterogeneous Compute Compiler („HCC“)-Sprach-Laufzeit-API oder eine OpenCL-API umfassen, ist aber nicht darauf beschränkt. HIP-Sprache ist insbesondere eine Erweiterung der C++-Programmiersprache mit funktionell ähnlichen Versionen der CUDA-Mechanismen, und in mindestens einer Ausführungsform umfasst eine HIP-Sprach-Laufzeit-API Funktionen, die denen der vorstehend in Verbindung mit 32 besprochenen CUDA-Laufzeit-API 3204 ähnlich sind, wie z.B. Funktionen für die Speicherverwaltung, Ausführungssteuerung, Geräteverwaltung, Fehlerbehandlung und Synchronisierung.
  • In mindestens einer Ausführungsform ist der Thunk (ROCt) 4407 eine Schnittstelle, die zur Interaktion mit dem zugrunde liegenden ROCm-Treiber 4408 verwendet werden kann. In mindestens einer Ausführungsform ist der ROCm-Treiber 4408 ein ROCk-Treiber, der eine Kombination aus einem AMDGPU-Treiber und einem HSA-Kerneltreiber (amdkfd) ist. In mindestens einer Ausführungsform ist der AMDGPU-Treiber ein von AMD entwickelter Gerätekerneltreiber für GPUs, der ähnliche Funktionalitäten wie der vorstehend in Verbindung mit 31 besprochene Gerätekerneltreiber 3106 ausführt. In mindestens einer Ausführungsform ist der HSA-Kerneltreiber ein Treiber, der es verschiedenen Typen von Prozessoren ermöglicht, Systemressourcen über Hardwarefunktionen effektiver gemeinsam zu nutzen.
  • In mindestens einer Ausführungsform können verschiedene Bibliotheken (nicht gezeigt) in dem ROCm-Software-Stack 4400 oberhalb der Sprachlaufzeit 4403 enthalten sein und eine ähnliche Funktionalität wie die CUDA-Bibliotheken 4303, die vorstehend in Verbindung mit 43 besprochen wurden, bereitstellen. In mindestens einer Ausführungsform können verschiedene Bibliotheken mathematische, Deep-Learning- und/oder andere Bibliotheken enthalten, wie z.B. eine hipBLAS-Bibliothek, die Funktionen ähnlich denen von CUDA cuBLAS implementiert, eine rocFFT-Bibliothek zur Berechnung von FFTs, die CUDA cuFFT ähnlich ist, und andere.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 45 veranschaulicht eine OpenCL-Implementierung des Software-Stacks 4200 von 42, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform umfasst ein OpenCL-Software-Stack 4500, auf dem eine Anwendung 4501 gestartet werden kann, ein OpenCL-Framework 4510, eine OpenCL-Laufzeit 4506 und einen Treiber 4507. In mindestens einer Ausführungsform wird der OpenCL-Software-Stack 4500 auf der Hardware 4309 ausgeführt, die nicht herstellerspezifisch ist. Da OpenCL von Geräten unterstützt wird, die von verschiedenen Anbietern entwickelt wurden, können in mindestens einer Ausführungsform spezifische OpenCL-Treiber erforderlich sein, um mit Hardware von solchen Anbietern zusammenzuarbeiten.
  • In mindestens einer Ausführungsform können die Anwendung 4501, die OpenCL-Laufzeit 4506, der Gerätekerneltreiber 4507 und die Hardware 4508 ähnliche Funktionen ausführen wie die Anwendung 4201, die Laufzeit 4205, der Gerätekerneltreiber 4206 bzw. die Hardware 4207, die vorstehend in Verbindung mit 42 beschrieben sind. In mindestens einer Ausführungsform enthält die Anwendung 4501 außerdem einen OpenCL-Kernel 4502 mit Code, der auf einem Gerät auszuführen ist.
  • In mindestens einer Ausführungsform definiert OpenCL eine „Plattform“, die es einem Host ermöglicht, mit dem Host verbundene Geräte zu steuern. In mindestens einer Ausführungsform stellt ein OpenCL-Framework eine Plattformschicht-API und eine Laufzeit-API, dargestellt als Plattform-API 4503 und Laufzeit-API 4505, bereit. In mindestens einer Ausführungsform verwendet die Laufzeit-API 4505 Kontexte, um die Ausführung von Kerneln auf Geräten zu verwalten. In mindestens einer Ausführungsform kann jedes identifizierte Gerät mit einem entsprechenden Kontext assoziiert sein, den die Laufzeit-API 4505 verwenden kann, um Befehlswarteschlangen, Programmobjekte und Kernelobjekte, gemeinsam genutzte Speicherobjekte usw. für dieses Gerät zu verwalten. In mindestens einer Ausführungsform stellt die Plattform-API 4503 Funktionen zur Verfügung, die es ermöglichen, Gerätekontexte zu verwenden, um Geräte auszuwählen und zu initialisieren, Arbeit über Befehlswarteschlangen an Geräte zu übermitteln und den Datentransfer zu und von Geräten zu ermöglichen, um nur einige Beispiele zu nennen. Darüber hinaus stellt das OpenCL-Framework in mindestens einer Ausführungsform verschiedene integrierte Funktionen (nicht dargestellt), darunter mathematische Funktionen, relationale Funktionen und Bildverarbeitungsfunktionen, bereit.
  • In mindestens einer Ausführungsform ist darüber hinaus ein Compiler 4504 in dem OpenCL-Framewerk 4510 enthalten. Der Quellcode kann in mindestens einer Ausführungsform offline vor der Ausführung einer Anwendung oder online während der Ausführung einer Anwendung kompiliert werden. Im Gegensatz zu CUDA und ROCm können OpenCL-Anwendungen in mindestens einer Ausführungsform online durch den Compiler 4504 kompiliert werden, der stellvertretend für eine beliebige Anzahl von Compilern steht, die zum Kompilieren von Quellcode und/oder IR-Code, wie Standard Portable Intermediate Representation („SPIR-V“) Code, in Binärcode verwendet werden können. Alternativ können in mindestens einer Ausführungsform OpenCL-Anwendungen offline kompiliert werden, bevor solche Anwendungen ausgeführt werden.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 46 veranschaulicht Software, die von einer Programmierplattform unterstützt wird, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist eine Programmierplattform 4604 so konfiguriert, dass sie verschiedene Programmiermodelle 4603, Middlewares und/oder Bibliotheken 4602 und Frameworks 4601 unterstützt, auf die sich eine Anwendung 4600 stützen kann. In mindestens einer Ausführungsform kann die Anwendung 4600 eine KI/ML-Anwendung sein, die unter Verwendung beispielsweise eines Deep-Learning-Frameworks wie MXNet, PyTorch oder TensorFlow implementiert ist, das sich auf Bibliotheken wie cuDNN, NVIDIA Collective Communications Library („NCCL“) und/oder NVIDA Developer Data Loading Library („DALI“) CUDA-Bibliotheken stützen kann, um beschleunigte Berechnungen auf zugrunde liegender Hardware bereitzustellen.
  • In mindestens einer Ausführungsform kann die Programmierplattform 4604 eine der vorstehend in Verbindung mit 43, 44 bzw. 45 beschriebenen CUDA-, ROCm- oder OpenCL-Plattformen sein. In mindestens einer Ausführungsform unterstützt die Programmierplattform 4604 mehrere Programmiermodelle 4603, die Abstraktionen eines zugrunde liegenden Rechensystems sind, die Ausdrücke von Algorithmen und Datenstrukturen erlauben. In mindestens einer Ausführungsform können Programmiermodelle 4603 Merkmale zugrunde liegender Hardware offenlegen, um die Leistung zu verbessern. In mindestens einer Ausführungsform können die Programmiermodelle 4603 CUDA, HIP, OpenCL, C++ Accelerated Massive Parallelism („C++AMP“), Open Multi-Processing („OpenMP“), Open Accelerators („OpenACC“) und/oder Vulcan Compute umfassen, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform stellen Bibliotheken und/oder Middlewares 4602 Implementierungen von Abstraktionen von Programmiermodellen 4604 bereit. In mindestens einer Ausführungsform enthalten solche Bibliotheken Daten und Programmiercode, die von Computerprogrammen verwendet und während der Softwareentwicklung genutzt werden können. In mindestens einer Ausführungsform umfassen solche Middlewares Software, die Anwendungen Dienste zur Verfügung stellt, die über die von der Programmierplattform 4604 verfügbaren Dienste hinausgehen. In mindestens einer Ausführungsform können die Bibliotheken und/oder Middlewares 4602 cuBLAS, cuFFT, cuRAND und andere CUDA-Bibliotheken oder rocBLAS, rocFFT, rocRAND und andere ROCm-Bibliotheken umfassen, sind aber nicht darauf beschränkt. Darüber hinaus können die Bibliotheken und/oder Middlewares 4602 in mindestens einer Ausführungsform NCCL- und ROCm Communication Collectives Library („RCCL“)-Bibliotheken, die Kommunikationsroutinen für GPUs bereitstellen, eine MIOpen-Bibliothek zur Deep-Learning-Beschleunigung und/oder eine Eigen-Bibliothek für lineare Algebra, Matrix- und Vektoroperationen, geometrische Transformationen, numerische Solver und verwandte Algorithmen umfassen.
  • In mindestens einer Ausführungsform hängen die Anwendungsframeworks 4601 von Bibliotheken und/oder Middlewares 4602 ab. In mindestens einer Ausführungsform ist jedes der Anwendungsframeworks 4601 ein Softwareframework, das zur Implementierung einer Standardstruktur von Anwendungssoftware verwendet wird. Eine KI/ML-Anwendung kann in mindestens einer Ausführungsform unter Verwendung von eines Frameworks wie Caffe, Caffe2, TensorFlow, Keras, PyTorch oder MxNet Deep Learning Frameworks implementiert sein.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken unter Bezugnahme auf die Figuren geeignet, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • 47 veranschaulicht die Kompilierung von Code zur Ausführung auf einer der Programmierplattformen von 42 - 45, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform empfängt ein Compiler 4701 Quellcode 4700, der sowohl Host-Code als auch Geräte-Code enthält. In mindestens einer Ausführungsform ist der Compiler 4701 so konfiguriert, dass er den Quellcode 4700 in einen ausführbaren Host-Code 4702 zur Ausführung auf einem Host und einen ausführbaren Geräte-Code 4703 zur Ausführung auf einem Gerät umwandelt. In mindestens einer Ausführungsform kann der Quellcode 4700 entweder offline vor der Ausführung einer Anwendung oder online während der Ausführung einer Anwendung kompiliert werden.
  • In mindestens einer Ausführungsform kann der Quellcode 4700 Code in einer beliebigen, von dem Compiler 4701 unterstützten Programmiersprache enthalten, wie z.B. C++, C, Fortran usw. In mindestens einer Ausführungsform kann der Quellcode 4700 in einer Einquellen- bzw. Single-Source-Datei enthalten sein, die eine Mischung aus Host-Code und Geräte-Code enthält, wobei Positionen des Geräte-Codes darin angegeben sind. In mindestens einer Ausführungsform kann eine Single-Source-Datei eine .cu-Datei sein, die CUDA-Code enthält, oder eine .hip.cpp-Datei, die HIP-Code enthält. Alternativ kann der Quellcode 4700 in mindestens einer Ausführungsform mehrere Quellcodedateien anstelle einer einzigen Quellcodedatei beinhalten, in denen Host-Code und Geräte-Code getrennt sind.
  • In mindestens einer Ausführungsform ist der Compiler 4701 so konfiguriert, dass er den Quellcode 4700 in einen ausführbaren Host-Code 4702 zur Ausführung auf einem Host und einen ausführbaren Geräte-Code 4703 zur Ausführung auf einem Gerät kompiliert. In mindestens einer Ausführungsform führt der Compiler 4701 Operationen durch, darunter ein Parsen des Quellcodes 4700 in einen abstrakten Systembaum (AST), ein Durchführen von Optimierungen und ein Erzeugen von ausführbarem Code. In mindestens einer Ausführungsform, in der der Quellcode 4700 eine Single-Source-Datei enthält, kann der Compiler 4701 den Geräte-Code von dem Host-Code in einer solchen Single-Source-Datei trennen, den Geräte-Code und den Host-Code in den ausführbaren Geräte-Code 4703 bzw. den ausführbaren Host-Code 4702 kompilieren und den ausführbaren Geräte-Code 4703 und den ausführbaren Host-Code 4702 in einer einzigen Datei miteinander verknüpfen, wie nachstehend unter Bezugnahme auf 36 ausführlicher erläutert.
  • In mindestens einer Ausführungsform können der ausführbare Host-Code 4702 und der ausführbare Geräte-Code 4703 in jedem geeigneten Format vorliegen, z.B. als Binärcode und/oder IR-Code. In einem Fall von CUDA kann der ausführbare Host-Code 4702 in mindestens einer Ausführungsform nativen Objektcode beinhalten und kann der ausführbare Geräte-Code 4703 Code in PTX-Zwischendarstellung beinhalten. In einem Fall von ROCm können sowohl der ausführbare Host-Code 4702 als auch der ausführbare Geräte-Code 4703 in mindestens einer Ausführungsform einen Ziel-Binärcode enthalten.
  • In mindestens einer Ausführungsform sind eine oder mehrere Schaltungen, Prozessoren, Computersysteme oder andere Vorrichtungen oder Techniken angepasst, unter Bezugnahme auf die Figuren, eine Ursache für einen Leistungsrückgang zu identifizieren, indem Leistungskennzahlen, die mit einer ersten Gruppe von Benutzerinteraktionen mit einem webbasierten Dienst verbunden sind, mit Leistungskennzahlen verglichen werden, die mit einer zweiten Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst verbunden sind. In mindestens einer Ausführungsform wird dies durch Ausführungsformen der Figuren durchgeführt, gemäß hierin in Bezug auf 1-10 beschriebenen Ausführungsformen.
  • Mindestens eine Ausführungsform der Offenbarung kann im Hinblick auf die folgenden Klauseln beschrieben werden:
    1. 1. Prozessor, umfassend:
      • eine oder mehrere Schaltungen, die so konfiguriert sind, dass sie eine oder mehrere Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst vergleichen.
    2. 2. Prozessor nach Klausel 1, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie feststellen, dass die Leistung des webbasierten Dienstes zurückgegangen ist, zumindest durch:
      • Erzeugen einer neu abgetasteten Zeitreihe durch zumindest zufälliges Neuzuordnen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets der neu abgetasteten Zeitreihe; und
      • Identifizieren eines Übergangspunkts in der neu abgetasteten Zeitreihe, zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
    3. 3. Prozessor nach Klausel 1 oder 2, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen vergleichen.
    4. 4. Prozessor nach einer der Klauseln 1-3, wobei die eine oder mehrere Schaltungen so konfiguriert sind, dass sie einen Anteil der ersten Gruppe von Benutzerinteraktionen mit einem Anteil der zweiten Gruppe von Benutzerinteraktionen vergleichen.
    5. 5. Prozessor nach einer der Klauseln 1-4, wobei die erste Gruppe von Benutzerinteraktionen einer ersten Eigenschaft in einer Kategorie von Eigenschaften zugeordnet ist und die zweite Gruppe von Benutzerinteraktionen einer zweiten Eigenschaft in der Kategorie von Eigenschaften zugeordnet ist.
    6. 6. Prozessor nach einer der Klauseln 1-5, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine wahrscheinliche Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen der einen oder mehreren Leistungskennzahlen der ersten Gruppe von Benutzerinteraktionen mit der einen oder mehreren Leistungskennzahlen der zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
    7. 7. Prozessor nach einer der Klauseln 1-6, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie Gruppen von Benutzerinteraktionen rekursiv vergleichen, basierend zumindest teilweise, wobei jede Rekursionsebene zumindest teilweise auf einer Eigenschaftskategorie basiert, die sich von denjenigen in früheren Rekursionsebenen unterscheidet.
    8. 8. Prozessor nach einer der Klauseln 1-7, wobei eine Benutzerinteraktion die Nutzung des webbasierten Dienstes durch ein einem Benutzer zugeordnetes Client-Gerät umfasst.
    9. 9. System, umfassend:
      • eine oder mehrere Rechenvorrichtungen, die einen oder mehrere Prozessoren umfassen, um eine oder mehrere Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst zu vergleichen.
    10. 10. System nach Klausel 9, wobei der eine oder die mehreren Prozessoren zumindest einen Leistungsrückgang identifizieren, zumindest teilweise auf der Grundlage einer zufälligen Neuzuweisung von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets einer neu abgetasteten Version der Zeitreihe.
    11. 11. System nach einer der Klauseln 9 oder 10, wobei der eine oder die mehreren Prozessoren eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen vergleichen.
    12. 12. System nach einer der Klauseln 9-11, wobei der Vergleich der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen und der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen einen Vergleich eines Anteils von Interaktionen mit der ersten Gruppe von Benutzerinteraktionen mit einem Anteil von Interaktionen mit der zweiten Gruppe von Benutzerinteraktionen umfasst.
    13. 13. System nach einer der Klauseln 9-12, wobei die erste Gruppe von Benutzerinteraktionen durch Unterteilen von Benutzerinteraktionen auf der Grundlage von Eigenschaften, die mit einer Kategorie von Eigenschaften verbunden sind, erzeugt wird.
    14. 14. System nach einer der Klauseln 9-13, wobei der eine oder die mehreren Prozessoren bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine wahrscheinliche Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen von Änderungsraten von Anteils- und Leistungskennzahlen der ersten und zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
    15. 15. System nach einer der Klauseln 9-14, wobei der eine oder die mehreren Prozessoren rekursiv Gruppen von Benutzerinteraktionen vergleichen, wobei Gruppen, die in einer Rekursionsebene verglichen werden, zumindest teilweise auf der Grundlage einer für diese Rekursionsebene ausgewählten Eigenschaftskategorie erzeugt werden.
    16. 16. Maschinenlesbares Medium, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen zumindest zum:
      • Vergleichen einer oder mehrerer Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst.
    17. 17. Maschinenlesbares Medium nach Klausel 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen zumindest zum:
      • zufälligen Neuzuweisen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets einer neu abgetasteten Zeitreihe; und
      • Identifizieren eines Übergangspunkts in der neu abgetasteten Zeitreihe zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
    18. 18. Maschinenlesbares Medium nach einer der Klauseln 16 oder 17, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen zu vergleichen.
    19. 19. Maschinenlesbares Medium nach einer der Klauseln 16-18, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest einen Anteil der ersten Gruppe von Benutzerinteraktionen mit einem Anteil der zweiten Gruppe von Benutzerinteraktionen zu vergleichen.
    20. 20. Maschinenlesbares Medium nach einer der Klauseln 16-19, wobei die erste Gruppe von Benutzerinteraktionen mit einer ersten Eigenschaft einer Kategorie von Eigenschaften verbunden ist und die zweite Gruppe von Benutzerinteraktionen mit einer zweiten Eigenschaft der Kategorie von Eigenschaften verbunden ist.
    21. 21. Maschinenlesbares Medium nach einer der Klauseln 16-20, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest zu bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine potenzielle Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen der einen oder mehreren Leistungskennzahlen der ersten Gruppe von Benutzerinteraktionen mit einer oder mehreren Leistungskennzahlen der zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
    22. 22. Maschinenlesbares Medium nach einer der Klauseln 16-21, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest rekursiv Gruppen von Benutzerinteraktionen zu vergleichen, basierend zumindest teilweise, wobei jede Rekursionsebene zumindest teilweise auf einer Eigenschaftskategorie basiert, die sich von denjenigen in früheren Rekursionsebenen unterscheidet.
    23. 23. System, bestehend aus:
      • eine oder mehrere Rechenvorrichtungen, um eine Ausgabe für einen computerisierten Spieledienst zu erzeugen, wobei die eine oder mehreren Rechenvorrichtungen eine oder mehrere Leistungskennzahlen des Dienstes in Reaktion auf eine erste Gruppe von Interaktionen mit dem Dienst und eine oder mehrere Leistungskennzahlen des Dienstes in Reaktion auf eine zweite Gruppe von Interaktionen mit dem Dienst vergleichen.
    24. 24. System nach Klauseln 23, wobei die eine oder die mehreren Rechenvorrichtungen zumindest:
      • einen Leistungsrückgang identifizieren durch zumindest zufälliges Neuzuweisen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen zu Buckets einer neu abgetasteten Zeitreihe; und
      • einen Übergangspunkt in der neu abgetasteten Zeitreihe identifizieren, zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
    25. 25. System nach einer der Klauseln 23 oder 24, wobei der Vergleich zumindest teilweise auf einer Änderungsrate der einen oder mehreren Leistungskennzahlen des Dienstes in Reaktion auf die erste Gruppe von Interaktionen basiert.
    26. 26. System nach einer der Klauseln 23-25, wobei die eine oder mehrere Rechenvorrichtungen zumindest einen Anteil der ersten Gruppe von Interaktionen mit einem Anteil der zweiten Gruppe von Interaktionen vergleichen.
    27. 27. System nach einer der Klauseln 23-26, wobei die erste Gruppe von Interaktionen zumindest teilweise auf der Grundlage einer Eigenschaft erzeugt wird, die allen Interaktionen in der ersten Gruppe von Interaktionen gemeinsam ist.
    28. 28. System nach einer der Klauseln 23-27, wobei die eine oder die mehreren Rechenvorrichtungen zumindest eine oder mehrere Eigenschaften identifizieren, die wahrscheinlich eine Ursache für einen Leistungsrückgang sind, zumindest teilweise basierend auf einem Analysen von Statistiken, die mit Gruppierungen von Benutzerinteraktionen verbunden sind, und zumindest teilweise basierend auf der Analyse einen Wert berechnen, der einen Informationsgewinn angibt.
  • Andere Variationen sind im Sinne der Erfindung. Während die offenbarten Techniken verschiedenen Modifikationen und alternativen Konstruktionen zugänglich sind, sind bestimmte dargestellte Ausführungsformen derselben in Zeichnungen gezeigt und wurden vorstehend im Detail beschrieben. Es versteht sich jedoch, dass nicht beabsichtigt ist, die Erfindung auf eine bestimmte Form oder bestimmte Formen zu beschränken, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Gedanken und den Frame der Erfindung fallen, wie er in den beigefügten Ansprüchen definiert ist.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der“ und ähnlicher Bezeichnungen im Kontext der Beschreibung offenbarter Ausführungsformen (insbesondere im Kontext der nachfolgenden Ansprüche) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hierin nicht anders angegeben oder durch Kontext eindeutig widerlegt, und nicht als Definition eines Begriffs. Die Begriffe „umfassend“, „mit“, „beinhaltend“ und „enthaltend“ sind, sofern nicht anders angegeben, als nicht abschließende Begriffe (d.h. „einschließlich, aber nicht beschränkt auf“) zu verstehen. Der Begriff „verbunden“ ist, wenn er unverändert bleibt und sich auf physische Verbindungen bezieht, als teilweise oder ganz in einem Bauteil enthalten, an ihm angebracht oder mit ihm verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Wiedergabe von Wertebereichen ist lediglich als ein verkürzendes Verfahren des individuellen Bezugnehmens auf jeden einzelnen Wert, der in den Bereich fällt, beabsichtigt, sofern hierin nichts anderes angegeben ist, und jeder einzelne Wert ist in die Spezifikation aufgenommen, als wäre er hierin einzeln aufgeführt. In mindestens einer Ausführungsform ist die Verwendung des Begriffs „Menge“ (z.B. „eine Menge von Gegenständen“) oder „Teilmenge“, sofern nicht anders angegeben oder durch Kontext widerlegt, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Sofern außerdem nicht anders vermerkt oder durch Kontext widerlegt, bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge nicht notwendigerweise eine echte Teilmenge der entsprechenden Menge, sondern Teilmenge und entsprechende Menge können gleich sein.
  • Konjunktive Sprache, wie z.B. Phrasen der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, wird, sofern nicht ausdrücklich anders angegeben oder anderweitig eindeutig durch Kontext widersprochen ist, im Allgemeinen so verstanden, dass damit ausgedrückt wird, dass ein Element, ein Begriff usw. entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. So beziehen sich z.B. in dem veranschaulichenden Beispiel einer Menge mit drei Elementen die konjunktiven Ausdrücke „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Eine solche konjunktivische Sprache soll also nicht generell bedeuten, dass bei bestimmten Ausführungsformen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Darüber hinaus, sofern nicht anders angegeben oder durch Kontext widerlegt, zeigt der Begriff „Mehrzahl“ einen Zustand an, in dem er plural ist (z.B. „eine Mehrzahl von Elementen“ zeigt mehrere Elemente an). In mindestens einer Ausführungsform ist eine Anzahl von Elementen in einer Mehrzahl ist mindestens zwei, kann aber mehr sein, wenn dies entweder explizit oder durch Kontext angegeben wird. Sofern nicht anders angegeben oder aus Kontext ersichtlich ist, bedeutet „basierend auf” „zumindest teilweise basierend auf” und nicht „ausschließlich basierend auf”.
  • Operationen hierin beschriebener Prozesse können in jeder geeigneten Reihenfolge ausgeführt werden, sofern hierin nicht anders angegeben oder durch den Kontext eindeutig widerlegt ist. In mindestens einer Ausführungsform wird ein Prozess wie die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen derselben) unter der Steuerung eines oder mehrerer Computersysteme durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind und als Code (z.B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. In mindestens einer Ausführungsform ist der Code auf einem computerlesbaren Speichermedium gespeichert. In mindestens einer Ausführungsform in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht-transitorisches computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nicht-transitorische Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb der Transceiver von transitorischen Signalen enthält. In mindestens einer Ausführungsform ist der Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nicht-transitorischen computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern von ausführbaren Anweisungen) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Computersystems ausgeführt werden (d.h. als Ergebnis der Ausführung), das Computersystem veranlassen, hierin beschriebene Operationen durchzuführen. In mindestens einer Ausführungsform umfasst der Satz nicht-transitorischer computerlesbarer Speichermedien mehrere nicht-transitorische computerlesbare Speichermedien, und einem oder mehreren der einzelnen nicht-transitorischen Speichermedien der mehreren nicht-transitorischen computerlesbaren Speichermedien fehlt der gesamte Code, während die mehreren nicht-transitorischen computerlesbaren Speichermedien gemeinsam den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Befehle so ausgeführt, dass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden. In mindestens einer Ausführungsform speichert ein nicht-transitorisches computerlesbares Speichermedium Befehle und führt eine zentrale Verarbeitungseinheit („CPU“) einige der Befehle aus, während eine Grafikverarbeitungseinheit („GPU“) andere Befehle ausführt. In mindestens einer Ausführungsform haben verschiedene Komponenten eines Computersystems separate Prozessoren und verschiedene Prozessoren führen verschiedene Teilmengen von Anweisungen aus.
  • Demgemäß sind in mindestens einer Ausführungsform Computersysteme dazu konfiguriert, einen oder mehrere Dienste zu implementieren, die einzeln oder gemeinsam Operationen der hierin beschriebenen Prozesse durchführen, und sind solche Computersysteme mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung der Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der Erfindung implementiert, eine einzelne Vorrichtung und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hierin beschriebenen Operationen durchführt und eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhaften Ausdrücken (z.B. „wie beispielsweise“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Offenbarung und stellt keine Einschränkung des Umfangs der Offenbarung dar, sofern nicht anders angegeben. Keine Formulierung in der Beschreibung sollte so ausgelegt werden, dass ein nicht beanspruchtes Element als wesentlich für die Praxis der Offenbarung angesehen wird.
  • Alle hierin zitierten Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, werden hiermit durch Verweis in demselben Umfang einbezogen, als ob jede Referenz einzeln und ausdrücklich als durch Verweis einbezogen angegeben wäre und hierin in ihrer Gesamtheit wiedergegeben würde.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ sowie ihre Ableitungen verwendet werden. Es ist zu verstehen, dass diese Begriffe nicht als Synonyme füreinander zu verstehen sind. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt zueinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber dennoch miteinander zusammenarbeiten oder interagieren.
  • Sofern nicht ausdrücklich anders angegeben, beziehen sich Begriffe wie „Verarbeitung“, „Berechnung“, „Berechnen“, „Bestimmen“ o. ä. in der gesamten Spezifikation auf Aktionen und/oder Prozesse eines Computers oder eines Computersystems oder eines ähnlichen elektronischen Rechengeräts, die Daten, die als physikalische, z.B. elektronische, Größen in den Registern und/oder Speichern des Computersystems dargestellt werden, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen in den Speichern, Registern oder anderen Informationsspeicher-, Übertragungs- oder Anzeigegeräten des Computersystems dargestellt werden.
  • In ähnlicher Weise kann sich der Begriff „Prozessor“ auf ein Gerät oder einen Teil eines Geräts beziehen, das elektronische Daten aus Registern und/oder einem Speicher verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder einem Speicher gespeichert werden können. Als nicht einschränkende Beispiele kann der „Prozessor“ eine CPU oder eine GPU sein. Eine „Datenverarbeitungsplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hierin verwendet, können „Software“-Prozesse in mindestens einer Ausführungsform Software- und/oder Hardware-Einheiten umfassen, die im Laufe der Zeit Arbeit verrichten, wie z.B. Aufgaben, Threads und intelligente Agenten. Jeder Prozess kann sich auch auf mehrere Prozesse beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. Die Begriffe „System“ und „Methode“ werden hierin insofern synonym verwendet, als ein System eine oder mehrere Methoden umfassen kann und Methoden als System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Beschaffen, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Teilsystem, ein Computersystem oder eine computerimplementierte Maschine Bezug genommen werden. In mindestens einer Ausführungsform kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens analoger und digitaler Daten auf verschiedene Weise erfolgen, z.B. durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In einigen Implementierungen kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In einer anderen Implementierung kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens analoger oder digitaler Daten durch die Übertragung von Daten über ein Computernetzwerk von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen kann das Bereitstellen, Ausgeben, Übertragen, Senden oder Darstellen analoger oder digitaler Daten durch die Übertragung von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozess-Kommunikationsmechanismus erfolgen.
  • Obwohl die obige Diskussion Beispielimplementierungen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen in den Anwendungsbereich dieser Offenlegung fallen. Darüber hinaus können verschiedene Funktionen und Verantwortlichkeiten je nach den Umständen auf unterschiedliche Weise verteilt und aufgeteilt werden, auch wenn oben zu Diskussionszwecken eine bestimmte Verteilung der Verantwortlichkeiten definiert wurde.
  • Auch wenn der Gegenstand in einer Sprache beschrieben wurde, die sich auf strukturelle Merkmale und/oder methodische Handlungen bezieht, versteht sich ferner, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden die spezifischen Merkmale und Handlungen als beispielhafte Formen der Umsetzung der Ansprüche offenbart.
  • 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 16/987 [0001]

Claims (28)

  1. Prozessor, umfassend: eine oder mehrere Schaltungen, die so konfiguriert sind, dass sie eine oder mehrere Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst vergleichen.
  2. Prozessor nach Anspruch 1, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie feststellen, dass die Leistung des webbasierten Dienstes zurückgegangen ist, zumindest durch: Erzeugen einer neu abgetasteten Zeitreihe durch zumindest zufälliges Neuzuordnen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets der neu abgetasteten Zeitreihe; und Identifizieren eines Übergangspunkts in der neu abgetasteten Zeitreihe, zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
  3. Prozessor nach Anspruch 1, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen vergleichen.
  4. Prozessor nach Anspruch 1, wobei die eine oder mehrere Schaltungen so konfiguriert sind, dass sie einen Anteil der ersten Gruppe von Benutzerinteraktionen mit einem Anteil der zweiten Gruppe von Benutzerinteraktionen vergleichen.
  5. Prozessor nach Anspruch 1, wobei die erste Gruppe von Benutzerinteraktionen einer ersten Eigenschaft in einer Kategorie von Eigenschaften zugeordnet ist und die zweite Gruppe von Benutzerinteraktionen einer zweiten Eigenschaft in der Kategorie von Eigenschaften zugeordnet ist.
  6. Prozessor nach Anspruch 1, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine wahrscheinliche Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen der einen oder mehreren Leistungskennzahlen der ersten Gruppe von Benutzerinteraktionen mit der einen oder mehreren Leistungskennzahlen der zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
  7. Prozessor nach Anspruch 1, wobei die eine oder die mehreren Schaltungen so konfiguriert sind, dass sie Gruppen von Benutzerinteraktionen rekursiv vergleichen, basierend zumindest teilweise, wobei jede Rekursionsebene zumindest teilweise auf einer Eigenschaftskategorie basiert, die sich von denjenigen in früheren Rekursionsebenen unterscheidet.
  8. Prozessor nach Anspruch 1, wobei eine Benutzerinteraktion die Nutzung des webbasierten Dienstes durch ein einem Benutzer zugeordnetes Client-Gerät umfasst.
  9. System, umfassend: eine oder mehrere Rechenvorrichtungen, die einen oder mehrere Prozessoren umfassen, um eine oder mehrere Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst zu vergleichen.
  10. System nach Anspruch 9, wobei der eine oder die mehreren Prozessoren zumindest einen Leistungsrückgang identifizieren, zumindest teilweise auf der Grundlage einer zufälligen Neuzuweisung von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets einer neu abgetasteten Version der Zeitreihe.
  11. System nach Anspruch 9, wobei der eine oder die mehreren Prozessoren eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen vergleichen.
  12. System nach Anspruch 9, wobei der Vergleich der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen und der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen einen Vergleich eines Anteils von Interaktionen mit der ersten Gruppe von Benutzerinteraktionen mit einem Anteil von Interaktionen mit der zweiten Gruppe von Benutzerinteraktionen umfasst.
  13. System nach Anspruch 9, wobei die erste Gruppe von Benutzerinteraktionen durch Unterteilen von Benutzerinteraktionen auf der Grundlage von Eigenschaften, die mit einer Kategorie von Eigenschaften verbunden sind, erzeugt wird.
  14. System nach Anspruch 9, wobei der eine oder die mehreren Prozessoren bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine wahrscheinliche Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen von Änderungsraten von Anteils- und Leistungskennzahlen der ersten und zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
  15. System nach Anspruch 9, wobei der eine oder die mehreren Prozessoren rekursiv Gruppen von Benutzerinteraktionen vergleichen, wobei Gruppen, die in einer Rekursionsebene verglichen werden, zumindest teilweise auf der Grundlage einer für diese Rekursionsebene ausgewählten Eigenschaftskategorie erzeugt werden.
  16. Maschinenlesbares Medium, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen zumindest zum: Vergleichen einer oder mehrerer Leistungskennzahlen eines webbasierten Dienstes in Reaktion auf eine erste Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst und eine oder mehrere Leistungskennzahlen des webbasierten Dienstes in Reaktion auf eine zweite Gruppe von Benutzerinteraktionen mit dem webbasierten Dienst.
  17. Maschinenlesbares Medium nach Anspruch 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen zumindest zum: zufälligen Neuzuweisen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes zu Buckets einer neu abgetasteten Zeitreihe; und Identifizieren eines Übergangspunkts in der neu abgetasteten Zeitreihe zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
  18. Maschinenlesbares Medium nach Anspruch 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest eine Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die erste Gruppe von Benutzerinteraktionen mit einer Änderungsrate der einen oder mehreren Leistungskennzahlen des webbasierten Dienstes in Reaktion auf die zweite Gruppe von Benutzerinteraktionen zu vergleichen.
  19. Maschinenlesbares Medium nach Anspruch 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest einen Anteil der ersten Gruppe von Benutzerinteraktionen mit einem Anteil der zweiten Gruppe von Benutzerinteraktionen zu vergleichen.
  20. Maschinenlesbares Medium nach Anspruch 16, wobei die erste Gruppe von Benutzerinteraktionen mit einer ersten Eigenschaft einer Kategorie von Eigenschaften verbunden ist und die zweite Gruppe von Benutzerinteraktionen mit einer zweiten Eigenschaft der Kategorie von Eigenschaften verbunden ist.
  21. Maschinenlesbares Medium nach Anspruch 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest zu bestimmen, dass eine Eigenschaft, die mit der ersten Gruppe von Benutzerinteraktionen verbunden ist, eine potenzielle Ursache für einen Leistungsrückgang des webbasierten Dienstes ist, zumindest teilweise auf der Grundlage eines Informationsmaßes, das durch Vergleichen der einen oder mehreren Leistungskennzahlen der ersten Gruppe von Benutzerinteraktionen mit einer oder mehreren Leistungskennzahlen der zweiten Gruppe von Benutzerinteraktionen gewonnen wird.
  22. Maschinenlesbares Medium nach Anspruch 16, auf dem ein Satz von Anweisungen gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, zumindest rekursiv Gruppen von Benutzerinteraktionen zu vergleichen, basierend zumindest teilweise, wobei jede Rekursionsebene zumindest teilweise auf einer Eigenschaftskategorie basiert, die sich von denjenigen in früheren Rekursionsebenen unterscheidet.
  23. System, bestehend aus: eine oder mehrere Rechenvorrichtungen, um eine Ausgabe für einen computerisierten Spieledienst zu erzeugen, wobei die eine oder mehreren Rechenvorrichtungen eine oder mehrere Leistungskennzahlen des Dienstes in Reaktion auf eine erste Gruppe von Interaktionen mit dem Dienst und eine oder mehrere Leistungskennzahlen des Dienstes in Reaktion auf eine zweite Gruppe von Interaktionen mit dem Dienst vergleichen.
  24. System nach Anspruch 23, wobei die eine oder die mehreren Rechenvorrichtungen zumindest: einen Leistungsrückgang identifizieren durch zumindest zufälliges Neuzuweisen von Punkten einer Zeitreihe der einen oder mehreren Leistungskennzahlen zu Buckets einer neu abgetasteten Zeitreihe; und einen Übergangspunkt in der neu abgetasteten Zeitreihe identifizieren, zumindest teilweise auf der Grundlage eines statistischen Vergleichs von Segmenten der neu abgetasteten Zeitreihe.
  25. System nach Anspruch 23, wobei der Vergleich zumindest teilweise auf einer Änderungsrate der einen oder mehreren Leistungskennzahlen des Dienstes in Reaktion auf die erste Gruppe von Interaktionen basiert.
  26. System nach Anspruch 23, wobei die eine oder mehrere Rechenvorrichtungen zumindest einen Anteil der ersten Gruppe von Interaktionen mit einem Anteil der zweiten Gruppe von Interaktionen vergleichen.
  27. System nach Anspruch 23, wobei die erste Gruppe von Interaktionen zumindest teilweise auf der Grundlage einer Eigenschaft erzeugt wird, die allen Interaktionen in der ersten Gruppe von Interaktionen gemeinsam ist.
  28. System nach Anspruch 23, wobei die eine oder die mehreren Rechenvorrichtungen zumindest eine oder mehrere Eigenschaften identifizieren, die wahrscheinlich eine Ursache für einen Leistungsrückgang sind, zumindest teilweise basierend auf einem Analysen von Statistiken, die mit Gruppierungen von Benutzerinteraktionen verbunden sind, und zumindest teilweise basierend auf der Analyse einen Wert berechnen, der einen Informationsgewinn angibt.
DE112021004177.0T 2020-08-06 2021-08-05 Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen Pending DE112021004177T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/987,252 US20220043731A1 (en) 2020-08-06 2020-08-06 Performance analysis
US16/987,252 2020-08-06
PCT/US2021/044833 WO2022032021A1 (en) 2020-08-06 2021-08-05 Detection of web-service performance regression based on metrics of groups of user interactions

Publications (1)

Publication Number Publication Date
DE112021004177T5 true DE112021004177T5 (de) 2023-08-24

Family

ID=77520823

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004177.0T Pending DE112021004177T5 (de) 2020-08-06 2021-08-05 Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen

Country Status (5)

Country Link
US (1) US20220043731A1 (de)
CN (1) CN115039081A (de)
DE (1) DE112021004177T5 (de)
GB (1) GB2602219A (de)
WO (1) WO2022032021A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11509704B1 (en) 2021-05-28 2022-11-22 T-Mobile Usa. Inc. Product validation based on simulated enhanced calling or messaging communications services in telecommunications network
US11546243B1 (en) 2021-05-28 2023-01-03 T-Mobile Usa, Inc. Unified interface and tracing tool for network function virtualization architecture
US11490432B1 (en) * 2021-05-28 2022-11-01 T-Mobile Usa, Inc. Unified query tool for network function virtualization architecture
US20230199623A1 (en) * 2021-12-17 2023-06-22 Juniper Networks, Inc. Radio access network tracking area visualization management and monitoring

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627632B2 (en) * 2006-11-13 2009-12-01 Microsoft Corporation Reducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player
US8616958B2 (en) * 2007-11-12 2013-12-31 Bally Gaming, Inc. Discovery method and system for dynamically locating networked gaming components and resources
US20140256445A1 (en) * 2013-03-07 2014-09-11 Cfph, Llc Fantasy gaming
US9699052B2 (en) * 2013-05-30 2017-07-04 Qualcomm Incorporated Methods and systems for enhanced round trip time (RTT) exchange
US9594665B2 (en) * 2014-03-05 2017-03-14 Microsoft Technology Licensing, Llc Regression evaluation using behavior models of software applications
US9923793B1 (en) * 2015-02-20 2018-03-20 Amazon Technologies, Inc. Client-side measurement of user experience quality
US9225625B1 (en) * 2015-03-26 2015-12-29 Linkedin Corporation Detecting and alerting performance degradation during features ramp-up
RU2640637C2 (ru) * 2015-10-13 2018-01-10 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер проведения контролируемого эксперимента с использованием прогнозирования будущего пользовательского поведения
RU2642411C2 (ru) * 2016-04-04 2018-01-24 Общество С Ограниченной Ответственностью "Яндекс" Способ определения тренда показателя степени вовлеченности пользователя
US10129274B2 (en) * 2016-09-22 2018-11-13 Adobe Systems Incorporated Identifying significant anomalous segments of a metrics dataset
US10754756B2 (en) * 2018-04-05 2020-08-25 Sap Se Software performance regression analysis using execution timelines
US10740094B2 (en) * 2018-07-03 2020-08-11 Servicenow, Inc. Performance monitoring of system version releases
US11169907B2 (en) * 2020-01-15 2021-11-09 Salesforce.Com, Inc. Web service test and analysis platform
US11806631B2 (en) * 2020-05-11 2023-11-07 Rovi Guides, Inc. Gaming content recommendation for a video game

Also Published As

Publication number Publication date
US20220043731A1 (en) 2022-02-10
WO2022032021A1 (en) 2022-02-10
GB202203109D0 (en) 2022-04-20
CN115039081A (zh) 2022-09-09
GB2602219A (en) 2022-06-22

Similar Documents

Publication Publication Date Title
DE112021002803T5 (de) Reservoir in einem rack-formfaktor für kühlsysteme in rechenzentren
DE102021122545A1 (de) Redundante flüssigkeitsverteilungseinheiten für rechenzentrum-racks
DE112021004177T5 (de) Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen
DE102021133641A1 (de) Verteilung des flüssigkeitsstroms mit hilfe eines oder mehrerer neuronaler netzwerke
DE112022000081T5 (de) Intelligenter bewegbarer durchflussregler und kühlverteiler für rechenzentrums-kühlsystem
DE112021002386T5 (de) Analyse der kühlfluidqualität in rechenzentren und schadensbegrenzung
DE102022120616A1 (de) Selbstheilung und Rechenzentren
DE102022101324A1 (de) Statischer rechenzentrum-leistungsausgleich und konfiguration
DE112021005444T5 (de) Intelligente strom- und kühlmittelverteilereinheit für kühlsysteme in rechenzentren
DE102021123338A1 (de) Vorausschauende steuerung unter verwendung eines oder mehrerer neuralen netze
DE102023103633A1 (de) Zustandsüberwachung in sicheren rechenzentren
DE102022111321A1 (de) Intelligentes lecksensorsystem für rechenzentrumskühlsysteme
DE112022000762T5 (de) Intelligente rackmontierte pumpen- oder kompressoreinheit für rechenzentrumkühlsysteme
DE102023113043A1 (de) Codeerzeugungsverfahren
DE102022112385A1 (de) Intelligentes testsystem unter verwendung von kühlsystemen in rechenzentren
DE102022101525A1 (de) Intelligenter kühlmittelunterstützter flüssigkeit-zu-luftwärmetauscher für kühlsysteme in einem rechenzentrum
DE102021124265A1 (de) Lokalisierte Immersionskühlung für Rechenzentrum-Kühlungssysteme
DE112023000088T5 (de) Selektive kommunikationsschnittstellen für programmierbare teile
DE102022126283A1 (de) Nichtflüchtiger Speicher und Schnittstelle
DE102022120925A1 (de) Automatisierte kabelreparatur vor ort
DE102022131531A1 (de) Luftstromregelung für kühleffizienz
DE102022114661A1 (de) Rack-komponenten-erkennungs- und kommunikationsfeld
DE102022120000A1 (de) Chemiebasierte kühlmitteleinstellung für kühlsysteme für rechenzentren
DE102022109741A1 (de) Physikalische sicherheitsvorrichtung für integrierte schaltung
DE102022100816A1 (de) Thermisches testfahrzeug

Legal Events

Date Code Title Description
R012 Request for examination validly filed