Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderingsystems
|
|
- Karoline Weiner
- vor 5 Jahren
- Abrufe
Transkript
1 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderingsystems Dipl.-Inform. Tim Süß 1 Dipl.-Inform. Timo Wiesemann Dr. rer. nat. Matthias Fischer Heinz Nixdorf Institut, Universität Paderborn Lehrstuhl für Algorithmen und Komplexität Fürstenallee 11, Paderborn {tsuess ava mafi}@uni-paderborn.de Zusammenfassung Typischerweise sind die Knoten eines PC-Clusters nicht mit leistungsfähigen Grafikkarten ausgestattet. Dennoch bieten Cluster-Betreiber einige wenige Rechenknoten an, die mit Highend-Grafikkarten ausgestattet sind, um beispielsweise eine PowerWall zu betreiben. Wenn zwischen diesen unterschiedlichen Knotentypen ein schnelles Netzwerk existiert, kann die Bilderzeugung durch die Knoten mit schwacher Grafikkarte beschleunigt werden. Dabei können die unterschiedlichen Knotentypen unterschiedliche Aufgabe bearbeiten. In einem solchen heterogenen System, müssen die unterschiedlichen entstehenden Lasten auf andere Weise verteilt werden, als in einem System, bei dem alle Knoten gleich ausgestattet sind. Wir präsentieren in dieser Arbeit Lastbalancierungsmechanismen, die in einem parallelen Out-of-Core-Renderingsystem für heterogene PC-Cluster eingesetzt werden. Schlüsselwörter Rendering, Parallel, Lastbalancierung, Out-Of-Core, Netzwerk 1 Diese Arbeit wurde teilweise unterstützt durch das DFG-Projekt DA155/31-1,ME872/11-1, FI1491/1-1 AVIPASIA
2 Seite 40 T. Süß, T. Wiesemann, M. Fischer 1 Einleitung und Motivation Dreidimensionale Modelle werden immer häufiger zur Planung von Maschinen, Städten, Fabriken uvm. eingesetzt. Dabei werden oft CAD-Modelle als einzelne Bausteine verwendet, die eine hohe Komplexität aufweisen, welche jedoch noch von einem einzelnen Computer in Echtzeit gerendert werden können [BSG+02]. Diese Bausteine werden dann zu einer Gesamtszene zusammengefügt. Auf diese Weise kann das Gesamtmodell so groß werden, dass ein einzelner Computer nicht mehr in der Lage ist, die Szene in einer ausreichenden Geschwindigkeit anzuzeigen. Um eine hinreichend gute Navigation innerhalb einer dreidimensionalen Szene zu ermöglichen, sollten nicht weniger als zehn Bilder pro Sekunde berechnet werden können. Ein weiteres Problem ist, dass mit steigender Komplexität auch mehr Speicherplatz benötigt wird, damit keine Daten von langsamen Datenträgern, wie z. B. Festplatten, nachgeladen werden müssen. Durch den Einsatz von Approximationen kann die Komplexität solcher Szenen reduziert werden [AHH08, LWC+02]. Dies hat jedoch den Nachteil, dass die Originalszene verändert wird, da diese reduzierten Versionen von Modellen eine veränderte Oberfläche haben können. Somit können beispielsweise innerhalb der Szene Lücken zwischen einzelnen Objekten entstehen, die im Originalmodell nahtlos aneinander grenzen. Durch den Einsatz von parallelem Rendering können diese hochkomplexen 3D-Modelle in Echtzeit dargestellt werden, ohne deren Komplexität und Aussehen zu verändern. Statt zur Bilderzeugung einen einzelnen Rechner zu verwenden, wird die Gesamtlast der Bildberechnung auf die verschiedenen Computer eines PC-Clusters verteilt. Typischerweise berechnet jeder der Knoten im PC-Cluster ein Teilbild, eine sogenannte Kachel. Anschließend werden die einzelnen Teilbilder zu einem Gesamtbild zusammengefügt [MCE+94]. Dabei ist es wichtig, dass die gesamte Rechenlast gleichmäßig auf die einzelnen Rechenknoten verteilt wird, da die Geschwindigkeit des Gesamtsystems in der Regel vom langsamsten Knoten abhängt. PC-Cluster bieten die Möglichkeit große Szenen zu rendern [SFL+00]. Typischerweise sind PC-Cluster nicht für die effiziente Berechnung von dreidimensionalen Bildern ausgestattet. In der Regel sind keine Grafikkarten mit 3D-Beschleunigung vorhanden. Der Grund hierfür sind oft die Kosten, die durch zusätzliche Hardware entstehen. Dabei sind nicht nur die Anschaffungskosten gemeint, sondern auch die Kosten, die im laufenden Betrieb entstehen. Grafikkarten benötigen viel Energie und zusätzlich entstehende Wärme muss mit leistungsfähigen Klimaanlagen abgeführt werden. Aus diesen Gründen werden selbst vorhandene Grafikkarten selten aktualisiert, da modernere Grafikkarten oft mehr Wärme erzeugen als ältere Fabrikate. Das hat zur Folge, dass viele Möglichkeiten nicht vorhanden sind, die neuere Hardware bietet, wie z. B. aktuelle Shader- Modelle, Erweiterungen oder GPGPU-Schnittstellen. Ein weiterer Grund für seltene Hardware-Aktualisierungen ist, dass sich Grafikkarten negativ auf die Stabilität des Gesamtsystems auswirken können und es somit vermehrt zu Ausfällen von einzelnen Rechenknoten kommen kann.
3 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 41 Oft sind Cluster jedoch mit einigen dedizierten Grafikknoten ausgestattet, die über aktuelle 3D-Beschleuniger verfügen. Diese lassen sich mit weniger Aufwand und preiswerter aktualisieren. Mit diesen Teilsystemen können somit alle Möglichkeiten genutzt werden, die aktuelle Grafikkarten bereitstellen. Für den Fall, dass die Gesamtszene so groß ist, dass sie nicht vollständig in den Speicher der Grafikknoten geladen werden kann, können die anderen Knoten des PC- Clusters als Sekundärspeicher eines Out-of-Core-Renderingsystems genutzt werden. Dabei können diese Knoten durch unterstützende Berechnungen zu einer schnelleren Bildererzeugung beitragen. Anstatt alle angeforderten Daten zu senden, können diese Knoten vorselektieren, welche Daten tatsächlich für die Bilderzeugung benötigt werden. Die Last dieser Aufgaben sollte möglichst gleichmäßig auf die einzelnen Knoten verteilt werden. In dieser Arbeit wird ein Algorithmus vorgestellt, mit dem die Verteilung dieser einzelnen Aufgaben schnell berechnet werden kann und der gute Ergebnisse erzielt. 2 Verwandte Arbeiten Das in dieser Arbeit vorgestellte System ist eine Kombination aus einem parallelen Renderer und einem Out-of-Core Renderer. Diese unterschiedlichen Techniken werden in verschiedenen Arbeiten thematisiert und Verfahren dazu vorgestellt. In diesem Abschnitt werden verschiedene Arbeiten zum parallelen Rendering und zum Out-of-Core- Rendering vorgestellt. 2.1 Paralleles Rendering Molnar et al. geben [MCE+94] drei verschiedene Methoden zur parallelen Bilderzeugung an. Diese Methoden unterschieden sich darin, welche Teile der Rendering-Pipeline durchlaufen werden, bevor die geometrischen Primitive umsortiert werden. Bei der Sort-First-Methode werden die geometrischen Primitive in Abhängigkeit ihrer Position auf die verschiedenen Rechner verteilt, bevor sie in die Rendering-Pipeline gesendet werden. Bei Sort-Middle-Methoden werden die Primitive in Abhängigkeit von ihrer Bildschirmposition zwischen der Geometrietransformation und der Rasterung auf die verschiedenen Renderingknoten verteilt. Bei Sort-Last-Methoden werden die Primitive, beziehungsweise die einzelnen gerasterten Pixel, erst nach dem vollständigen Durchlauf der Rendering-Pipeline in einem einzelnen Bild sortiert. Um effizient rendern zu können, muss bei allen drei Methoden die Rechenlast möglichst gleichmäßig auf die einzelnen Renderingknoten verteilt werden. Abraham et al. beschreiben in ihrer Arbeit [ACC+04] wie bei Sort-First-Algorithmen die Kohärenzen zwischen den einzelnen Bildern genutzt werden können, um die Rechenlast der verschiedenen Renderingknoten zu balancieren. Dazu werden die benötigten Rendering- Zeiten der einzelnen Renderingknoten zueinander ins Verhältnis gesetzt.
4 Seite 42 T. Süß, T. Wiesemann, M. Fischer Neben der Balancierung der Rechenlast ist auch mehrfaches Rendern von Objekten ein Problem bei der Sort-First-Methode. Samanta et al. stellen in der Arbeit [SFL+00] Techniken vor, bei denen diese Mehrfachbearbeitung vermieden wird. Die hier vorgestellten Renderingsysteme haben den Nachteil, dass bei ihnen die einzelnen Rechner zur Grafikbearbeitung ausgestattet sein sollten, um eine gute Leistung zu erzielen. Sind einige Knoten mit langsamerer Hardware ausgestattet als die übrigen Rechner, wirkt sich dies negativ auf die Leistung des Gesamtsystems aus. Ein weiterer Nachteil dieser Systeme ist, dass die Datenmenge, die gerendert werden kann, durch die Größe des Arbeitsspeichers begrenzt wird; es sind keine Out-of-Core-Mechanismen vorhanden. 2.2 Out-of-Core Rendering Wenn eine Szene so groß ist, dass sie nicht vollständig in den Grafik- und Hauptspeicher eines Rechners passt, benötigt man ein Out-of-Core-Renderingsystem, um diese Szene vollständig anzuzeigen. Dabei werden Teile der Szene aus einem sekundären Speicher, wie z. B. einer Festplatte, geladen. Durch die Erweiterung des View-Frustums können Objekte im Voraus geladen werden, die wenig später in den Bereich der Kamera geraten können [VM02]. Um schnell auf die Daten im langsamen Speicher zugreifen zu können, werden die Daten beim iwalk-renderer [CKS02] in einem Octree auf der Festplatte gespeichert. Jedes der vorgestellten Systeme verwendet die Festplatte als Speichererweiterung, deren Übertragungsrate im Vergleich zu Hochleistungs-Netzwerken sehr niedrig ist. Zudem werden die Daten ungetestet geladen, auch wenn sie z. B. durch andere Objekte verdeckt sind. Das in dieser Arbeit vorgestellte Renderingverfahren verwendet den Hauptspeicher von anderen Rechnern als sekundären Speicher, anstelle von Festplatten. Diese Rechner sind über ein schnelles Netzwerk verbunden. Dabei können diese Knoten zusätzliche Tests, wie z. B. Occlusion-Culling, durchführen. 3 Paralleler Out-of-Core Sort-First Renderer Die Architektur des parallelen Renderingsystems besteht aus drei Gruppen von Prozessoren (Bild 1 links). Jede Gruppe führt Einzelschritte der parallelen Bildberechnung durch: Auf dem Anzeigeknoten erfolgt die Darstellung des Bildes und die Navigation in der Szene, auf der Gruppe der Renderingknoten werden Teilbilder berechnet und die Gruppe der Datenknoten verwaltet die Szene (Dreiecksdaten) und unterstützt die Renderingknoten mit Verdeckungstests. Aufgrund der unterschiedlichen spezifischen Aufgaben benötigt jede Gruppe unterschiedliche Hardware mit spezifischen Fähigkeiten. Über leistungsfähige Grafikhardware müssen die Renderingknoten verfügen, da diese zeitkritisch die Geometrietransformation und die Rasterung durchführen.
5 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 43 A R R RK 4 RK 1 R R RK 2 RK 3 D D D D Skelett des Octrees D D D D D D D D Inhalte der Octreezellen (Dreiecke) D D D D Bild 1: Links: Architektur des Renderingsystems, Anzeigeknoten (AK), Renderingknoten (RK), Datenknoten (DK). Rechts oben: Aufteilung des Bildraums und Zuordnung der Renderingknoten. Rechts unten: Sampletree Organisation und Out-of-Core-Speicherung der virtuellen Szene Die virtuelle Szene wird mit Hilfe eines Sampletrees organisiert (Bild 1, rechts unten). Der Sampletree ist eine Octree-ähnliche, räumliche, randomisierte Datenstruktur zur Approximation großer, aus Dreiecken bestehenden Szenen [KKF+02]. Die Dreiecke sind in den Zellen eines Octrees gespeichert. Der Octree des Sampletrees wird im Preprocessing berechnet und auf der Festplatte gespeichert. Vor dem Walkthrough werden die Zellen des Sampletrees von der Festplatte geladen und redundant (s. u.) auf den Datenknoten gespeichert (Bild 1, links). Die Renderingknoten speichern nur das Skelett des Sampletrees ohne die Geometrie in den Knoten des Octrees. Renderingknoten Vor der Berechnung eines Bildes wird der Bildraum, der Sort-First-Methode entsprechend, in rechtwinklige Kacheln aufgeteilt (Bild 1, rechts oben, Beispiel für vier Renderingknoten). Jeder Renderingknoten berechnet das Teilbild für genau eine Kachel. Dieses Teilbild wird nach dem Rendering an den Anzeigeknoten gesendet und dort mit den Kacheln der anderen Renderingknoten zu einem Bild zusammengefügt und angezeigt. Die virtuelle Szene ist so groß, dass nur das Skelett des Sampletrees vollständig in den Speicher eines Renderingknotens passt. Die Inhalte der Octreezellen sind nur teilweise auf den Renderingknoten vorhanden und werden bei Bedarf aus dem Speicher der Datenknoten nachgeladen. Es wird ein Cachingmechanismus angewandt: Zu Beginn jeder
6 Seite 44 T. Süß, T. Wiesemann, M. Fischer Bildberechnung berechnet der Traversierungsalgorithmus des Sampletrees mit Hilfe des Octree-Skeletts alle Octreezellen, die darzustellen sind. Anschließend ist im Cache der Renderingknoten zu prüfen, ob eine Zelle des Sampletrees neu von den Datenknoten angefordert werden muss. Ist ein Objekt bereits im Cache vorhanden, wird geprüft, ob es weiter benötigt wird; ist es länger nicht genutzt worden, wird es gelöscht. Teile der unsichtbaren Octreezellen, die nahe am Sichtkegel liegen, werden bei den Datenknoten aus dem Netzwerk angefordert. Diese Octreezellen sind auf den Renderingknoten verfügbar, sobald sie in den Sichtkegel der Kamera geraten. Ist nur wenig freier Platz im Primärspeicher, werden diejenigen Octreezellen aus dem Cache der Renderingknoten verdrängt, die seit mehreren Frames nicht mehr gerendert wurden. Falls Octreezellen des Sampletrees nachgeladen werden müssen, erfolgt die Anfrage an den Anzeigeknoten, der alle Anfragen nach der Methode des c-load-collision- Protokolls auf die Datenknoten verteilt. Die Renderingknoten warten jedoch nicht darauf, dass sie alle Octreezellen erhalten. Die Octreezellen, die die Renderingknoten nicht erreichen, sind entweder verdeckt und werden nicht von den Datenknoten verschickt oder sie sind sichtbar und treffen später auf den Renderingknoten ein. Diese Nachzügler werden in der Regel in den nachfolgenden Bildern gerendert. Bei schnellen Kameraschwenks können so Bildfehler entstehen, was in Bild 2 anhand eines Beispiels zu sehen ist. Bild 2: Kameraschwenk mit zwei Renderingknoten. Links: Hinterer Flugzeugteil vor dem Schwenk nach rechts. Rechts: In Teilbildern von den Renderingknoten 1 und 2 sind an der Flugzeughülle Löcher (Hintergrund) zu sehen. Datenknoten Die Datenknoten haben zwei Aufgaben: Sie halten die virtuelle Szene im lokalen Speicher, wobei jeder Datenknoten nur einen Teil der Szene besitzt. Außerdem unterstützen sie die Renderingknoten durch die Berechnung von Verdeckungstests. In vielen Out-of-Core-Renderingsystemen ist die verwaltete Szene auf Festplatten gespeichert. Während des Walkthroughs sind nur Teile davon im Hauptspeicher und werden abhängig von der Position des Benutzers nachgeladen. In unserem System ist die
7 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 45 Szene im Hauptspeicher der Datenknoten verteilt gespeichert; der Hauptspeicher der Datenknoten dient damit als sekundärer Speicher für die Renderingknoten. Jede Octreezelle des Sampletrees ist auf konstant vielen Datenknoten gespeichert. Die Octreezellen werden randomisiert vor dem Walkthrough verteilt (s. u.). Während des Walkthroughs erhalten die Datenknoten Anfragen der Renderingknoten nach Octreezellen. Die Datenknoten testen diese Octreezellen auf Sichtbarkeit und schicken nur die sichtbaren Octreezellen an die Renderingknoten. Unsichtbare Objekte werden nicht quittiert. Dazu besitzt jeder Datenknoten von jedem Renderingknoten den Tiefenpuffer. Mit diesem führen die Datenknoten Verdeckungstests für angeforderte Octreezellen durch. Die Werte des Tiefenpuffers können veraltet sein, da sie von zuvor gerenderten Bildern stammen. Damit die Fehler durch die veralteten Tiefenpuffer nicht zu groß werden, senden die Renderingknoten in regelmäßigen Abständen ihre Tiefenpuffer an alle Datenknoten. Anzeigeknoten Auf dem Anzeigeknoten werden die gerenderten Bilder angezeigt und die Kamera vom Benutzer gesteuert. Die Kameraposition und die Orientierung werden an die Renderingund Datenknoten gesendet. Der Anzeigeknoten setzt das fertige Bild aus den Teilbildern zusammen, die von den Renderingknoten berechnet und versendet werden. Dieses Bild wird solange angezeigt, bis ein neues Bild vollständig empfangen und zusammengesetzt ist. Der Anzeigeknoten ist für zwei Lastbalancierungsaufgaben verantwortlich. Er muss zum einen die Last der Renderingknoten und zum anderen die Last der Datenknoten balancieren. Die Lastbalancierung der Renderingknoten erfolgt durch eine Vergrößerung/Verkleinerung der Kacheln (Bild 1, rechts). Nach k Bildern empfängt der Anzeigeknoten die akkumulierten Rendering-Zeiten der letzten k Bilder von den Renderingknoten. Die Rendering-Last auf den einzelnen Renderingknoten wird balanciert, indem diese Zeiten miteinander verglichen und zueinander ins Verhältnis gesetzt werden. Benötigt ein Renderingknoten signifikant mehr/weniger Rendering-Zeit als die anderen Knoten, wird die Kachelgröße des Renderingknotens verkleinert/vergrößert. Die zweite Aufgabe des Anzeigeknotens ist die Verteilung und Balancierung von Anfragen nach Octreezellen an die Datenknoten (s. nachfolgenden Abschnitt). Zusammenfassend ist der Kommunikationsablauf des gesamten Renderingalgorithmus in Bild 3 als Sequenzdiagramm dargestellt.
8 Seite 46 T. Süß, T. Wiesemann, M. Fischer Bild 3: Sequenzdiagramm: Kommunikation für die Render-Schleife Verteilung der Octreezellen auf die Datenknoten und Lastbalancierung Das c-collision-protokoll [Ste96] ermöglicht einen schnellen Zugriff auf Daten, die randomisiert und redundant gespeichert sind. Mit hoher Wahrscheinlichkeit wird ein Datenmodul höchstens mit c Anfragen belastet. Das Protokoll funktioniert wie folgt: Jede Anfrage nach einem Datum wird an alle Datenmodule (Bild 4) gesendet, die eine Kopie des Datums besitzen. Bekommt ein Datenmodul höchstens c Anfragen, beantwortet es alle Anfragen und entfernt diese bei den anderen Datenmodulen. Werden mehr als c Anfragen gestellt, wird keine Anfrage beantwortet. Dies wird rundenweise durchgeführt, bis alle Anfragen beantwortet sind. Kann innerhalb einer Runde keine der noch ausstehenden Anfragen beantwortet werden, wird das c für diese Runde erhöht. Bei dieser Form des Protokolls wird angenommen, dass die Anfragen gleich gewichtet sind. Im einfachen c-collision Protokoll gibt es nur ungewichtete Nachrichten. Eine Erweiterung des Protokolls zum c-load-collision-protokoll [BMS97] bezieht die Gewichte von Anfragen mit in die Verteilung der Anfragen ein. Das Gewicht einer Nachricht wird im Allgemeinen durch die Größe der angefragten Daten bestimmt. Bei einer synchronen Abarbeitung des Protokolls wird die durch c gegebene maximale Belastung der einzelnen Datenmodule typischerweise nicht überschritten, das heißt, wenn alle Anfragen vollständig bearbeitet sind, bevor neue Anfragen gestellt werden. Um die Latenzen zu reduzieren, führen wir die Anfragen der Octreezellen asynchron aus. Das heißt, sobald die neu angefragten Octreezellen bekannt sind, werden die entsprechenden Datenknoten angefragt. Geringere Latenzen haben weniger Bildfehler zur Folge.
9 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 47 Bild 4: Das c-collision-protokoll: Ein Auftrag wird an alle Datenmodule, die das gesuchte Datum besitzen, zugewiesen (cyan). Alle Datenmodule, die in einer Runde höchstens c=2 Anfragen haben, beantworten diese (magenta). Um die Last durch Anfragen der Octreezellen gleichmäßig auf die Datenknoten zu verteilen, verwenden wir das c-load-collision-protokoll: Im Preprocessing werden die Octreezellen zufällig und redundant auf den Datenknoten verteilt. Diese Zuweisung bleibt zur Laufzeit bestehen. Bei jedem Bild werden die Datenanfragen von den Renderingknoten zuerst zu dem Anzeigeknoten geschickt. Dieser Knoten sammelt alle Anfragen und berechnet anschließend eine Zuweisung der Anfragen an die Datenknoten nach dem c-load-collision-protokoll. Die Runden des Protokolls werden nicht im Netzwerk ausgeführt, sondern auf dem Anzeigeknoten simuliert. Das verkürzt das Kommunikationsaufkommen und die benötigte Balancierungszeit. Alle zu einem Zeitpunkt vorliegenden Anfragen werden in Phasen eingeteilt. Pro Phase wird eine Verteilung von so vielen Anfragen berechnet, wie es Datenknoten gibt. In jeder Phase werden die Anfragen in mehreren Runden verteilt (Bild 4). Das Gewicht einer Octreezelle entspricht der Anzahl von Dreiecken, die darin gespeichert sind. Dies eignet sich als Gewicht für das c-load-collision Protokoll, da die Dreiecksanzahl sowohl die benötigte Zeit für die Verdeckungstests beeinflusst, als auch eine gute Abschätzung der benötigten Speicherplatzgröße darstellt. Wenn in einer Runde eine Anfrage a von mehreren Datenknoten beantwortet werden kann, muss entschieden werden, welcher Knoten die Anfrage zugewiesen bekommt. Um die Datenknoten möglichst gleichmäßig auszulasten, werden zunächst die Summen der Auftragsgewichte berechnet, die von den verschiedenen Knoten aktuell bearbeitet werden. Die Funktion, mit der die Summe der Gewichte eines Datenknotens d berechnet wird, bezeichnen wir als s(d).
10 Seite 48 T. Süß, T. Wiesemann, M. Fischer Sei D die Menge der Datenknoten, die den Auftrag a bearbeiten können (mit D > 1). Dann ist die Summe der Gesamtgewichte der Knoten, die a bearbeiten können. Die Wahrschein- wird lichkeit, dass ein Datenknoten d i für die Bearbeitung der Anfrage a ausgewählt ist: Pr 1 Da die Summe der Wahrscheinlichkeiten Eins ist, können die Wahrscheinlichkeiten als disjunkte Abschnitte im Null-Eins-Intervall dargestellt werden. Dabei werden die Ab- für einen schnitte nach Größe sortiert. Um zu bestimmen, welcher Knoten den Zuschlag Auftrag erhält, wird eine zufällige Zahl zwischen Null und Eins bestimmt. Diese Zahl liegt in einem der gegebenen Wahrscheinlichkeits-Intervalle und legt somit den Knoten fest, der den Auftrag erhält. Durch diese Art der Verteilung werden Datenknoten mit geringer Belastung bevorzugt. Bild 5: Darstellung des Testpfads durch das 3D-Modell der Boeing Evaluierung Als Testszene wurde das Modell der Boeing 777 verwendet. Dieses Modell ist so groß, dass es nicht vollständig in den Speicher der Renderingknoten unseres Testsystems ge- laden werden kann. Bei unseren Tests wurden vier Renderingknoten und bis zu 32 Dazu können, tenknoten verwendet. Um eine beliebige Anzahl von Datenknoten testen haben wir einen Simulator entwickelt. Dieser Simulator verwendet als Eingabe Anfra- gesequenzen, die aus Durchläufen des Testsystems stammen (Bild 5).
11 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 49 In unseren Tests untersuchen wir, wie gleichmäßig das von uns entwickelte c-load- Collision-Protokoll die Last auf die verschiedenen Datenknoten verteilt. Da es sich um ein randomisiertes Protokoll handelt, werden die Experimente mehrfach mit unterschiedlichen Startwerten für den Pseudo-Zufallszahlen-Generator durchgeführt und deren Ergebnisse gemittelt. Für jeden hier vorgestellten Test sind zwei Diagramme gegeben. Es wird an jeder Position des Walkthroughs gemessen, wie viele Dreiecke jeder Datenknoten bearbeiten muss. Das erste Diagramm zeigt auf der x-achse die Positionen des Walkthroughs an und auf der y-achse die Anzahl der Dreiecke, die ein Datenknoten bearbeiten muss. Um die Ergebnisse an den verschiedenen Positionen vergleichen zu können, sind diese Werte normalisiert. Dazu wird die Anzahl der Dreiecke die ein einzelner Datenknoten an einer Position zugewiesen bekommt, in Relation zu der Gesamtanzahl der angefragten Dreiecke an dieser Position gesetzt. Die Datenknoten sind nach der normalisierten, zugewiesenen Dreiecksanzahl sortiert. Die roten eingezeichneten Messwerte in den Diagrammen geben den Median an. Die blauen Messpunkte stellen die 0,1/0,9-Quantile an den einzelnen Positionen dar. Das zweite Diagramm zeigt auf der y-achse ebenfalls die Anzahl der Dreiecke an, die ein Datenknoten bearbeiten muss. Auf der x-achse ist die Anzahl der Anfragen aufgezeichnet. Ein Wert in diesem Diagramm zeigt an, wie viele Dreiecke ein Datenknoten bei einer gegebenen Anzahl von Anfragen bearbeiten muss. Das zweite Diagramm ist angegeben, um die starken Abweichungen bei der Dreiecksbearbeitung im ersten Diagramm zu erklären. Bild 6: Auslastung bei 24 Datenknoten und einer Kopie
12 Seite 50 T. Süß, T. Wiesemann, M. Fischer Bild 7: Auslastung bei 80 Datenknoten und zwei Kopien Bild 8: Auslastung bei 120 Datenknoten und zwei Kopien Bild 9: Auslastung bei 24 Datenknoten und drei Kopien In allen Diagrammen der Bilder 6-8 ist zu erkennen, dass die Abweichung der Auslastung der einzelnen Knoten in der Regel gering ist. Weicht die Auslastung der einzelnen Datenknoten stark voneinander ab, ist die Anzahl der Anfragen niedrig, da wenige Anfragen auf viele Knoten verteilt werden müssen. Je mehr Anfragen es gibt, desto gleichmäßiger ist die Last verteilt. Erhöht man die Anzahl der Datenknoten, sind die Abweichungen vom Median geringer.
13 Gewichtetes c-collision-protokoll zur Balancierung eines parallelen Out-of-Core-Renderers Seite 51 Als nächstes untersuchen wir, wie sich die Redundanz auf die Lastbalancierung auswirkt. Dafür wird die Anzahl von Kopien eines Objektes im Cluster von zwei auf drei erhöht. Die Messungen in den Bildern 6 und 9 zeigen, dass die Last gleichmäßiger verteilt werden kann, wenn die Anzahl der Kopien erhöht wird. Das ist daran zu erkennen, dass die Quantile dichter am Median liegen, wenn die Redundanz höher ist. Insgesamt zeigen die Tests, dass mit dem entwickelten Protokoll eine gute Balancierung erzielt wird, wenn ausreichend viele Anfragen gestellt werden. Dies ist gut an den Positionen in der Szene zu erkennen, an denen wenige Anfragen gestellt werden, da nur wenig Geometrie sichtbar ist; dies ist beim Walkthrough an den Positionen 2250 bis 2800 zu sehen, wo die Boeing verlassen und die Kamera gedreht wird. 5 Resümee und Ausblick In dieser Arbeit haben wir Lastbalancierungsmechanismen für ein paralleles Out-of- Core-Renderingsystem vorgestellt. Das entwickelte Renderingsystem ist so aufgebaut, dass es die verschiedenen Knotentypen eines heterogenen Clusters verwenden kann. Dabei werden die entstehenden Lasten innerhalb des Systems auf unterschiedliche Art und Weise balanciert. Um die entstehende Last der Renderingknoten zu balancieren, werden die Kohärenzen zwischen den einzelnen Bildern ausgenutzt. Zur Balancierung der Last der Datenknoten wird eine Variante des c-load-collision- Protokolls verwendet. Dieses Protokoll erzielt schnell eine gute Lastbalancierung, wenn ausreichend viele Jobs vorhanden sind. Das hier vorgestellte heterogene PC-Cluster-System besteht nur aus zwei verschiedenen Arten von Rechenknoten. Die hier vorgestellte Variante des c-load-collision- Protokolls kann leicht verändert werden, damit es die Last einer größeren Anzahl von verschiedenen Knotentypen balanciert. 6 Literatur [ACC+04] [AHH08] [BMS97] [BSG+02] ABRAHAM, F.; CELES, W.; CERQUEIRA, R.; CAMPOS, J. L.: A Load-Balancing Strategy for Sort-First Distributed Rendering. In: SIBGRAPI 04: Proceedings of the Computer Graphics and Image Processing, XVII Brazilian Symposium. Washington, DC, USA: IEEE Computer Society, 2004, S AKENINE-MÖLLER, T.; HAINES, E.; HOFFMAN, N.: Real-Time Rendering 3rd Edition. Natick, MA, USA : A. K. Peters, Ltd., 2008 BERENBRINK, P.; MEYER AUF DER HEIDE, F.; SCHRÖDER, K.: Allocating weighted jobs in parallel. In: SPAA 97: Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures. New York, NY, USA: ACM, 1997, S BAXTER, W. V.; SUD, A.; GOVINDARAJU, N. K.; MANOCHA, D.: GigaWalk: interactive walkthrough of complex environments. In: EGRW 02: Proceedings of the 13th Eurographics workshop on Rendering. Aire-la-Ville, Switzerland: Eurographics Association, 2002, S
14 Seite 52 T. Süß, T. Wiesemann, M. Fischer [CKS02] [KKF+02] [LWC+02] [MCE+94] [SFL+00] [Ste96] [VM02] CORRÊA, W. T.; KLOSOWSKI, J. T.; SILVA, C. T.: iwalk: Interactive Out-of-Core Rendering of Large Models KLEIN, J.; KROKOWSKI, J.; FISCHER, M.; WAND, M.; WANKA, R.; MEYER AUF DER HEIDE, F.: The randomized sample tree: a data structure for interactive walkthroughs in externally stored virtual environments. In VRST 02: Proceedings of the ACM symposium on Virtual reality software and technology, pages , New York, NY, USA, ACM. LUEBKE, D.; WATSON, B.; COHEN, J. D.; REDDY, M.; VARSHNEY, A.: Level of Detail for 3D Graphics. New York, NY, USA, Elsevier Science Inc., 2002 MOLNAR, S.; COX, M.; ELLSWORTH, D.; FUCHS, H.: A Sorting Classification of Parallel Rendering. In: IEEE Comput. Graph. Appl. 14 (1994), Nr. 4, S SAMANTA, R.; FUNKHOUSER, T.; LI, K.; SINGH, J. P.: Hybrid sort-first and sort-last parallel rendering with a cluster of PCs. In: HWWS 00: Proceedings of the ACM SIG- GRAPH/EUROGRAPHICS workshop on Graphics hardware. New York, NY, USA: ACM, 2000, S STEMANN, V.: Parallel balanced allocations. In: SPAA 96: Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures. New York, NY, USA: ACM, 1996, S VARADHAN, G.; MANOCHA, D.: Out-of-core rendering of massive geometric environments. In: VIS 02: Proceedings of the conference on Visualization 02. Washington, DC, USA : IEEE Computer Society, 2002, S Autoren Dipl.-Inform. Tim Süß studierte Informatik an der Universität Paderborn. Seit 2007 ist er wissenschaftlicher Mitarbeiter des Heinz Nixdorf Instituts. Seine Forschungsinteressen liegen im Bereich Computergrafik und verteiltes Echtzeit-Rendering. Dipl.-Inform. Timo Wiesemann studierte Informatik an der Universität Paderborn. Seit 2010 ist er am Heinz Nixdorf Institut angestellt. Seine Forschungsinteressen liegen im Bereich Computergrafik. Dr. rer. nat. Matthias Fischer studierte Informatik an der Universität Paderborn. Seit 1995 ist er am Heinz Nixdorf Institut angestellt und erhielt dort die Promotion für seine Arbeit über verteilte virtuelle Umgebungen. Seine Forschungsinteressen liegen im Bereich Computergrafik, Echtzeit-Rendering Algorithmen und verteiltes Rechnen.
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 14 10.7.2012 Matthias Fischer 439 Übersicht Paralleles Rendering Klassifizierung nach
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 11 19.6.2012 Matthias Fischer 324 Übersicht Dynamische Berechnung von Potentially Visible
MehrMesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze
Mesh-Visualisierung Von Matthias Kostka Übersicht Einführung Streaming Meshes Quick-VDR Rendering virtueller Umgebung Rendering mit PC-Clustern Zusammenfassung 2 Mesh Untereinander verbundene Punkte bilden
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 8 29.5.2012 Matthias Fischer 240 Übersicht Rendering mit Motivation Ansatz und Idee Datenstruktur
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 13 3.7.2012 Matthias Fischer 395 Übersicht Motivation Idee Rendering erster Durchlauf
MehrParallele Algorithmen in der Bildverarbeitung
Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren
MehrSeminar Computerspiele Räumliche Datenstrukturen. Ralf Pramberger
Seminar Computerspiele Räumliche Datenstrukturen Ralf Pramberger Themen 2 1. Grundlagen Szene Sichtbarkeit (Raytracing) Culling 2. Räumliche Datenstrukturen Bounding Volume Hierarchie Quadtree/Octree BSP-Tree
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 9 5.6.2012 Matthias Fischer 282 Übersicht Motivation und Idee Datenstruktur Sichtbarkeitstest
MehrAlgorithmen des Internets
Algorithmen des Internets Sommersemester 2005 20.06.2005 10. Vorlesung schindel@upb.de Überblick Das Internet: Einführung und Überblick Mathematische Grundlagen IP: Routing im Internet TCP: Das Transport-Protokoll
MehrFreispeicherverwaltung Martin Wahl,
Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen
MehrOptimierungsalgorithmen
Optimierungsalgorithmen Effektives Rendern in der Computergraphik Benjamin Schneider Agenda 1. Einleitung 2. Grundlagen 3. Algorithmen im Detail 4. Weitere Techniken 5. Verbesserungen 6. Fazit Einleitung
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 31.01.2013 Algorithmen für externen Speicher INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche
MehrGeometrie 2. Julian Fischer Julian Fischer Geometrie / 30
Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI
MehrUNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand
Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 266 Lastbalancierung Motivation! Ein paralleles System besteht aus! verschiedenen Recheneinheiten,! die miteinander kommunizieren können! Warum
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 6,7 15.5.12, 22.5.12 Matthias Fischer 187 Übersicht Visibility Culling inführung und Übersicht
MehrEffiziente Algorithmen (SS2015)
Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59 5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation
MehrEinführung in parallele Dateisysteme am Beispiel von GPFS. Proseminar von Jakob Schmid im SS 2014
Einführung in parallele Dateisysteme am Beispiel von GPFS Proseminar von Jakob Schmid im SS 2014 Gliederung Definition Anwendungsgebiete Anforderungen Beispiel: General Parallel File System (GPFS) Zusammenfassung
MehrAdaptives Displacement Mapping unter Verwendung von Geometrieshadern
Fakultät Informatik Institut für Software- und Multimediatechnik, Professur für Computergraphik und Visualisierung Adaptives Displacement Mapping unter Verwendung von Geometrieshadern Diplomarbeit Timo
MehrZusätzlich eine Juniorprofessur Algorithmische Spieltheorie (Skopalik)
Bereich Modelle und Algorithmen (MuA) Vertreten durch 3 Fachgebiete Codes und Kryptographie (Blömer) Algorithmen und Komplexität (Meyer auf der Heide) Theorie verteilter Systeme (Scheideler) Zusätzlich
Mehrverschiedenen Recheneinheiten, die miteinander kommunizieren können
Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 293 Lastbalancierung Motivation Ein paralleles System besteht aus verschiedenen Recheneinheiten, die miteinander kommunizieren können Warum parallel
MehrTexturkomprimierung. Philipp Klaus Krause. 6. November 2007
Texturkomprimierung Philipp Klaus Krause 6. November 2007 Gliederung 1 Einleitung 2 Verfahren Indizierte Farben S3TC ETC/iPACKMAN 3 Vergleich 4 Bibliographie Gliederung 1 Einleitung 2 Verfahren Indizierte
MehrAlgorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 11, 18.11.08 Friedhelm Meyer auf der Heide 1 Randomisierte Algorithmen Friedhelm Meyer auf
MehrChord und Varianten. Vortrag Seminar P2P Systeme. Werner Gaulke Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Chord und Varianten Vortrag Seminar P2P Systeme Werner Gaulke 17.07.2007 Werner Gaulke Chord und Varianten 1/22 Outline 1 Das Chord Projekt 2 Grundlagen Distributed Hash Tables 3 Aufbau Ringförmiger Aufbau
MehrBeschleunigung von Bild-Segmentierungs- Algorithmen mit FPGAs
Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Algorithmen mit FPGAs Vortrag von Jan Frenzel Dresden, Gliederung Was ist Bildsegmentierung?
Mehr. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:
Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge
MehrIn heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher
Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher
MehrRheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit
Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer
MehrKonzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie
MehrGRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN
Informationssysteme - Indexstrukturen I: B-Bäume und ihre Varianten Seite 1 GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Leiter des Proseminars: Dr.Thomas Bode Verfasser
Mehrucanvas: Interaktive Anzeigeflächen auf heterogenen Oberflächen
ucanvas: Interaktive Anzeigeflächen auf heterogenen Oberflächen Tobias Bagg und Yves Grau Projekt-INF-Tagung Stuttgart 07.11.2013 Agenda Einleitung Verwandte Arbeiten ucanvas Architektur Applikationen
MehrGrundlagen verteilter Systeme
Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 7 17.12.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)
MehrView-Dependent Simplification. Computer Graphics
View-Dependent Simplification in Computer Graphics Metovic Sasa - Mustafa Fettahoglu Salzburg, am 30.01.2003 INHALTSVERZEICHNIS EINFÜHRUNG ANSICHT ABHÄNGIGE VEREINFACHUNG AUFBAU EINES MESHES EDGE COLLAPSE
MehrÜbung zu Einführung in die Informatik # 10
Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),
MehrCloud mit rekonfigurierbaren Hardwarebeschleunigern
Fakultät Informatik, Institut für technische Informatik Evaluation eines SchedulingAlgorithmus für eine elastische Cloud mit rekonfigurierbaren Hardwarebeschleunigern Abschlusspräsentation zur Projektarbeit
Mehr15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten
15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten Autoren Rene Beier, MPI Saarbrücken Berthold Vöcking, RWTH Aachen In zwei Monaten startet die nächste Rakete
MehrVorlesung Algorithmen für hochkomplexe Virtuelle Szenen
Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen Sommersemester 2012 Matthias Fischer mafi@upb.de Vorlesung 1 3.4.2012 Matthias Fischer 1 Vorstellung Der Dozent Matthias Fischer Fachgruppe Friedhelm
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrBeleuchtungsmodelle und Shading
Beleuchtungsmodelle und Shading Andreas Spillner Computergrafik, WS 2018/2019 Ziel der Modellierung von Beleuchtung Baut auf dem Kapitel zu Licht und Farben auf. In die 3D-Szene werden Lichtquellen eingebracht.
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Buffer Der 1-bit Stencil-Buffer Der 8-bit Stencil-Buffer Volumetrische Echtzeitschatten
MehrDynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
MehrProgrammierpraktikum 3D Computer Grafik
Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische
MehrVerteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016
Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i
MehrOnline Occlusion Culling
Online Occlusion Culling Studienarbeit Florian Schoppmann Betreuer: Dr. Christian Sohler Fachgruppe Algorithmen und Komplexität Fakultät für Elektrotechnik, Mathematik und Informatik Universität Paderborn
MehrHochleistungsrechnen auf dem PC
Hochleistungsrechnen auf dem PC Steffen Börm Christian-Albrechts-Universität zu Kiel Ringvorlesung Informatik, 26. Juni 2014 S. Börm (CAU Kiel) Hochleistungsrechnen auf dem PC 26. Juni 2014 1 / 33 Übersicht
MehrKollaboratives Erkunden von Software mithilfe virtueller Realität 28. September in ExplorViz / 33
Kollaboratives Erkunden von Software mithilfe virtueller Realität in ExplorViz 28. September 2017 Kollaboratives Erkunden von Software mithilfe virtueller Realität 28. September in ExplorViz 2017 1 / 33
MehrAlgorithmen für Ad-hoc- und Sensornetze
Algorithmen für Ad-hoc- und Sensornetze Übung 1 Leader Election Fabian Fuchs 27. Oktober 2015 (Version 1) INSTITUT FÜR THEORETISCHE INFORMATIK - LEHRSTUHL FÜR ALGORITHMIK (PROF. WAGNER) KIT Universität
MehrMatthias Treydte Fakultät für Informatik TU Chemnitz
Einführung MRM / LOD Matthias Treydte Fakultät für Informatik TU Chemnitz Übersicht 1. 2. 3. 4. 5. 6. 7. Wozu das Ganze? Wie kann man Polygonzüge vereinfachen? Wie sind Vereinfachungen zu bewerten? Welche
MehrSeminar. Algorithmische Geometrie
Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.
MehrIntern: Ceph Kurzeinführung in die verteile Storage-Lösung
Intern: Ceph Kurzeinführung in die verteile Storage-Lösung Dominik Vallendor 29.05.2017 Tralios IT GmbH www.tralios.de Motivation Lokale Speicher sind unflexibel, selbst mit Redundanzlösungen (bsp. DRBD)
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log
MehrShader. Computer Graphics: Shader
Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Multimedia für Referate und Präsentationen
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Multimedia für Referate und Präsentationen Das komplette Material finden Sie hier: School-Scout.de Computergrafik Computergrafik umfasst
MehrKapitel 2. Mittelwerte
Kapitel 2. Mittelwerte Im Zusammenhang mit dem Begriff der Verteilung, der im ersten Kapitel eingeführt wurde, taucht häufig die Frage auf, wie man die vorliegenden Daten durch eine geeignete Größe repräsentieren
MehrVerteilte Systeme. Graphenalgorithmen. Secure Identity Research Group
Verteilte Systeme Graphenalgorithmen Allgemeine Netzwerke Reale Computernetze sind meist keine Ringe Beliebige Netze lassen sich als Graph modellieren:g=(v,e) Knoten V (Prozessen, Stationen) Kanten E (Kanälen,
MehrKollaboratives Editieren von XML-Dokumenten in P2P-Systemen
Seminar-Ringvorlesung Kollaboratives Editieren von XML-Dokumenten in P2P-Systemen Hamburg, 19. Januar 2007 Übersicht Einführung Szenario Themenbereiche Vergleich mit existierenden Projekten Weiteres Vorgehen
MehrÜberblick. Multi-Cloud Computing Motivation Redundant Array of Cloud Storage (RACS) c td MWCC (WS16/17) Multi-Cloud Computing 13 1
Überblick Multi-Cloud Computing Motivation Redundant Array of Cloud Storage (RACS) c td MWCC (WS16/17) Multi-Cloud Computing 13 1 Vendor Lock-In -Problem Typische Vorgehensweise bei der Migration eines
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrB / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme
B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum
MehrConservative Volumetric Visibility with Occluder Fusion
Conservative Volumetric Visibility with Occluder Fusion Worum geht es? Ausgangspunkt komplexe Szene, wie Städte, Straßenzüge, etc. Ziel effiziente Berechnung von nicht sichtbaren Regionen Begriffe / Definitionen
MehrÜberblick. Verarbeitung großer Datenmengen Motivation MapReduce. c td MWCC (WS18/19) Verarbeitung großer Datenmengen 8 1
Überblick Verarbeitung großer Datenmengen Motivation MapReduce c td MWCC (WS18/19) Verarbeitung großer Datenmengen 8 1 Verarbeitung großer Datenmengen Problemstellungen (Beispiele) Indexierung des World
MehrIT- und Medientechnik
IT- und Medientechnik Vorlesung 6: 20.11.2017 Wintersemester 2017/2018 h_da, Lehrbeauftragter Teil 1: IT- und Medientechnik Themenübersicht der Vorlesung Hard- und Software Hardware: CPU, Speicher, Bus,
MehrChristoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers. Wissenschaftl. Arbeitstechniken und Präsentation
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers 1. Was ist paralleles Programmieren 2. Bitoner Sortieralgorithmus 3. Quicksort a) sequenzielles Quicksort b) paralleles Quicksort
MehrSchneller als Hadoop? Einführung in Spark Cluster Computing
Schneller als Hadoop? Einführung in Spark Cluster Computing Dirk Reinemann Oracle Deutschland B.V. & Co. KG Potsdam Schlüsselworte Big Data, Cluster Computing, Spark, Shark, Resilient Distributed Datasets,
MehrHeute. Algorithmen für Ad-hoc- und Sensornetze. Erinnerung: MAC-Layer. Erinnerung: Färbungen. Definition
Heute Algorithmen für Ad-hoc- und Sensornetze VL 0 Eine kurze Geschichte vom Färben (Teil ) Medium Access Control / Färbungen, Teil kurze Wiederholung Schöner verteilter Färbungsalgorithmus Markus Völker
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrSystemanforderungen Manufacturing Execution System fabmes
Manufacturing Execution System fabmes Das Manufacturing Execution System fabmes bemüht sich trotz hoher Anforderungen an die Datenverarbeitung möglichst geringe Anforderungen an die Hardware zu stellen.
MehrWahrscheinlichkeitsrechnung und Statistik
Babeş-Bolyai Universität Fakultät für Mathematik und Informatik Oktober 2018 Im Alltag... Laut den meteorologischen Vorhersagen wird es morgen regnen. Ob ich riskiere und die Wette verlieren werde? Ich
MehrSpieleprogrammierung mit DirectX und C++
Ulrich Kaiser, Philipp Lensing Spieleprogrammierung mit DirectX und C++ 2D-, 3D- und Netzwerkspiele, viele Spezialeffekte Galileo Press Einleitung 11 Danksagung 13 Vorwort zur zweiten Auflage 14 1 Vorbereitung
MehrMehrprozessorarchitekturen
Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen
MehrWiederholung. Objekte) Hauptkosten beim Pathtracing Ziel: Beschleunigung durch Reduktion der Schnittpunktstestzahl. Ansätze
Wiederholung Pathtracing = Schnittpunktstests mit Geometrie: primäre Augstrahlen, Schattenstrahlen, sekundäre Strahlen Problem: Komplexität! (mindestens linear mit der Anzahl der Objekte) Hauptkosten beim
MehrProgrammieren 2 12 Netzwerke
Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat
MehrDATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
MehrOne of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu
Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster
MehrOut-of-Core Techniken
Out-of-Core Techniken Hauptseminar: Visualisierung großer Datensätze Betreuer: Dipl. Inf. Marco Ament Vortragender: Edwin Püttmann Inhaltsverzeichnis 1. Einleitung 2. Computational Model 3. Vorverarbeitung
MehrAutomatisches Layout von Graphen
Fakultät Informatik» Institut für Angewandte Informatik» Professur für Technische Informationssysteme Automatisches Layout von Graphen Mabel Joselin Brun Chaperon Dresden, 10.06.2011 Inhalt Vortragsübersicht:
MehrQuiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.
Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur
Mehré Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus
4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts
MehrVerteilte Betriebssysteme
Verteiltes System Eine Sammlung unabhängiger Rechner, die dem Benutzer den Eindruck vermitteln, es handle sich um ein einziges System. Verteiltes Betriebssystem Betriebssystem für verteilte Systeme Verwaltet
MehrKonzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P
SoSe 2013 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 4 13.05.2013 bis 17.05.2013 Aufgabe 1: Multi-Feedback-Scheduling 0 P 1. Beschreiben Sie kurz
MehrInstitut für Informatik Betriebliche Informationssysteme. Chinese Whispers
Chinese Whispers 1 Chinese Whispers 2 Gliederung Grundidee Algorithmus Parallelisierung CW = optimiertes MCL? Analyse verschiedener Graphentypen Probleme 3 Grundidee Abstraktion ist das Zauberwort Wir
MehrKapitel 12: Schnelles Bestimmen der Frequent Itemsets
Einleitung In welchen Situationen ist Apriori teuer, und warum? Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Data Warehousing und Mining 1 Data Warehousing und Mining 2 Schnelles Identifizieren
MehrMac OS X-Client- Management
Mit Windows-Servern Mac OS X-Clients verwalten Professionelles Mac OS X-Client- Management in Windows-Netzwerken O REILLY André Aulich & Harald Monihart Wählen Sie nun auf der linken Seite Ihren USB-Stick
MehrVorbemerkungen. Die Programmieroberfläche des ClassPad
Vorbemerkungen Erfahrungen zeigen, dass die Programmiermöglichkeiten des ClassPad im Unterricht kaum genutzt werden. Dabei bieten aus unserer Sicht viele Situationen die Gelegenheit, die Programmieroberfläche
MehrModellgestützte Analyse und Optimierung Übungsblatt 8
Fakultät für Informatik Lehrstuhl 4 Peter Buchholz, Jan Kriege Sommersemester 2015 Modellgestützte Analyse und Optimierung Übungsblatt 8 Ausgabe: 25.05.2015, Abgabe: 01.06.2015 (12 Uhr) Aufgabe 8.1: Berechnung
MehrCUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
MehrEchtzeitdarstellung von Terrainszenarien mit Occlusion Culling
Echtzeitdarstellung von Terrainszenarien mit Occlusion Culling, Alexandre Miguel Maia, Christian-A. Bohn Echtzeitdarstellung von Terrainszenarien mit Occlusion Culling Folie 1 Gliederung Motivation Chunked
MehrVerschiedenes. Peter B. Ladkin
Verschiedenes Peter B. Ladkin ladkin@rvs.uni-bielefeld.de Busarchitektur Virtuelle Maschine Alles sitzt auf dem gleichen Kabel Das Gerät wird nur durch die Adresse unterschieden Speicher Cache Festplatte
MehrRouting A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung
Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über
Mehr6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort
MehrP2P-Netzwerke für dynamische 3D-Szenen
P2P-Netzwerke für dynamische 3D-Szenen Projektgruppe im WS 2003/2004 High Performance = Innovative Computer Systems + Efficient Algorithms Jens Krokowski 1 Problemstellung hochdynamische 3D-Szene Spieler/Objekte
MehrStetige Verteilungen Rechteckverteilung
Stetige Verteilungen Rechteckverteilung Die Längenabweichungen X produzierter Werkstücke von der Norm seien gleichmäßig verteilt zwischen a = mm und b = 4mm. Die Dichtefunktion lautet also f(x) = für a
MehrAufbau eines Clusters mit der NoSQL- Datenbank MongoDB auf Basis von Einplatinencomputern
Fachbereich 2 Informatik und Ingenieurwissenschaften Im Studiengang Informatik Aufbau eines Clusters mit der NoSQL- Datenbank MongoDB auf Basis von Einplatinencomputern Kolloquium zur Bachelorthesis Danijel
Mehr(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone
MehrAlgorithmische Geometrie: Arrangements und
Algorithmische Geometrie: Arrangements und Dualität Nico Düvelmeyer WS 2009/2010, 19.1.2010 Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur
MehrEinleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.
Anwendung Input: Query-Bild, Ergebnis: Menge ähnlicher Bilder. Kapitel 8: Ähnlichkeitsanfragen und ihre effiziente Evaluierung Wie zu finden? Corbis, NASA: EOS Bilddatenbank Folie Folie 2 Ähnlichkeitssuche
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
MehrBetriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme
Grundzüge der Informatik IV: Betriebssysteme Thomas Fahringer Institut für Informatik Universität Innsbruck V Thomas.Fahringer@uibk.ac.at 1 Kapitel I Betriebssysteme: Aufgaben und Überblick V 2 Was ist
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
Mehr3D Programmierpraktikum: Schattenberechnung in Echtzeit
3D Programmierpraktikum: Schattenberechnung in Echtzeit Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 20. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
Mehr