Your SlideShare is downloading. ×
Distributed systems and parallel processing
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Distributed systems and parallel processing

290
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
290
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Kü rzeste Wege Distributed Systems and Parallel Processing Julian Vollmer (525904) Philip Stewart (526571)
  • 2. Agenda ● Motivation ● Shortest Path ● Realisierung ○ Multiprocessor ○ Singleprocessor ● Probleme ● Ergebnisse
  • 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. 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. 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. Paralleliserung Ansätze ● OpenMP ○ Analyse der Schleifen ○ einsetzen von passenden #pragma ○ definieren der bestmöglichen Anzahl an Threads ● OpenCL ○ Speicher allokieren ○ Context holen ○ ...
  • 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. OpenCL ● Nicht lauffähig ○ Mac ! ○ Linux ! ● Nur auf NVIDIA ?
  • 9. Probleme ● OpenCL ● Zeitmessung ○ omp_get_wtime() ○ clock() ● Parallelisierung ○ Deadlock ?
  • 10. Ergebnis - Lines of Code
  • 11. Ergebnis - UI
  • 12. Ergebnis - UI
  • 13. Ergebnis - Geschwindigkeit
  • 14. Vielen Dank fuer die Aufmerksamkeit!

×