Mit Threading-Techniken Server-Prozessoren optimal nutzen

Artikel | Veröffentlicht am 16.12.2014
Mit Threading-Techniken Server-Prozessoren optimal nutzen

Auf Highend-Servern kommen Anwendungen zum Einsatz, die entweder von vielen Anwendern gleichzeitig genutzt werden oder die zeitintensive Berechnungen ausführen. In beiden Fällen ist ein Prozessor vonnöten, der die hierfür konzipierten Techniken unterstützt. SONA Knowledge Base zeigt, welche das sind und wie sie sich auf häufig genutzte Anwendungen auswirken.

Mit dem Ende endlos steigender Prozessortaktraten gerieten neue Techniken in den Fokus vieler IT-Verantwortlicher, mit denen diese ihre Serveranwendungen zusätzlich beschleunigen können. Die Rede ist von Multi- bzw. Hyperthreading, wobei es sich bei Hyperthreading einfach um die Intel-Implementierung einer besonderen Form von Multithreading handelt. Allerdings sind nicht alle Intel-CPUs hyperthreading-fähig, und wenn Sie sich hier alle Optionen offenhalten wollen, wählen Sie am besten einen Xeon- oder Core i7-Prozessor.

Know-how: Multi-Threading und Hyper-Threading

Bei Multithreading handelt es sich um eine Hardware-Technik, mit der möglichst viele Rechenprozesse (Threads) möglichst sinnvoll auf die vorhandenen CPU-Ressourcen verteilt werden. Dabei werden die Threads auf einen oder mehrere Prozessoren so verteilt, dass die zugrunde liegende Anwendung parallel ausgeführt werden kann. Die bestehenden Ressourcen werden also effizienter genutzt, was wiederum zu einer Geschwindigkeitserhöhung führt. Hierzu ist allerdings nicht nur ein multithreading-fähiger Prozessor erforderlich, sondern Multithreading muss auch softwareseitig vom Betriebssystem und der Anwendung unterstützt werden. Nur dann ist es nämlich möglich, dass mehrere Aufgaben gleichzeitig auf allen vorhandenen Prozessorkernen ausgeführt werden können.

Hyperthreading ist eine vom Prozessorhersteller Intel mit dem Pentium 4 HT eingeführte Implementierung einer Unterart von Multithreading, die bis heute ausschließlich in Intel-Prozessoren zum Einsatz kommt. Allerdings betrifft das nicht alle CPUs. So bietet der Intel Xeon E5-2603 v2 mit vier Kernen kein Hyperthreading, was die Zahl der möglichen Threads, also simultan ausführbaren Aufgaben auf vier begrenzt.

Kurz gesagt, bezeichnet Hyperthreading die Fähigkeit der Intel-Prozessoren, auf einem einzelnen CPU-Kern zwei Aufgaben (Threads) gleichzeitig ausführen zu können. Das bedeutet folglich, dass sich mit steigender Prozessorkernzahl die mögliche Zahl an Threads verdoppelt. So schafft der Intel Xeon E5-2660 v3 mit seinen zehn Prozessorkernen 20 Threads pro Prozessor. Berücksichtigt man dann noch, dass viele Server als Dualprozessor-Maschinen ausgelegt sind, verdoppelt das die Zahl an simultanen Threads auf 40 und mehr.

Für Multi- und Hyperthreading infrage kommende Anwendungen

Solche Anwendungen kommen auf Highend-Servern zahlreich zum Einsatz. So bringt Hyper-Threading bei der Virtualisierung von Rechnern enorme Vorteile, da nicht nur die vorhandenen Prozessorkerne mit unterschiedlichen Aufgaben betraut werden können, sondern sich diese ein weiteres Mal mittels Hyper-Threading mehreren Anwendern zuweisen lassen. Das erhöht die maximale Leistung der virtualisierten Umgebung ganz erheblich. Da macht sich jeder einzelne Prozessorkern bei steigender Anzahl der virtuellen Maschinen deutlich bemerkbar.

Darüber hinaus profitiert der gesamte Bereich Datenbanken enorm vom Multi- bzw. Hyperthreading, da dort Queries und andere Suchbefehle ausgeführt werden, die sich sehr gut parallel ausführen lassen. Hinzu kommt, dass in diesem Segment Anwendungen wie der Microsoft SQL Server für das parallele Ausführen von Threads optimiert wurden. Damit werden die zur Verfügung stehenden CPU-Ressourcen des Servers bestmöglich genutzt.

Simulationen und Terminalserver nutzen Threading-Techniken

Doch nicht nur im Bereich Datenbanken und Virtualisierung spielen Multi- und Hyperthreading eine Rolle. So sind zahlreiche wissenschaftliche Anwendungen für den Einsatz von Multicore-Servern konzipiert, da dort Algorithmen und Rechenoperationen zum Einsatz kommen, die sich sehr gut parallel ausführen lassen. Dazu zählen Programme, mit denen sich beispielsweise komplexe mathematische Probleme lösen lassen, die für das Simulieren von Wetterdaten genutzt werden und viele weitere mehr. Und wer schon einmal vor einem Terminal-PC saß und darauf gewartet hat, dass der Terminalserver eine freie Session bereitstellt, weiß die existierenden Threading-Techniken ebenfalls zu schätzen. Denn damit werden die vorhandenen Prozessoren so ausgelastet, dass jedem Anwender die maximal mögliche Rechenleistung zur Verfügung steht.

Dazu passende Shop-Kategorien

Kommentare