optimization - Was bedeuten die Begriffe "CPU-gebunden" und "E / A-gebunden"?

Translate

Was bedeuten die Begriffe "CPU-gebunden" und "E / A-gebunden"?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Es ist ziemlich intuitiv:

Ein Programm ist CPU-gebunden, wenn es schneller laufen würde, wenn die CPU schneller wäre, dh es verbringt den größten Teil seiner Zeit damit, einfach die CPU zu verwenden (Berechnungen durchzuführen). Ein Programm, das neue Ziffern von π berechnet, ist normalerweise CPU-gebunden, es knackt nur Zahlen.

Ein Programm ist E / A-gebunden, wenn es schneller gehen würde, wenn das E / A-Subsystem schneller wäre. Welches genaue E / A-System gemeint ist, kann variieren. Normalerweise verbinde ich es mit Festplatte, aber natürlich ist auch die Vernetzung oder Kommunikation im Allgemeinen üblich. Ein Programm, das in einer riesigen Datei nach einigen Daten sucht, wird möglicherweise an die E / A gebunden, da der Engpass dann das Lesen der Daten von der Festplatte ist (tatsächlich ist dieses Beispiel heutzutage mit Hunderten von MB / s vielleicht etwas altmodisch von SSDs kommen).

Quelle
Translate

CPU gebundenbedeutet, dass die Geschwindigkeit, mit der der Prozess fortschreitet, durch die Geschwindigkeit der CPU begrenzt ist. Eine Aufgabe, die Berechnungen für einen kleinen Satz von Zahlen durchführt, beispielsweise das Multiplizieren kleiner Matrizen, ist wahrscheinlich CPU-gebunden.

E / A gebundenbedeutet, dass die Geschwindigkeit, mit der ein Prozess fortschreitet, durch die Geschwindigkeit des E / A-Subsystems begrenzt ist. Eine Aufgabe, die Daten von der Festplatte verarbeitet, z. B. die Anzahl der Zeilen in einer Datei zählt, ist wahrscheinlich an die E / A gebunden.

Speicher gebundenbedeutet, dass die Geschwindigkeit, mit der ein Prozess fortschreitet, durch die verfügbare Speichermenge und die Geschwindigkeit dieses Speicherzugriffs begrenzt ist. Eine Aufgabe, die große Mengen an Speicherdaten verarbeitet, beispielsweise das Multiplizieren großer Matrizen, ist wahrscheinlich speichergebunden.

Cache gebundenbedeutet die Geschwindigkeit, mit der ein Prozessfortschritt durch die Menge und Geschwindigkeit des verfügbaren Caches begrenzt wird. Eine Aufgabe, die einfach mehr Daten verarbeitet, als in den Cache passt, wird an den Cache gebunden.

I / O Bound wäre langsamer als Memory Bound wäre langsamer als Cache Bound wäre langsamer als CPU Bound.

Die Lösung für die E / A-Bindung besteht nicht unbedingt darin, mehr Speicher zu erhalten. In einigen Situationen kann der Zugriffsalgorithmus auf die Einschränkungen von E / A, Speicher oder Cache ausgelegt sein. SehenCach Oblivious Algorithmen.

Quelle
Translate

CPU-gebunden bedeutet, dass das Programm während der CPU oder der Zentraleinheit einen Engpass aufweistI / O.gebunden bedeutet, dass das Programm durch E / A oder Eingabe / Ausgabe, wie z. B. Lesen oder Schreiben auf Festplatte, Netzwerk usw., einen Engpass aufweist.

Im Allgemeinen wird bei der Optimierung von Computerprogrammen versucht, den Engpass zu ermitteln und zu beseitigen. Zu wissen, dass Ihr Programm CPU-gebunden ist, hilft, damit Sie nicht unnötig etwas anderes optimieren.

[Und mit "Engpass" meine ich das, was Ihr Programm langsamer macht, als es sonst hätte.]

Quelle
Translate

Eine andere Möglichkeit, dieselbe Idee zu formulieren:

  • Wenn das Beschleunigen der CPU Ihr Programm nicht beschleunigt, kann dies der Fall seinI / O.gebunden.

  • Wenn das Beschleunigen der E / A (z. B. die Verwendung einer schnelleren Festplatte) nicht hilft, ist Ihr Programm möglicherweise an die CPU gebunden.

(Ich habe "möglicherweise" verwendet, weil Sie andere Ressourcen berücksichtigen müssen. Speicher ist ein Beispiel.)

Quelle
Translate

Wenn Ihr Programm wartetI / O.(z. B. Lesen / Schreiben auf der Festplatte oder Lesen / Schreiben im Netzwerk usw.) kann die CPU auch dann andere Aufgaben ausführen, wenn Ihr Programm gestoppt ist. Die Geschwindigkeit Ihres Programms hängt hauptsächlich davon ab, wie schnell diese E / A-Vorgänge ausgeführt werden können. Wenn Sie die E / A beschleunigen möchten, müssen Sie die E / A beschleunigen.

Wenn Ihr Programm viele Programmanweisungen ausführt und nicht auf E / A wartet, wird es als CPU-gebunden bezeichnet. Wenn Sie die CPU beschleunigen, wird das Programm schneller ausgeführt.

In beiden Fällen besteht der Schlüssel zur Beschleunigung des Programms möglicherweise nicht darin, die Hardware zu beschleunigen, sondern das Programm zu optimieren, um die Menge an E / A oder CPU zu reduzieren, die es benötigt, oder es E / A ausführen zu lassen, während es gleichzeitig CPU-intensiv ist Zeug.

Quelle
Alma Lee
Translate

Die E / A-Bindung bezieht sich auf einen Zustand, in dem die Zeit, die zum Abschließen einer Berechnung benötigt wird, hauptsächlich durch die Wartezeit für den Abschluss von Eingabe- / Ausgabeoperationen bestimmt wird.

Dies ist das Gegenteil einer CPU-gebundenen Aufgabe. Dieser Umstand tritt auf, wenn die Rate, mit der Daten angefordert werden, langsamer ist als die Rate, mit der sie verbraucht werden, oder mit anderen Worten, mehr Zeit für das Anfordern von Daten aufgewendet wird als für die Verarbeitung.

Quelle
dua
Translate

E / A-gebundene Prozesse: Verbringen Sie mehr Zeit mit E / A als mit Berechnungen, haben Sie viele kurze CPU-Bursts. CPU-gebundene Prozesse: Verbringen Sie mehr Zeit mit Berechnungen, wenige sehr lange CPU-Bursts

Quelle
Translate

E / A-gebundener Prozess: - Wenn der größte Teil der Lebensdauer eines Prozesses im E / A-Status verbracht wird, ist der Prozess ai / o-gebundener Prozess. Beispiel: -Calculator, Internet Explorer

CPU-gebundener Prozess: - Wenn der größte Teil der Prozesslebensdauer in CPU verbracht wird, handelt es sich um einen CPU-gebundenen Prozess.

Quelle
Leave a Reply
You must be logged in to post a answer.