Kü rzeste Wege
Distributed Systems
and Parallel Processing
Julian Vollmer (525904)
Philip Stewart (526571)
Agenda
● Motivation
● Shortest Path
● Realisierung
○ Multiprocessor
○ Singleprocessor
● Probleme
● Ergebnisse
Motivation
● Die Graphentheorie ist eine
vielseitig angewandte Technik
● Dabei wird der Shortest Path
Algorhithmus oft ver...
Shortest Path
● Ausganssituation:
○ Graph mit n Knoten
○ Knoten sind mit gewichteten Kanten verbunden
● Suche des kürzeste...
Dijkstra-Algorithmus
● Jeder Knoten erhält zusätzlich eine Distanz,
einen Vorgänger und ein Markierung
● Sollange es unmar...
Paralleliserung Ansätze
● OpenMP
○ Analyse der Schleifen
○ einsetzen von passenden #pragma
○ definieren der bestmöglichen
...
OpenMP
● Parallelisierung der Schleifen:
○ Testen aller Folgeknoten des aktuellen
○ Berechnung der kuerzesten Distanz
● om...
OpenCL
● Nicht lauffähig
○ Mac !
○ Linux !
● Nur auf NVIDIA ?
Probleme
● OpenCL
● Zeitmessung
○ omp_get_wtime()
○ clock()
● Parallelisierung
○ Deadlock ?
Ergebnis - Lines of Code
Ergebnis - UI
Ergebnis - UI
Ergebnis - Geschwindigkeit
Vielen Dank fuer die
Aufmerksamkeit!
Distributed systems and parallel processing
Distributed systems and parallel processing
Upcoming SlideShare
Loading in …5
×

Distributed systems and parallel processing

359 views
343 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
359
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Distributed systems and parallel processing

  1. 1. Kü rzeste Wege Distributed Systems and Parallel Processing Julian Vollmer (525904) Philip Stewart (526571)
  2. 2. Agenda ● Motivation ● Shortest Path ● Realisierung ○ Multiprocessor ○ Singleprocessor ● Probleme ● Ergebnisse
  3. 3. Motivation ● Die Graphentheorie ist eine vielseitig angewandte Technik ● Dabei wird der Shortest Path Algorhithmus oft verwendet ● In der Praxis sind Graphen mit Millionen Knoten üblich ● Parallelisierung (mit GPU) bietet hohe Rechenleistung bei geringem Preis
  4. 4. Shortest Path ● Ausganssituation: ○ Graph mit n Knoten ○ Knoten sind mit gewichteten Kanten verbunden ● Suche des kürzesten Weges ○ von einem Punkt zu allen anderen ○ von allen zu allen Punkten ● Distanz = Gewicht der Kanten
  5. 5. Dijkstra-Algorithmus ● Jeder Knoten erhält zusätzlich eine Distanz, einen Vorgänger und ein Markierung ● Sollange es unmarkierte Knoten gibt: ○ Markiere den aktuellen Knoten ○ Berechne Distanz benachbarter unmarkierter Knoten ○ Wenn Wert kleiner als dessen gespeichete Distanz: Ersetzte Distanz und setze aktuellen Knoten als Vorganger
  6. 6. Paralleliserung Ansätze ● OpenMP ○ Analyse der Schleifen ○ einsetzen von passenden #pragma ○ definieren der bestmöglichen Anzahl an Threads ● OpenCL ○ Speicher allokieren ○ Context holen ○ ...
  7. 7. OpenMP ● Parallelisierung der Schleifen: ○ Testen aller Folgeknoten des aktuellen ○ Berechnung der kuerzesten Distanz ● omp for schedule(guided) ● Eergebniss: ca. 4 mal schneller (bei 4 Threads)
  8. 8. OpenCL ● Nicht lauffähig ○ Mac ! ○ Linux ! ● Nur auf NVIDIA ?
  9. 9. Probleme ● OpenCL ● Zeitmessung ○ omp_get_wtime() ○ clock() ● Parallelisierung ○ Deadlock ?
  10. 10. Ergebnis - Lines of Code
  11. 11. Ergebnis - UI
  12. 12. Ergebnis - UI
  13. 13. Ergebnis - Geschwindigkeit
  14. 14. Vielen Dank fuer die Aufmerksamkeit!

×