Parallelisierung: Angstthema für Programmierer?

// 09022009 / Programmierung / 5 Kommentare

Die Computerzeitung schreibt am Mo., den 26. Januar (sorry, komme gerade erst dazu sie zu lesen) zum Thema Parallelverarbeitung:

Parallitität ist ein Angstthema für Entwickler: Datenwettläufe, Blockaden, Reihenfolgenprobleme und andere Synchronisationsfehler können wochenlange Detektivarbeit erfordern. Indeterministische Abläufe machen es extrem schwierig, Fehler zu reproduzieren. Parallelisierungsfehler überleben alle Tests, um sich erst beim Benutzer bemerkbar zu machen."

Ich dachte bei diesem Artikel an meine Vorlesung "Parallelverarbeitung" zurück und muss zugeben, diese war wirklich ein Knackpunkt im ganzen Studium: Nichts im Gegensatz zu BWL, Java-Programmierung oder Automatentheorie! Wobei mein damaliger Prof. eigentlich meinte, gerade als Frau hätte man hier den Vorteil des "parallelen Denkens" ;-)

Parallelverarbeitung ist auf der einen Seite ein hoch interessantes Thema, andererseits ist es aber wirklich schwierig, jegliche Variablen und Möglichkeiten,  Prozesss und Threads, Semaphore und Monitore, Kind- und Vaterprozesse im Überblick zu behalten. Ach ja, die speisenden Philosophen nicht zu vergessen... Eine sehr steile Lernkurve und ein gar euphorisches Gefühl wenn es endlich mal "Klack" gemacht hat.

Zurück zum eigentlichen Thema: Gerade den Mehrkern-Prozessoren, die ja ihre Performance durch Parallelität  gewinnen, wird eine grandiose Zukunft versprochen. Und das ist auch kein Wunder - im Gegensatz zur Steigerung von Taktraten ist hier wirklich noch was tauszuholen. Vor allem Server und Hochleistungsrechner profitieren von Parallelität, doch auch andere Rechner, die z.B. den Intel Atom beinhalten performen besser, wenn sie vorher (manuell oder per Compiler) auf Befehlsparallelität hin optimiert werden. Und genau in diesem Punkt Entwicklungs- und Handlungsbedarf nötig um gute Programmierer auszubilden und erfolgreiche Programmierung von Anwendungen zu gewährleisten.

Doch wie auch der Artikel sagt: Die gegenwärtige Schwierigkeit besteht in der Nutzung von primitiven (wenn auch funktionierenden) Konzepten und Werkzeugen aus den 60ern, dem ich jetzt nicht wirklich widersprechen möchte. Auch das Image ist nicht wirklich das beste - ich denke da wirklich an Pizzastapel und Birkenstock-Informatiker...

Daher bin ich wirklich gespannt wie der Unterricht in Sachen Parallelverarbeitung in Zukunft aussehen wird - denn Bedarf an guten Programmiern besteht hier definitiv. #hope

Read other interesting articles:

Be Sociable, Share!

5 Kommentare zu "Parallelisierung: Angstthema für Programmierer?"

  1. julius julius Februar 9th, 2009 at 23:17

    wenn ich noch was anmerken darf :) …
    nich nur bei multiprozessorsystemen braucht es kenntnisse der parallelprogrammierung. auch bei der abstimmung von virtuellen maschinen mit ihren hostst, oder in einer cloud (das internetbetriebssystem aus einem deiner letzten beiträge z.b.). oder bei der kommunikation getrennt agierender softwarekomponenten (ajax & backend?).
    zweite anmerkung: ich glaube mich zu erinnern, dass wir die gleiche vorlesung besucht haben, und wenn du ehrlich bist – die prüfung konnte jeder bestehen. ein wenig auswendig gelerntes gelaber über mpi und co hat gelangt. echtes verständnis paralleler abläufe würde ich in direkten zusammenhang zum vermögen abstrakt zu denken setzen. und das macht meiner meinung nach den unterschied zwischen dem informatiker und dem in der informatik tätigen aus :)

  2. Nicole Nicole Februar 9th, 2009 at 23:27

    _ich_ habe nicht nur auswendig gelernt :-)

  3. julius julius Februar 10th, 2009 at 01:45

    ich auch nicht :)

  4. Benedikt Benedikt Februar 10th, 2009 at 10:52

    Ich denke, dass sich die Programmierung paralleler Anwendungen weiter entwickeln wird. Durch die von dir angesprochene „grandiose Zukunft“ von Mehrprozessorsystemen entsteht ein großer Bedarf an neuen Konzepten und Abstraktionen. Ich bin mir relativ sicher, dass in Zukunft neue Programmiersprachen entstehen, die – wie z.B. Erlang – die Konzepte zur parallelen Programmierung direkt integrieren / abstrahieren.

    Sehr wichtig finde ich aber auch Julius‘ erste Anmerkung. Man sollte nicht vergessen, dass parallele Abläufe auch ohne Mehrprozessorsystem relevant sind. Gerade was die Entwicklung von Webanwendungen betrifft fehlt hier glaube ich oftmals das Bewusstsein dafür. Was passiert denn wenn z.B. zwei Benutzer gleichzeitig einen Datenbankeintrag bearbeiten? Hat der Benutzer der zu erst speichert einfach Pech und die Änderungen werden vom anderen Benutzer überschrieben, oder erkennt das System den Konflikt? ;-)

    Alles in allem ein spannendes Thema – ich bin gespannt was da noch so kommt!

  5. devno devno März 10th, 2009 at 10:20

    Damit hatte ich am Anfang auch immer Probleme, aber mit der Zeit gewöhnt man sich dran


Kommentieren




  • www.goneo.de