Frage

Was ist die Bedeutung von „Parallel Software“ und was sind die Unterschiede zwischen „Parallel Software“ und „regelmäßiger Software“?

Was sind die Vor- und Nachteile?

Ist "parallele Software" erfordert eine spezielle Hardware oder Programmiersprache zu schreiben?

War es hilfreich?

Lösung

http://en.wikipedia.org/wiki/Thread_(computer_science)

  

In der Informatik ein Faden   Ausführung ergibt sich aus einer Gabel eines   Computerprogramm in zwei oder mehr   gleichzeitig laufenden Aufgaben. Das   Umsetzung von Fäden und   Verfahren unterscheidet sich von einem Betriebs   System zum anderen, aber in den meisten Fällen,   ein Gewinde befindet sich in einem enthaltenen   Prozess. Mehrere Threads können existieren   innerhalb des gleichen Prozesses und Anteil   Ressourcen wie Speicher, während   verschiedene Prozesse nicht teilen diese   Ressourcen.

Die meisten modernen Programmiersprachen unterstützen Multithreading in der einen oder anderen (auch Javascript in den neuesten Versionen). : -)

Vorteile und Nachteile können sich auf der Aufgabe ab. Wenn Sie eine Menge von Verarbeitung, die Sie tun müssen, dann können Multithreading Ihnen helfen, dass brechen in kleinere Einheiten der Arbeit, die jede CPU unabhängig zur gleichen Zeit arbeiten können. Allerdings wird multithreaded Code im Allgemeinen komplexe sein zu schreiben und warten als Single-Threaded-Code.

Sie können immer noch schreiben / ausführen multithreaded Code auf einer Maschine, die nur einen Prozessor hat. Obwohl es nur ein Prozessor die Aufgaben sein wird, auszuführen, wird das Betriebssystem dafür sorgen, dass sie schnell gleichzeitig geschehen durch Kontextwechsel und zu einer Zeit, ein paar Anweisungen für jeden Thread ausgeführt wird.

Einige spezialisierte Hardware, die Sie mit dem vertraut sein tut parallele Aufgaben ist die GPU, die auf den meisten neuen Computern zu finden sind. In diesem Video zeigen die Mythbusters den Unterschied zwischen Zeichnung auf einem Single-Thread-CPU und einen Multi-Threaded-GPU:
http://www.youtube.com/watch?v=XtGf0HaW7x4&feature=player_embedded

Andere Tipps

  

Sind die "parallele Software" erfordert eine bestimmte Hardware oder Programmiersprache?

Ja und Ja.

Die erste ist einfach leicht. Die meisten modernen CPU (Say etwas neuer als M6800) Hardware-Features, die es möglich machen, zu einem Zeitpunkt mehr als eine Sache zu tun, obwohl beide nicht unbedingt in der gleichen Zeit. Zum Beispiel, wenn ein Timer-Interrupt ausgelöst wird, könnte eine CPU speichern, was es tut, und dann beginnen, etwas anderes zu tun. Diese Aufgaben gleichzeitig laufen.

Auch ohne dass, könnten Sie zwei Maschinen mit einer Art von Verbindung zueinander (wie eine einfache serielle Verbindung über ein Nullmodem-Adapter) nur erhalten und sie können arbeiten beide auf der gleichen Aufgabe parallel.

Die meisten neuen (nicht nur modern, aber kürzlich) CPUs haben Ressourcen parallel Computing eingebaut. Diese Multi-Core-CPUs kann tatsächlich zur gleichen Zeit auf zwei oder mehr Aufgaben zu arbeiten, eine Aufgabe pro Kern und haben spezielle Eigenschaften, die machen es ist ein bisschen effizienter für diese Aufgaben zu kooperieren.

Die zweite, erfordern spezielle Software-Tools wie eine parallel aktivierte Sprache ist, in gewisser Hinsicht der schwierigste Teil des parallelen Rechnens. Wenn Sie die einzige Person in der Küche sind, ist es recht einfach, eine Mahlzeit zu kochen, indem Sie jedes Rezept von Anfang bis Ende, eine nach der anderen, bis alle Gerichte gekocht werden. Wenn Sie, dass bis beschleunigen wollen durch mehr Köche hinzufügen, müssen Sie ein wenig vorsichtiger sein, um nicht gegenseitig auf die Zehen zu treten.

Der einfachste Weg, dies gehandhabt wird, ist durch eine Threading-Bibliothek verwenden, die einige Werkzeuge bietet, so dass mehrere Aufgaben organisieren können, um sich nicht gegenseitig verprügeln. Das ist nicht so einfach, wie ein Programm als parallel Beflaggung und das System kümmert sich um den Rest, vielmehr haben Sie jede Aufgabe zu schreiben, mit jeder anderen Aufgabe an jedem Ort zu kommunizieren, wo es die Möglichkeit, sie zu stören ist.

parallel Software kann nativ nutzen auf mehrere Kerne / CPUs auf einem Computer oder manchmal auf mehreren Computern. Beispiele hierfür sind Grafik-Rendering-Software und Schaltungsdesign-Software.

Nicht so sicher Nachteile andere als Multi-Prozessor-Software bekannt, neigt dazu, ein CPU hog zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top