Soweit ich weiß, ist es ja nicht damit getan, bei der Programmierung einfach auf Multi-Threading zu achten, oder?
Was heißt "einfach auf Multi-Threading achten"? Üblicherweise gilt auf jeden Fall, daß du explizit um Multithreading bitten mußt. Aber ja, nur weil du N Threads hast, läuft dein Programm nicht gleich um einen Faktor N schneller: Idealerweise sollten deine Threads prozessorlastig sein, weil die Speicherbandbreite recht schnell ausgeschöpft ist. Je weniger Kommunikation/Synchronisation/sonstige Abhängigkeiten, umso besser.
Zitat-) Im Tuwis finde ich keine Lehrveranstaltung zu dem Thema, obwohl es doch zumindest eine Vertiefungs-LVA wert wäre
Das ist eines von vielen Themen, die Vertiefungs-LVAs wert wären, aber unsere Uni ist leider nun mal so...
ZitatDa ich fürs erste aber auch noch recht viel C++ entwickeln werde, würde mich interessieren, wie ich dabei mehrere CPU-Cores ausnutzen kann.
Libraries, die den pthreads-Standard implementieren, sind glaub ich so ziemlich überall verfügbar; das ist vielleicht die beste Wahl zur Zeit. (Außer vielleicht Microsoft tut was anderes und hat vor, noch lange was anderes zu tun, und man ist sicher, daß man bestimmt immer explizit nur für Windows entwickeln wollen wird.)
Ich habe dieses Buch gelesen und ganz brauchbar gefunden, aber wenn man ein bissi herumsucht, werden andere enthusiastischer empfohlen. Auf amazon.de meint z.B. einer: "If you want to write code, get "Programming with POSIX Threads" by David Butenhof." Allerdings meint der auch, daß er es nach dem Nichols-Buch nicht geschafft hat, Programme zu schreiben; ich habe es aber geschafft.
Es gibt auch noch OpenMP, das in gewissen Hinsichten komfortabler ist, aber spezielle Compiler braucht. Ein coding standard dort, wo ich im Sommer gearbeitet habe, hat davon abgeraten, aber vielleicht ist es einen Blick wert. Ich weiß nicht viel darüber.
Edit: Naja, und MPI erwähne ich dann auch noch. Ist aber weniger für Multicore und mehr für echt verteilte Cluster und single program multiple data gedacht (sprich numerische Simulationen, unabhängige Bilder rendern könnte man damit sicher auch sehr fein).