Re: Dual-Core (Quad-Core) optimierte Programme schreiben
20. Okt 2009, 14:04
Man sollte versuchen, parallel zu denken und sich immer fragen: Wie kann ich die aktuelle Aufgabe möglicherweise parallel abarbeiten lassen?
Das ist ein richtiggehend krasses Umdenken.
Wenn man das dann aber hat, dann kann man die einzelnen Teile der Aufgabe erstmal implementieren - und zwar so, dass man sie hinterher sowohl seriell als auch in einem separaten Thread aufrufen kann. Wichtig ist an der Stelle immer: Testen, testen, testen. Und zwar nicht manuell, sondern automatisiert. Sonst wird das mittelfristig in die Hose gehen, weil man die eine andere Locking-Falle immer übersehen wird.
Dann mit mehreren Threads testen, zwei, drei, gleichviele wie Kerne da sind, mehr wie kerne da sind, doppelt so viele wie Kerne, dreimal so viele wie Kerne.. Also möglichst viele Konstellationen durchtesten - und dabei ggf. auch gleich die Performance beachten. Es kann sein, dass es schneller ist, wenn man weniger Threads nimmt als Kerne da sind, als wenn man für jeden Kern einen Thread nimmt. Es kann aber auch ganz anders kommen und am schnellsten sein wenn mal 3,14 mal so viele Threads wie Kerne nimmt. So viele Tests kann man nur machen, wenn sie automatisch ablaufen.
Das sind mal so die ersten Schritte.
Von Intel gibt es grad einen Flyer der in vielen IT-Zeitschriften liegt. Die Pushen gerade ihr Intel Parallel whatever studio. Dort stehen die wichtigsten Tipps & Tricks dazu drin. Zum anderen auch, weil Quadcores inzwischen schon wenig Kerne haben und demnächst ein Prozessor mit mehr als 16 Kernen rauskommt. Dann wird es wirklich wichtig, die auszunutzen, weil man ansonsten die Performancegewinne der Hardware gar nicht mehr ausnutzen kann.
|