Distributed systems and parallel processing

457 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
457
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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!

×