Diplomarbeit, 2009
89 Seiten, Note: 1,3
1 Einleitung
1.1 Motivation und Hintergrund
1.2 Aufbau der Arbeit
2 Grundlagen
2.1 Spiele und Spieltheorie
2.2 Theoretische Grundlagen zum Hashing
2.2.1 Vorüberlegungen
2.2.2 Minimale perfekte Hashfunktionen
2.3 GPU-Grundlagen
2.3.1 Entwicklung der Grafikkarten
2.3.2 Architektur moderner Grafikprozessoren
2.3.3 NVIDIA CUDA™
2.3.4 ATI Stream™ und OpenCL
2.4 Breitensuche mit GPU-Unterstützung
3 Das Einpersonenspiel „Englisches Solitär“
3.1 Hashfunktion für Spielzustände
3.2 Lösen des Spiels
3.3 Implementierung und Resultate
4 Das Einpersonenspiel „Frösche und Kröten“
4.1 Hashfunktion für Spielzustände
4.2 Lösen des Spiels
4.3 Implementierung und Resultate
5 Das Zweipersonenspiel „Mühle“
5.1 Hashfunktion für Spielzustände
5.2 Lösen des Spiels
5.2.1 Bewertung von Spielzuständen
5.2.2 Retrogerade Analyse für Zug- und Sprungphase
5.2.3 Implementierung und Resultate für Zug- und Sprungphase
5.2.4 Klassifizierung von Zuständen der Setzphase
5.2.5 Implementierung und Resultate für die Setzphase
5.3 Ein optimaler Spieler
6 Fazit
Die Arbeit befasst sich mit der effizienten Lösung kombinatorischer Ein- und Mehrpersonenspiele unter Ausnutzung der massiven Parallelität von Grafikprozessoren (GPUs), wobei Hashfunktionen als zentrales Mittel zur effizienten Speicherverwaltung der Spielzustandsräume eingesetzt werden.
1.1 Motivation und Hintergrund
Seit wenigen Jahren existiert der Trend, die GPU (Grafikprozessor) nicht mehr ausschließlich für die Bilderzeugung und -verarbeitung zu verwenden, sondern auch als Co-Prozessor zur Unterstützung der CPU (Hauptprozessor). Im Falle eines diesbezüglich geeigneten Grafikprozessors sprechen wir auch von einer GPGPU („General Purpose Graphics Processing Unit“).
Dieser Trend lässt sich durch die besondere Entwicklung der GPU in der jüngsten Vergangenheit erklären. Der auf dem Markt für Grafikkarten anhaltend starke Wettbewerbsdruck der letzten 10 bis 15 Jahre hat dazu geführt, dass sich Grafikprozessoren zu stark parallelisierten Systemen mit mehreren Hundert Prozessorkernen entwickelt haben. Der Grund für diese Entwicklung ist, dass im Rahmen der Bildverarbeitung für viele verschiedene Bildpunkte bzw. Texturen oftmals dieselben Arbeiten durchzuführen sind, so dass ein entsprechend parallelisierter Grafikprozessor diese Aufgaben wesentlich schneller durchführen kann, als Prozessor, der diese Informationen sequentiell verarbeitet.
Während für CPUs mit zwei, vier oder acht Prozessorkernen der Begriff Mehrkern-Prozessoren (Multicore) verwendet wird, spricht man bei GPUs aufgrund der großen Zahl der Recheneinheiten von Vielkern-Prozessoren (Manycore). Moderne GPUs eignen sich hervorragend für die Anwendung des Paradigmas der parallelen Programmierung.
1 Einleitung: Einführung in die Nutzung von Grafikprozessoren für kombinatorische Problemstellungen und den Aufbau der Arbeit.
2 Grundlagen: Vermittlung der spieltheoretischen Basis, der mathematischen Grundlagen für perfekte Hashfunktionen sowie der technischen GPU-Architektur und Schnittstellen.
3 Das Einpersonenspiel „Englisches Solitär“: Anwendung von Hashing und Breitensuche zur effizienten Lösung dieses klassischen Halma-Spiels auf der GPU.
4 Das Einpersonenspiel „Frösche und Kröten“: Untersuchung und Implementierung einer Lösung mittels spezialisierter Hashfunktionen für die Zustände dieses Spiels.
5 Das Zweipersonenspiel „Mühle“: Komplexere Lösung eines Mehrpersonenspiels inklusive Bewertung von Spielzuständen und retrogerader Analyse.
6 Fazit: Zusammenfassende Bewertung der erreichten Beschleunigungen durch Hash-basierte GPU-Lösungsansätze und Ausblick auf weiterführende Methoden.
GPU, GPGPU, CUDA, Hashing, perfekte Hashfunktionen, kombinatorische Spiele, Breitensuche, Englisches Solitär, Frösche und Kröten, Mühle, Parallelisierung, Zustandsgraph, Manycore, Spieltheorie, Speicherverwaltung
Die Arbeit untersucht, wie kombinatorische Brettspiele durch den Einsatz moderner Grafikprozessoren effizienter gelöst werden können, indem der Spielzustandsraum durch Hashfunktionen kompakt im Speicher verwaltet wird.
Die zentralen Felder sind die parallele Programmierung auf GPUs (NVIDIA CUDA), die theoretische Informatik im Bereich Hashing (perfekte Hashfunktionen) und die algorithmische Spieltheorie.
Das Ziel ist die signifikante Beschleunigung der Suche nach Lösungen für kombinatorische Spiele, um Zustandsräume zu bewältigen, die auf CPUs sequentiell nur sehr langsam oder gar nicht berechenbar wären.
Es werden mathematische Partitionierungsverfahren für Zustandsräume, Hashing-Verfahren mittels Binomial- und Multinomialkoeffizienten sowie Breitensuche-Algorithmen für parallele Architekturen eingesetzt.
Der Hauptteil gliedert sich in drei Fallstudien: das Einpersonenspiel Englisches Solitär, das Einpersonenspiel Frösche und Kröten sowie das anspruchsvolle Zweipersonenspiel Mühle.
GPU-Computing, perfekte Hashfunktionen, Zustandssuche, Parallelisierung und kombinatorische Optimierung.
Da der verfügbare Speicher auf einer Grafikkarte (VRAM) begrenzt ist, erlauben minimale perfekte Hashfunktionen eine äußerst speichereffiziente Verwaltung der Spielzustände.
Durch eine Partitionierung des Zustandsraums in Abhängigkeit von den Stein-Farben (Multinomialkoeffizienten) und die Verwendung einer retrogeraden Analyse, um Gewinnzustände rückwärts zu berechnen.
Die massive Anzahl an spezialisierten Recheneinheiten (Manycore-Architektur) ermöglicht es, Millionen von Spielzuständen parallel zu expandieren und zu verarbeiten, was zu einer Beschleunigung um Faktoren zwischen 13 und 18 führt.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

