Maik PaulusSoftware Engineer | Dad

Bisherige Projekte

Projekt: Parallelisierung Bellman-Ford

In einem Seminar über C++ und Multithreading stand die Bellman-Ford-Parallelisierung als Abschlussarbeit auf dem Plan. Die Grundlage bildete ein Single-Thread Algorithmus, der analysiert werden musste. Mit diesem bestehenden Programm sollte so geschickt eine Parallelisierung eingebaut werden, die die Performance des Algorithmus enorm steigern sollte.

Hier siehst du auf einen Blick die Eckdaten des Projekts.

Zeitlicher Rahmen

Dauer:
2 Monate

Art:
Studienarbeit

Jahr:
2011

Auftraggeber

Name:
Universität Trier

Ort:
Trier

Branche:
Informationstechnik

Im Projekt

Projekttyp:
Anwendung

Meine Rolle:
Softwareentwickler

Agiles Team:
Ja

Projektdetails

Natürlich kann man mit den Eckdaten eines Projektes noch nicht so viel anfangen. Daher gibt es hier zum Projekt noch einige Details zur Anforderung, den besonderen Herausforderungen und den konkreten Aufgabenstellungen. Wenn du etwas noch genauer wissen möchtest, frag einfach bei mir nach, ich gebe dir gerne Auskunft.

Anforderungen

  • Parallelisierung eines in C++ geschriebenen Bellman-Ford Algorithmus
  • Beschleunigung der Performance des Single-Thread Algorithmus
  • Anzeige des Ergebnisses mit den Informationen zu den Kantenkosten

Implementierung

  • Analyse der Funktionsweise des Bellman-Ford Algorithmus (single-threaded)
  • Implementierung einer Anwendung zur Parallelisierung eines bestehenden Bellman-Ford Algorithmus in C++
  • Verwendung von mutex locks zur Steuerung der parallel laufenden Threads
  • Berechnung der gesamten Durchlaufzeit des Algorithmus
  • Visualisierung der Ergebnisse mit der Grafik-Bibliothek LEDA

Technologischer und methoder Projektrahmen

Hier kannst du konkret einsehen, mit welchen Technologien und Rahmenbedingungen ich in diesem Projekt zu tun hatte.

Technologischer Kern

Mit diesem technologischen Stack wurde die Anwendung implementiert und ausgeliefert:

  • C++
  • Mutex
  • LEDA

Build, Test & Deploy

Zur Unterstützung, Qualitätssicherung und Automatisierung wurde folgendes genutzt:

  • Visual Studio
  • Bash

Sonstiges & Methoden

Weitere Aspekte des Projektes, wie z.B. Methoden, Konzepte, Protokolle oder Hilfstools:

  • Multithreading
  • Bellman-Ford
  • Kürzeste Wege
  • Algorithmus
  • LaTex