Parallelisierung – aus Anwendersicht
Da sich offensichtlich viel mehr Leute über Computer interessieren als für Raumfahrt (wer hätte das gedacht?). Will ich das Problem der Parallelität mal beleuchten. Zuerst mal aus „Anwendersicht“, also ohne Kenntnisse einer Programmiersprache und ohne auch Details der Programmierung zu vermitteln. Das folgt im nächsten Beitrag.
Erst mal: was kann man parallelisieren und wie geht das – darum geht es heute.
Die einfachste Sicht erhält man wenn man den Taskmanager aktiviert (oder PS unter Linux) und sich mal die Prozesse anschaut. Bei einem „jungfräulichen“ Windows XP direkt nach dem Start finden man typischerweise etwa 10 Prozesse. Wenn man einige Programme, Treiber etc. installiert hat, Online geht, können es durchaus auch viel mehr sein. So gesehen nutzen viele Kerne doch etwas, aber nur auf den ersten Blick. Jeder Prozess kann im Prinzip von einem physikalischen oder logischen Kern (das ist ein Kern der nicht existiert, aber dem Betriebssystem vorgegaukelt wird, indem der Prozessor intern aus zwei Prozessen die Instruktionen auf einen Kern verteilt damit dieser optimal ausgelastet. Das ist nicht so schnell wie ein echter Kern aber bis zu 25% schneller als ein einzelner Kern (der typische Gewinn liegt allerdings bei 10-15%). Bei Intel heißt das Hyperthreading. AMD das nicht in den CPU’s.
Wer allerdings genauer hinschaut wird feststellen, dass die meisten Prozesse nur wenig CPU Zeit brauchen. Ein Prozess kann ein Anwendungsprogramm sein, ein Dienst oder auch ein Thread. Continue reading „Parallelisierung – aus Anwendersicht“