Mit Virtuellen Maschinen
Prof. Dr. Stefan Bosse
Universität Koblenz - FB Informatik - FG Praktiksche Informatik
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten ::
Wie kann das ZA Modell für die Parallelisierung und Verteilung genutzt werden?
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten ::
Wie kann das ZA Modell für die Parallelisierung und Verteilung genutzt werden?
Wie können geteilte und verteilte Speichermodelle sinnvoll eingesetzt werden?
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten ::
Wie kann das ZA Modell für die Parallelisierung und Verteilung genutzt werden?
Wie können geteilte und verteilte Speichermodelle sinnvoll eingesetzt werden?
Wie muss die Synchronisation aussehen? Synchron versa Asynchrone Ausführung
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten ::
Wie kann das ZA Modell für die Parallelisierung und Verteilung genutzt werden?
Wie können geteilte und verteilte Speichermodelle sinnvoll eingesetzt werden?
Wie muss die Synchronisation aussehen? Synchron versa Asynchrone Ausführung
Wie kann CALUA parallelisiert werden?
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Arten von ZA
Klassische ZA
Neuronale ZA
Differenzierbare Logik ZA
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Neuronale Zelluläre Automaten
Horibe et al., arXiv:2206.06674
Architekture eines NZA: Die nachbarschaftszellen liefern die Eingabe für ein Perzeptron dessen Ausgabe den nächsten Zustand der zelle bestimmt.
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Ausführungsmodell
Synchron mit Zentraltakt
Synchron in Phasen
Asynchron in Phasen
Asynchron
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Anforderungen
Die Taxonomie paralleler und verteilter Anwendungen bezieht sich auf Daten- und Anwendungsklassen, z.B.,
Datenklassen: Vektor-, Matrix-, Tensor-, Funktionsdaten (zelluläre Automaten);
Algorithmenklassen: Matrixoperationen im Allgemeinen, datengetriebene und iterative Optimierungsprobleme, Zelluläre Automatenverarbeitung, Simulation, Gleichungslösung, Regression, Statistische Analyse;
Datenabhängigkeitsklassen: Lokaler, globaler, gruppierter, statischer und dynamischer Inhalt, statische und dynamische Größen sowie horizontale (zeitliche) und vertikale Abhängigkeiten;
Verarbeitungsflussklassen: Datenfluss ⇔ Funktionsfluss, Kontrollfluss ⇒ Synchronisation;
Partitionierungsklassen: Einzeldaten- und Einzelmodell- versa Mehrdaten- und Mehrmodellberechnung (z. B. Ensemblemodell ML mit Modellfusion, Datenströme);
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Anforderungen
Modellklassen: Datengetriebene Modellierung, z. B. unter Verwendung von ML-Methoden, aufgeteilt in Trainings-, Test- und Validierungsphasen, Hypothesentest und Modellauswahl (parallel), Exploration (Suche) in einem Modellraum, Exploration (Suche) in einem Hyperparameterraums;
Größenklassen: Statische Größe versa Probleme mit dynamischer (wachsender) Größe.
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Das 1:1 Modell
Die einzelnen Zellen eines ZA sind zunächst völlig unabhängig voneinander → Kontrollpfadparallelität
Die Datenabängigkeit einer Zelle ist auf die Zellen seiner unmittelbaren Umgebung beschränkt → Kurzreichweitige Datenabhängigkeit
Synchronisation erfolgt primär (implizit) durch einen zentralen Takt, der aber nur die einzelnen Phasen des ZA (before, activity, after) einleitet.
Weitere implizite Synchronisation beim Zugriff auf Zustand (Variablen) von Nachbarzellen
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Das 1:1 Modell
(a) Das parallele (oder verteilte) 1:1 ZA Modell wo jede Zelle von einem physischen Prozessor ausgeführt wird → Verteiltes Speichermodell (b) Das partitionierte 1:N ZA Modell wo ein Bereich des ZA von einem Prozessor ausgeführt wird → Geteiltes und verteiltes Speichermodell
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Das 1:1 Modell
Das 1:1 Modell ist nur in digitalen Hardwaresystemen sinnvoll. Es ist der Overhead der Kommunikation und Synchronisation zu beachten!
Ein Zustandsautomatmit Register-Transfer Logik: Kontroll- und Datenpfad sind hier getrennt und statisch (nicht progranmmierbar), d.h. programmspezifisch.
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Das Partitionsmodell
Partitionierung der Zellen des ZA in parallele Felder:
Man unterscheidet:
Es gibt weiterhin einen gemeinsamen Takt (Synch.)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Das Partitionsmodell
Partitionierter ZA mit gemischten SM und DSM Modellen (Kern- und Randbereiche)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Parallele Programmierung des ZA
Da das Speichermodell der Kern- und Randzellen unterschiedlich ist müsste explizit bei der Programmierung zwischen Zellen im eigenen Feld und im Nachbarfeldern unterschieden werden!
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Strukturierter Geteilter Speicher
Aber: Wenn es automatisches Speichermanagement gibt können Datenstrukturen im Speicher verschoben werden (Dynamische Speicheradressen). Statische Adressen sind erforderlich.
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Strukturierter Geteilter Speicher
Aber: Hier haben wir dann wieder ("teure") nachrichtenbasierte Kommunikation
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Strukturierter Geteilter Speicher
Bosse, Appl.Sci. SI PC, MDPI, 2022
Architektur für gemeinsam genutzte strukturierte Speicherobjekte und programmatischer Zugriff über Proxy Funktionen (Monitore)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Strukturierter Geteilter Speicher
Viele VM unterstützen dynamisch typisierte Programmierung (Lua, Python, JavaScript). Für einen strukturierten geteilten Speicher brauchen wir zwingend statische Typisierung.
typesDefs = { xy = { x='int', y='int' }}sm = BufferSegment:new(1000)( erzeugt Array mit Datenstrukturen {x,y} )o = BufferSegment:object(sm,typesDefs.xy,10)a = BufferSegment:AddrOf(o)o[1].x = 100
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
function C:initialize (..) for k,v in pairs(parameter.state) do if shared then self.__state[k]=v else self[k]=v; end endendfunction C:__newindex( index, value ) if index ~= '__state' and self.__state ~= nil and self.__state[index] ~= nil then if shared then model.shared[index]:write(value,self.y,self.x) else self.__state[index] = value end else rawset( self, index, value ) endendfunction C:__index( index ) if index ~= '__state' and self.__state ~= nil and self.__state[index] ~= nil then if shared and then return model.shared[index]:read(self.y,self.x) else return self.__state[index] end else local value = rawget( self, index ) if value == nil then return rawget (getmetatable(self), index) else return value end endend
Lua Objektmonitor mit Objektgetter und Settergateways. Bei geteilten Zellen werden die Zellzustandsvariablen (state) in einem Hintergrundobjekt verwaltet.
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
Bei einem Zugriff auf die Zustandsvariablen einer Zelle, also z.B. self.open
, werden die Setter und Getter Funktionen aufgerufen
Handelt es sich um eine geteilte Randzelle und bei dem Objektzugriff um eine Zustandsvariable (aus der state Definition der Zelle), wird ein von allen Randzellen geteilter Speicher verwendet, ansonsten die lokale private Speicher einer Zelle
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
Objektmonitore implementieren lokalen, geteilten, und verteilten Speicherzugriff: Virtualisierung des Speicherzugriffs durch getter und setter Methoden
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
Aber: Sowohl der Zugriff auf geteilten (und geschützen) als auch vor allem auf verteilten Speicher verursacht erhöhte Laufzeitkosten!
Da die Zelloperationen i.A. geringe Rechenkomplexität aufweisen kann das parallele ZA Modell schnell ineffizient werden (Skalierunsgproblem)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Monitore
(Links) Partitionierter ZA mit lokalen und geteilten Speicher in den Randbereichen (Rechts) Prozessablaufmodell: Fork & Join Phasen (jeweils einzeln für before, activity, after)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Multi-Computer Parallelrechner: GreenArrays GA144
www.greenarraychips.com
GA144 Array Rechner (ein Mikrochip!)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Multi-Computer Parallelrechner: GreenArrays GA144
Der GA144 Parallelrechner bietet:
144 F18A FORTH Prozessoren (FORTH: Interpretersprache, stackbasiert)
96GIPS!
14μW - 650mW Leistungsaufnahme
Kein zentraler Takt! Asynchrone Digitallogik
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Zusammenfassung
Parallelisierung und Verteilung von Zellulären Automaten erfordert ein hybrides Speichermodell (lokal privat, geteilt, und verteilt)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Zusammenfassung
Parallelisierung und Verteilung von Zellulären Automaten erfordert ein hybrides Speichermodell (lokal privat, geteilt, und verteilt)
Durch die kurzreichweitige Datenabhängigkeit der Zellen kann durch Feldpartitionierung der Kommunikationsaufwand deutlich reduziert werden (nur Randzellen benötigen geteiltes Speichermodell mit direkten oder nachrichtenbasierten Zugriff)
Stefan Bosse - VPP - Modul C Parallele und Verteilte Zelluläre Automaten :: Zusammenfassung
Parallelisierung und Verteilung von Zellulären Automaten erfordert ein hybrides Speichermodell (lokal privat, geteilt, und verteilt)
Durch die kurzreichweitige Datenabhängigkeit der Zellen kann durch Feldpartitionierung der Kommunikationsaufwand deutlich reduziert werden (nur Randzellen benötigen geteiltes Speichermodell mit direkten oder nachrichtenbasierten Zugriff)
Objektmonitore können ein einheitliches Programmierkonzept erzielen und Virtualisierung von dem darunterliegenden Speichermodell erreichen