www.wikidata.de-de.nina.az
Ein Parallelrechner ist ein Rechner in dem Rechenoperationen gleichzeitig unter anderem auf mehreren Haupt oder Grafikprozessoren durchgefuhrt werden konnen Parallelrechner ein Cray 2 1986 Inhaltsverzeichnis 1 Anwendungsbereiche 1 1 Massiv parallele Verarbeitung 1 2 Pipelining 2 Optimierung 3 GPU Cluster 4 Programmierschnittstellen 5 Siehe auch 6 Weblinks 7 EinzelnachweiseAnwendungsbereiche BearbeitenGrob konnen die folgenden Anwendungsbereiche unterschieden werden Massiv parallele Verarbeitung Bearbeiten Verteilte Problemstellungen wie z B Wettervorhersagen Dabei wird z B die Erdoberflache in Planquadrate aufgeteilt und jeweils ein Prozessor ubernimmt die Berechnung fur ein Planquadrat Um die Einflusse zwischen benachbarten Planquadraten zu berucksichtigen mussen dazu die Prozesse auf den unterschiedlichen Prozessoren untereinander Daten austauschen und dazu synchronisiert werden Computer die fur diese Art von Aufgabenstellung ausgelegt sind konnen einige tausend Hauptprozessoren enthalten Man verwendet dafur den Begriff Massiv parallele Computer Neben Wettervorhersagen finden sich Anwendungen fur solche Architekturen z B in allen Bereichen von Simulationen siehe z B Chemoinformatik Computerphysik Pipelining Bearbeiten Problemstellungen bei denen grossere Datenmengen in mehreren aufeinander folgenden Schritten verarbeitet werden sogenanntes Pipelining Z B lassen sich die Module eines Compilers Praprozessor lexikalische Analyse semantische Analyse Optimierung Codeerzeugung als parallel laufende Prozesse realisieren Jeder Prozess reicht seine Ausgabe dabei an den nachfolgenden Prozess weiter und ist damit frei um die nachsten Daten zu verarbeiten wahrend der nachfolgende Prozessschritt von einem anderen Prozess erledigt wird Dabei kann jeder der Prozesse jeweils einem Prozessor zugewiesen werden so dass eine weitgehende echte Parallelisierung der Verarbeitung erreicht wird Problemstellungen dieser Art sind in der Regel fur Rechner geeignet die uber vergleichsweise wenige Prozessoren verfugen Man spricht in diesem Fall haufig von Multithreading oder Nebenlaufigkeit Allerdings ist fur Multithreading Thread Faden nicht zwingend erforderlich dass die verschiedenen Prozesse Threads jeweils auf einem eigenen Prozessor laufen Denkbar ware ebenso die verschiedenen Prozesse quasi parallel auf einem einzigen Prozessor laufen zu lassen Allerdings konnen dann die Geschwindigkeitsvorteile nicht realisiert werden Optimierung BearbeitenParallelcomputer erhohen ihre Arbeitsgeschwindigkeit indem sie den Rechenaufwand auf ihre Prozessoren verteilen Um die volle Leistungsfahigkeit eines Parallelrechners ausnutzen zu konnen muss die Programmierung entsprechend angepasst werden Dafur stehen eine Reihe von Programmierschnittstellen zur Verfugung siehe Abschnitt weiter unten Die Verteilung der Rechenlast auf mehrere Prozesse erfordert immer einen zusatzlichen Aufwand um diese Verteilung zu organisieren und zu koordinieren Dieser Aufwand steigt mit der Anzahl der Prozesse in der Regel uberproportional an Je nach bestehenden Abhangigkeiten ist es auch nicht immer moglich Prozesse zu parallelisieren Eine Aufgabenstellung so zu implementieren dass sie einen Parallelrechner effizient nutzt erfordert deshalb ein tiefes Verstandnis der Problemstellung und es muss immer eine Kosten Nutzen Abwagung getroffen werden um fur die Parallelisierung ein Optimum zu finden Es gilt die knappen Ressourcen Rechenzeit Speicherzugriffe Datenbusse effizient zu nutzen Stets sollte der sequentielle Programm Overhead minimal sein Amdahlsches Gesetz Auch die Art der Vernetzung der Hardwarekomponenten hat Einfluss auf die Effizienz Fur viele Problemstellungen lassen sich gute Ergebnisse mit folgenden Topologien erzielen Cube Konfiguration aus 8 Rechnern Vernetzung entspricht einem Quader Hyper Cube n dimensionale Quader GPU Cluster BearbeitenIn den letzten Jahren sind Grafikkarten auf den Markt gekommen die teilweise mehr als 2000 Rechenkerne besitzen Eigentlich fur die Berechnung von Farbverlaufen Texturen usw konzipiert lassen sich diese Rechenkerne auch fur die Parallelisierung anderer Berechnungen nutzen Fur massiv parallele Anwendungen wurden deshalb mittlerweile auch Rechner gebaut die Cluster aus mehreren hundert Grafik Prozessoren oder Grafikkarten enthalten 1 2 Damit lassen sich Rechnerarchitekturen erreichen die statt einiger Tausend einige Hunderttausend Prozessoren enthalten Programmierschnittstellen BearbeitenOpenCL Open Computing Language Schnittstelle fur uneinheitliche Parallelrechner CUDA Compute Unified Device Architecture Schnittstelle um die Grafikkarte fur parallele Berechnungen nutzen zu konnen OpenHMPP Hybrid Multicore Parallel Programming OpenACC OpenMP Open Multi ProcessingSiehe auch BearbeitenRechnerverbund Field Programmable Gate Array FPGA Gustafsons Gesetz Koprozessor Mehrkernprozessor Mehrprozessorsystem Nachrichtenaustausch Supercomputer TransputerWeblinks Bearbeiten nbsp Commons Parallelrechner Sammlung von Bildern Videos und Audiodateien www copacobana org COPACOBANA Cost Optimized Parallel COde Breaker ein FPGA basierter ParallelrechnerEinzelnachweise Bearbeiten Heise Artikel Passwortknacken durch Riesen GPU Cluster GPU Clusters for High Performance Computing University of Illinois Abgerufen von https de wikipedia org w index php title Parallelrechner amp oldid 210823424