Thomas Wölfers Baustatik-Blog

Thomas Wölfers Baustatik Blog

Neue Updates verfügbar


Ab sofort sind neue Updates über den Downloadbereich verfügbar: Diesmal das monatliche Update für die Baustatik und zusätzlich ein Update für das Programm für Fundamentberechnungen Xfun.

In der Baustatik gibt es 2 wesentliche Änderungen: Der Lastgenerator “kann” nun auch Schneelasten nach DIN 1055- das ist das ein. Das andere, weniger sichtbare ist: Alle FEM Programme wurden in weiten Bereichen parallelisiert und verwenden nun alle verfügbaren CPUs, gleichzeitig wurde der Netzgenerator dramatisch beschleunigt. Vor allem bei Systemen mit vielen Faltwerkselementen und zumindest einigen Stäben sollte man eine spürbare Beschleunigung merken. Bei Systemen die nur Stäbe verwenden, sollte sich die Nutzung von mehreren Kernen deutlich bemerkbar machen. (Dazu gab es hier und hier ja schon ein paar Zahlen.)

Das Update-Protokoll im Download-Bereich enthält wie immer eine vollständige Liste aller Änderungen und Erweiterungen.


Bei Installation: Meldung vom Antiviren-Programm


Ein paar Kunden hatten bei der Installation der Version 1.64 das Problem, das ihr Antiviren-Programm im Zuge der Installation Alarm schlug: Was nun ?

Im wesentlichen ist es so, das die Installationsmedien auf einem "sauberen” Rechner hergestellt werden – ich bin da sehr zuversichtlich, das diese keine Viren enthalten. Bei näherem untersuchen der Meldungen kam dann folgendes raus: Seit Version 1.64 verwenden wir im Rahmen der Installation den Ngen – Microsofts Native Image Generator.

Das Programm erstellt im Laufe der Installation eine auf das vorliegende System optimierte Version der Baustatik und schreibt in diesem Zusammenhang auch native binärdateien in Systemverzeichnisse. Das passiert erst seit Version 1.64, weil unser Installationsprogramm das vorher nicht konnte.

Nun scheint es Antiviren-Programme zu geben, für die dieser Vorschlag so aussieht, als würde ein Virus den Rechner befallen – das ist aber Quatsch, und eigentlich für mich auch etwas überraschend, denn Ngen gibt es schon seit Jahren – das ist nicht wirklich was neues. Microsofts Defender (bei Windows 7 beigepackt) und Security Essentials (der kostenlose große Bruder vom Defender) haben dieses Problem beispielsweise nicht.

Wie auch immer: Nein, die von uns ausgelieferte Version 1.64 der Baustatik enthält keinen Virus, keine Sorge.


Wie teilt man einen Stab an einem Knoten auf ?


Mal angenommen, man hat so ein System:

image

Jetzt will man einen der sich kreuzenden Stäbe am Kreuzungspunkt aufteilen. Wie macht man das?

  1. Man braucht irgendwie die Stelle, an der sich die Stäbe kreuzen. Das geht mit Erzeugen –> Punkte –> Knoten im Schnittpunkt von Geraden erzeugen
    image
  2. Jetzt misst man den Abstand vom Anfangsknoten zum Schnittpunktsknoten: (Werkzeuge –> Länge messen)
    image
  3. Jetzt klickt man auf den Stab und wählt den Befehl zum aufteilen:
    image
  4. Aufteilen tut man dann “Mit Abstand vom Startknoten” (den hat man gerade vorher ausgemessen)
    image

(Bin gerade in Urlaub: Dieser Beitrag wurde aufgezeichnet.)


Mehr über Multicore-Systeme


Ich hatte gestern eine kleine Tabelle gezeigt, aus der man die Performance-Gewinne durch den Einsatz von Multicore-Systemen ablesen konnte. (Es gibt übrigens bereits durchaus bezahlbare 24-Core Desktop Systeme.)

Aus der Kurve konnte man beim 4-Kern System sehen, das der gemessene Vorgang nur noch die Hälfte der Zeit brauchte. Das ist natürlich nicht besonders beeindruckend, wenn man bedenkt, das immerhin 4 CPUs beteiligt sind: 4 CPUs machen die Sache also nur doppelt so schnell wie eine einzelne.

Es kommt aber auch immer drauf an, was man eigentlich betrachtet. Beim Vorgang gestern wurden sämtliche Vorgänge mit gemessen. Nach dem Klick auf den Befehl für die Bemessungsergebnisse finden aber eine ganze Menge Dinge statt: Es wird eine Plausibilitätskontrolle durchgeführt (beim gegebenen System mit 1800 Stäben kann das schon mal eine Sekunde oder so dauern, es wird eine FEM-Berechnung durchgeführt, die zugehörige Matrix aufgefüllt, etc. etc. – und vieles davon ist eben (noch) nicht parallelisiert.

Wenn man sich aber einen anderen Vorgang ansieht – einen, der möglicherweise häufiger vorkommt – dann sieht die Sache schon anders aus. Angenommen, man ist bereits auf dem Fenster zur Auswahl der Ergebnisse – dann geht es nur noch darum, eine bestimmte Bemessung (oder eine bestimmte Überlagerung) durchzuführen.

image

Der Wechsel von Bemessungsgruppe “1” zu Bemessungsgruppe “2” löst einen Bemessungsvorgang aus. Und der dauert (auf dem gleichen 4-Kern System von gestern, mit dem gleichen Tragwerk von gestern):

Mit Multicore-Support: ca. 4 Sekunden
Ohne Multicore-Support: ca. 16 Sekunden

Hier gibt es also plötzlich eine dramatische Verbesserung: Die benötigte Zeit nimmt bei so einem Vorgang tatsächlich linear zu den vorhandenen CPUs ab.


Was bringt ein Multicore-System


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.

image

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.


Mein Arbeitsfenster enthält nur noch ein rotes Kreuz: Was nun?


image

Es passiert nicht besonders oft, aber es passiert: Die Graphik verschwindet vollständig, und statt dessen sieht man nur noch ein rotes Kreuz. Was bedeutet das, und was tut man dann?

Das rote Kreuz sagt im Wesentlichen, das eine Situation eingetreten ist, mit der der Programmierer nicht gerechnet hat – und das Programm ist dann beim zeichnen abgestürzt. Allerdings betrifft das nur den Teil des Programms der die Graphik mal: Der Rest geht noch.

Was kann man tun?

Der einfachste Weg lautet: Baustatik beenden und dann neu starten.

Der möglicherweise etwas praktikablere Wege geht so:

  • Die letzte Änderung rückgängig machen. (Die letzte Änderung ist mit recht großer Sicherheit der eigentliche Auslöser.). Das geht per Bearbeiten –> Rückgängig machen.
  • Dann ein neues Fenster öffnen.  Fenster –> Neues Fenster. (Jetzt sollte es wieder eine sichtbare Graphik geben.)
  • Dann das Fenster mit dem roten Kreuz schließen.