Was bringt ein Multicore-System


Thomas Wölfer
Thomas Wölfer

24. August 2010


Die Baustatik enthält an einigen Stellen Unterstützung für Mehrkern-Systeme: Im Gleichungslöser war dieser Support schon immer eingebaut (wenn die Option “Einstellungen –> Allgemeines –> Schnellen Gleichungslöser verwenden” eingeschaltet ist.). Seit dem letzten Update (auf Version 1.64) haben auch alle Bemesser Unterstützung für Mehrkernsysteme und führen die Bemessung für Stäbe, Unterzüge und Faltwerkselemente parallel durch: Dabei laufen immer so viele Bemessungen gleichzeitig, wie CPUs vorhanden sind.

Ab dem nächsten Update wird das ausgebaut sein und für alle Ergebnisse – nicht nur für Bemessungsergebnisse gelten. Außerdem wurde der Netzgenerator parallelisiert.

Natürlich ist aber nicht alles parallelisierbar -  so zum Beispiel große Teil des Programmcodes, die sich mit dem “echten” Malen beschäftigen: Also praktisch alles, was irgendwelche Striche auf den Bildschirm bringt. (Wir werden ganz sicher noch darüber nachdenken, wie man das ändern kann, aber zur Zeit wird fürs zeichnen immer nur eine CPU verwendet.)

Aus diesem Grund ist es zwar so, das einige Teilbereiche tatsächliche linear mit der Anzahl der CPUs schneller werden – andere aber eben nicht. Als Gesamtergebnis erhält man dann Resultate, die insgesamt zwar mit der Anzahl an CPUs besser werden, aber nicht so linear, wie man sich das wünschen würde. Wir haben hier mal ein paar Messungen auf unterschiedlichen Systemen vorgenommen – und zwar für dieses Beispiel anhand eine Stabsystems mit > 1800 Stäben und ca. 3000 Einwirkungen, das nichtlinear berechnet wird.

Die Y-Achse gibt die benötigte Zeit (in sec) an, und zwar vom Start der Berechnung (Mausklick auf “Ergebnisse –> Bemessung”) bis zu dem Zeitpunkt, an dem die Ergebnisse (als Kurven) am Bildschirm angezeigt werden.

Dieser Vorgang wurde auf 4 Systemen durchgeführt, und zwar einmal ohne Multicore-Unterstützung (blaue Balken) und einmal mit (rote Balken [Das ist der normale Betriebsmodus der Baustatik, wenn die Option “Alle CPUs gleichzeitig verwenden” eingeschaltet ist.]).

Die Beschriftung unterhalb der Balken gibt die Anzahl der Kerne und deren Taktfrequenz an. Bei der Single-Core Berechnung kann man leicht erkennen, das die Taktfrequenz das einzig maßgebliche ist: Je höher der CPU – Takt, um so kürzer ist die Berechnungsdauer.

Im Vergleich der roten und blauen Balken kann man dann erkennen, was die Mehrkernlösung bringt: Effektiv (und unter Berücksichtigung der Tatsache, das eben nicht alle Vorgänge parallelisiert sind) braucht die 4-Kern CPU (ganz rechts) mit Multicore-Support nur noch die Hälfte der Zeit wie im Single-Core Betrieb.

Bei den anderen (Dual-Core) Systemen führt die Verwendung des zweiten Kerns dazu, das etwa jeweils ein Drittel der Zeit eingespart wird. Im Endeffekt wird der Rechner mit nur 2 CPUs dabei fast genau so schnell wie der mit den 4 CPUs – und zwar deshalb, weil die einfach langsamer laufen.

Wenn man sich also zwischen einem (etwas langsamer getaktetem, aber etwas teurerem) 6-Kern System und einem (schneller getaktetem, aber billigerem) 4 Kern System entscheiden müsste: Das 4-Kern System nehmen.