Ich glaube, dass diese Antwort korrekter ist als die vorhandenen Antworten, und wenn sie bearbeitet worden wären, hätte dies ihr Wesen verändert. Ich habe versucht, auf verschiedene Quellen oder Wikipedia-Seiten zu verlinken, damit andere die Richtigkeit bestätigen können.
Parallelität: Die Eigenschaft eines Systems, mit der Einheiten des Programms, des Algorithmus oder des Problems außerhalb der Reihenfolge oder in Teilreihenfolge ausgeführt werden können, ohne das Endergebnis zu beeinflussen 1 2 .
Ein einfaches Beispiel hierfür sind aufeinanderfolgende Ergänzungen:
0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
Aufgrund der kommutativen Zusatzeigenschaft kann deren Reihenfolge ohne Beeinträchtigung der Korrektheit geändert werden; Die folgende Anordnung ergibt die gleiche Antwort:
(1 + 9) + (2 + 8) + (3 + 7) + (4 + 6) + 5 + 0 = 45
Hier habe ich Zahlen zu Paaren zusammengefasst, die sich zu 10 summieren, was es mir leichter macht, die richtige Antwort in meinem Kopf zu finden.
Parallel Computing: eine Art der Berechnung , in der viele Berechnungen oder die Ausführung der Prozesse gleichzeitig ausgeführt werden 3 4 . Somit nutzt die Parallelverarbeitung die Eigenschaft der Parallelität, um mehrere Einheiten des Programms, des Algorithmus oder des Problems gleichzeitig auszuführen.
Wenn wir mit dem Beispiel fortlaufender Additionen fortfahren, können wir verschiedene Teile der Summe parallel ausführen:
Execution unit 1: 0 + 1 + 2 + 3 + 4 = 10
Execution unit 2: 5 + 6 + 7 + 8 + 9 = 35
Am Ende summieren wir dann die Ergebnisse der einzelnen Arbeiter, um sie zu erhalten 10 + 35 = 45
.
Auch diese Parallelität war nur möglich, weil aufeinanderfolgende Hinzufügungen die Eigenschaft der Parallelität haben.
Parallelität kann jedoch nicht nur durch Parallelität genutzt werden. Berücksichtigen Sie die Prävention auf einem Single-Core-System: Im Laufe der Zeit kann das System Fortschritte bei mehreren laufenden Prozessen erzielen, ohne dass einer von ihnen abgeschlossen wird. In der Tat ist Ihr Beispiel für asynchrone E / A ein häufiges Beispiel für Parallelität, für die keine Parallelität erforderlich ist.
Verwechslung
Das Obige ist relativ einfach. Ich vermute, dass die Leute verwirrt sind, weil die Wörterbuchdefinitionen nicht unbedingt mit den oben beschriebenen übereinstimmen:
- Concurrent: gleichzeitig oder nebeneinander auftreten oder existieren 5 .
- Parallelität: die Tatsache, dass zwei oder mehr Ereignisse oder Umstände gleichzeitig eintreten oder existieren. Bei der Suche auf Google: "define: concurrency" .
Das Wörterbuch definiert "Parallelität" als eine Tatsache des Auftretens, während die Definition in der Umgangssprache "Computing" eine latente Eigenschaft eines Programms, einer Eigenschaft oder eines Systems ist. Obwohl verwandt, sind diese Dinge nicht dasselbe.
Persönliche Empfehlungen
Ich empfehle, den Begriff "parallel" zu verwenden, wenn die gleichzeitige Ausführung sichergestellt oder erwartet wird, und den Begriff "gleichzeitig" zu verwenden, wenn es unsicher oder irrelevant ist, ob die gleichzeitige Ausführung verwendet wird.
Ich würde daher die Simulation eines Strahltriebwerks auf mehreren Kernen als parallel bezeichnen.
Ich würde Makefiles als Beispiel für Parallelität beschreiben. Makefiles geben die Abhängigkeiten der einzelnen Ziele an. Wenn Ziele von anderen Zielen abhängen, wird eine Teilreihenfolge erstellt. Wenn die Beziehungen und Rezepte umfassend und korrekt definiert sind, liegt die Eigenschaft der Parallelität vor: Es gibt eine Teilreihenfolge, sodass die Reihenfolge bestimmter Aufgaben neu angeordnet werden kann, ohne das Ergebnis zu beeinflussen. Diese Parallelität kann wiederum genutzt werden, um mehrere Regeln gleichzeitig zu erstellen, aber die Parallelität ist eine Eigenschaft des Makefiles, unabhängig davon, ob Parallelität verwendet wird oder nicht.