Thread pools sind ein beliebtes Werkzeug in parallelen Anwendungen mit vielen kleinen Jobs. Offenbar ist es unter Last gut für die Performanz, wenn thread pools sich untereinander abstimmen. Dadurch lässt sich zum Beispiel Cache Thrashing vermeiden oder der Overhead durch unnötig viele Kontextwechsel. Eine Verallgemeinerung dieses Prinzips wird derzeit im InvasIC-projekt erforscht. Allerdings ist diese Idee dort eingebettet in eine Vielzahl weiterer Anpassungen. In dieser Arbeit soll deshalb nur dieser Aspekt der kommunizierenden thread pools in "normalem" Programmierumfeld evaluiert werden.
In der Wahl der Programmiersprache besteht viel Freiheit (Java,C#,C++,C,D,...), allerdings sollten bereits herkömmliche thread pools verfügbar sein die real-world Bedingungen genügen, um einen Vergleich anzustellen.
Aufgabe:
In dieser Arbeit soll eine Thread Pool Implementierung entwickelt werden, bei der Instanzen miteinander kommunizieren um die Performance zu verbessern. Verglichen werden soll mit herkömmlichen Thread Pools wie sie in realen Programmen verwendet werden.
Voraussetzungen
- Kenntnisse in einer geeigneten Programmiersprache und paralleler Programmierung
- Spaß an wissenschaftlicher Evaluation
Schlüsselworte
Performance,Parallelism Veröffentlichungen
Veröffentlichung |
Kommunizierende Thread Pools |
Betreuer
Ehemalige Mitarbeiter |
---|
Dr.-Ing. Andreas Zwinkau |
Studenten
Ehemalige Studenten |
---|
Tobias Weiberg |