Programmierung für Multi-Cores birgt Gefahren

Jahrelang haben Prozessorhersteller die Programmierer mit immer höheren Taktfrequenzen verwöhnt. Als Folge davon kümmerten sich die Entwickler mehr um Features als um Performance-Optimierung. Mit Multi-Core-CPUs ändert sich dies zunehmend.

Denn nicht mehr die Taktfrequenzen steigen, sondern die Anzahl der Cores. Und damit ist eine Leistungssteigerung nur möglich, wenn die Programmierung auch auf Parallelverarbeitung ausgelegt ist.

Bei der Parallelisierung von Code muss der Entwickler aber selber Gehirnschmalz investieren, um Fehler zu vermeiden, denn die Compiler können ihn nur marginal bei dieser Aufgabe unterstützen.

Insbesondere gilt es, darauf zu achten, dass sich parallel laufende Threads nicht gegenseitig blockieren oder - noch schlimmer – dass die Konsistenz der gemeinsam genutzten Daten nicht gewährleistet ist. Bei unsauberer Programmierung sind dann schnell Fehler die Folge, die nicht reproduzierbar sind. Welche Fallstricke drohen, zeigt der vierte Teil unserer Reihe zur Programmierung für Multi-Core-CPUs über den Parallelzugriff auf Daten. (mha)