Dies ist der letzte Teil des Artikels über die Beschleunigung von KOMPAS-3D v18 (
Teil 1 ,
Teil 2 ). Es widmet sich Verbesserungen bei der Berechnung der Massenzentrierungseigenschaften und den Maßnahmen zur Beschleunigung von KOMPAS auf der Seite unseres geometrischen Kerns
C3D . Und ein bisschen mehr darüber, mit welcher Art von Eisen Sie die Beschleunigung so gut wie möglich spüren können.

Über die Berechnung des ICC
Es gibt einen weiteren Parameter, der die Leistung von KOMPAS erheblich beeinflusst - die Berechnung der Massenzentrierungseigenschaften (MTC).
Die Berechnung des ICC ist die "Grundvoraussetzung" für viele Funktionen und muss lediglich beschleunigt werden.
Lesen Sie mehr über den ICC.Massenzentrierungseigenschaften (MCC) sind die physikalischen Daten des Produkts: Masse, Fläche, Volumen, Koordinaten des Massenschwerpunkts , planare, axiale und zentrifugale Trägheitsmomente .
Der MLC kann durch Berechnung erhalten oder manuell eingestellt werden, sie können für das 3D-Modell und für die Zeichnung berechnet werden.
Die berechneten Daten werden verwendet, um die Masse in den Eigenschaften des Modells, in Berichten, im Stempel einer assoziativen Zeichnung usw. anzuzeigen.
Konstantin Gulevsky, Programmierer:
„Es scheint, dass die Berechnung des Volumens und der Masse eines Körpers keine so schwierige Aufgabe ist. In der Tat werden solche Berechnungen in Mikrosekunden durchgeführt, und außerdem führt der geometrische C3D-Kern solche Berechnungen erfolgreich in verschiedenen Threads durch. Bei "großen Baugruppen" kann sich die Berechnung des ICC jedoch über Minuten und in einigen Fällen über mehrere zehn Minuten hinziehen. Der Grund dafür sind in erster Linie die komplexen Beziehungen von Komponenten: Eine Änderung der Eigenschaften einer Komponente wirkt sich auf die Eigenschaften vieler anderer aus. Um die Berechnung zu beschleunigen, wurde ein spezielles Diagramm entwickelt, das die Beziehungen zwischen Komponenten und Körpern bestimmt. Die Berechnung des ICC wurde schrittweise durchgeführt:
- Die MLC aller Körper wird berechnet (die Körper beeinflussen sich nicht gegenseitig, d. H. Eine Änderung der MLC eines Körpers kann nicht zu einer Änderung der MLC eines anderen Körpers führen).
- Die MLCs von voneinander unabhängigen Komponenten werden berechnet, d. H. Diejenigen, für die eine Änderung der MLC einer Komponente nicht zu einer Änderung einer anderen führt.
Schritt 2 wird rekursiv ausgeführt, bis der ICC aller Einfügungen berechnet ist. - Die MTC der Kopfbaugruppe wird berechnet.
Dieser Algorithmus beschleunigte die Berechnung des ICC erheblich, hauptsächlich aufgrund des Wegfalls wiederholter Berechnungen für dieselben Komponenten. Aber auch dank dieses Ansatzes wurde es möglich, die Berechnung des ICC auf Komponentenebene zu parallelisieren. Bei der Ausführung der Schritte 1 und 2 wird die Berechnung des ICC von Körpern und Baugruppen in verschiedenen Strömen durchgeführt. Solche Optimierungen gaben auch einen Leistungsschub.
Nachfolgend finden Sie Beispiele für MTC-Berechnungszeiten.
Der Unterschied in der Berechnungsgeschwindigkeit wird bei den geänderten Modellen noch deutlicher (eine große Anzahl von Körpern und Einsätzen erfordert die Berechnung des ICC) - sie sind mit einem Sternchen * gekennzeichnet.
Im Folgenden wurden Messungen an einem PC mit der folgenden Konfiguration durchgeführt:
CPU: Intel Core i7-6700K 4,00 GHz
RAM: 32 GB
GPU: NVidia Quadro P2000
Betriebssystem: Microsoft Windows 10 x64 Professional
Tabelle 6. ICC-Berechnungszeit, Sekunden (weniger ist besser). Geänderte Modelle sind mit einem Sternchen * gekennzeichnet.Modell | Der Befehl „ Modell“, Berechnungszeitpunkt von , Sek |
V16.1 | v17.1 | v18 |
 Installation Vakuumtechnologie | 1,5 | 1,5 | 0,6 |
* Installation Vakuumtechnologie (nach Änderung) | 17.9 | 10.8 | 2.2 |
 Mehrzweck vereinheitlicht Kastenkörper | 37,4 | 60.3 | 1.8 |
 Nord Gezeiten Kraftwerk | 316.0 | 104.4 | 4.6 |
 Schiffsreduzierer Kraftwerk | 359.6 | 8.9 | 1,0 |
 Oberleitungsbus | 3.3 | 4,5 | 0,7 |
* Trolleybus (nach Änderung) | 21,2 | 22.6 | 2,5 |
Evgeny Filimonov, Tester:
„Die Berechnung des ICC wird für viele Funktionen von KOMPAS-3D verwendet:
- Speichern des Modells, insbesondere nach Änderungen,
- die Ausgabe relevanter Informationen über die Masse des Modells, einzelne Komponenten der Baugruppe,
- Berichterstattung
- Berechnung der Daten in der Massenspalte für das Fenster "Performance Management",
- beim Erstellen von assoziativen Zeichnungen, um den Massenwert der Baugruppe zu erhalten.
Dies sind die wichtigsten, aber keineswegs alle Fälle, in denen eine ICC-Berechnung erforderlich ist.
Das Folgende sind die Ergebnisse von Beschleunigungsfunktionen, die von der Berechnung des ICC abhängen:
Tabelle 7. Ausführung des Befehls "Objektinformationen" für das Stammelement des Baums, Sekunden (weniger ist besser).Tabelle 8. Einstiegszeit in den Prozess der Modelleigenschaften, Sekunden (weniger ist besser).Tabelle 9. Erstellen Sie einen Bericht in Sekunden (weniger ist besser) (Bericht auf der ersten Baugruppenebene mit Standardparametern).Tabelle 10. Führen Sie den Befehl „Performance Management“ in Sekunden aus (weniger ist besser).Wie der geometrische Kern KOMPAS-3D v18 beschleunigte
Die Entwickler des geometrischen Kerns C3D, der die Basis von KOMPAS-3D bildet, standen ebenfalls nicht beiseite und nahmen die notwendigen Verbesserungen an den Kernelkomponenten vor, um die Produktivität zu steigern.
C3D Modeler implementiert die komponentenweise Projektion eines 3D-Modells in eine Zeichnung. Zuvor mussten nach dem Bearbeiten (Ändern oder Verschieben) einer der Komponenten alle Projektionen erneut neu berechnet werden. Die Hauptaufgabe bestand darin, nur die angegebenen geänderten Komponenten und diejenigen Komponenten neu zu projizieren, die während der Projektion betroffen sein könnten. Dies beschleunigte die Konstruktion von Montageprojektionen mit verschiedenen Modifikationen seiner Teile. Je kleiner die Anzahl der von den Änderungen betroffenen Baugruppenkomponenten ist, desto größer und deutlicher ist natürlich der Effekt auf die Geschwindigkeit der Projektionskonstruktion.
Komponentenprojektion. 3D-Modell einer vakuumtechnologischen Anlage, entwickelt von ESTO-Vacuum (Moskau)Andere C3D Modeler-Vorgänge werden ebenfalls beschleunigt:
- Projektion von Fadensymbolen,
- Löschen und Überlappen von Segmenten beim Projizieren,
- Sonderfälle der Berechnung des Ergebnisses einer Booleschen Operation für eine große Anzahl von Kanten und Zyklen auf den Flächen von Modellen,
- Arbeiten Sie mit benutzerdefinierten Attributen.
Der parametrische 2D-Solver C3D Solver wurde aufgrund der Optimierung der Rechenalgorithmen um durchschnittlich 30-40% und in einigen Fällen um ein Vielfaches beschleunigt. Zum Beispiel eine Situation, in der beim Auferlegen von Einschränkungen für ein Objekt die Einschränkungen einer großen Anzahl anderer Objekte auferlegt werden. Ein bemerkenswertes Beispiel ist die Symmetrie einer großen Anzahl verschiedener Objekte in Bezug auf eine gerade Linie. Solche Fälle beschleunigten sich um das 50-70-fache. In dem Modell, das als Hauptursache für die Arbeit diente, wurde die Berechnung der Symmetrieüberlagerung in 40 Sekunden durchgeführt. Jetzt wird die Operation nicht länger als 300 Millisekunden berechnet.
Symmetrie einer großen Anzahl von Objekten relativ zu einem linearen ObjektEine fünffache Leistungssteigerung von C3D Solver wurde erzielt, wenn mit Interpolationssplines gearbeitet wurde, die durch eine Reihe voreingestellter Punkte verlaufen. Je größer der Spline (die Anzahl der Punkte, die ihn angeben), desto größer ist die Beschleunigung. Für einen Spline, der 100 bis 200 Punkte durchläuft, wird die zehnfache Beschleunigung aufgezeichnet.
Arbeitsgeschwindigkeit vor und nach der Optimierung des geometrischen Kerns C3DNicht ohne Änderungen an den für die Triangulation verwendeten Parametern. Die Tatsache, dass wir begonnen haben, die Winkelabweichung zu verwenden, haben wir bereits in dem Teil erwähnt, der dem
Rendern gewidmet ist . Eine Reihe von Optimierungen wurde durchgeführt, um die Triangulation unter Verwendung der Winkelabweichung zu berechnen und einige Oberflächentypen optimaler aufzuschlüsseln.
Eisen für v18
Mit der Funktionalität der neuen Version können Sie die Funktionen leistungsstarker Grafikkarten bei voller Kapazität nutzen. Die Ressourcen von Multi-Core-Prozessoren werden stärker einbezogen.
Der Benutzer profitiert in den folgenden Szenarien von Multi-Core-Prozessoren:
- beim Erstellen von Projektionsansichten (assoziative Zeichnungen),
- bei der Berechnung des ICC und der Durchführung der damit verbundenen Prozesse
- Mit Multi-Core können Sie Dateien noch schneller öffnen, da die Multithread-Berechnung der Detailebenen funktioniert.
- beim Import
- in Operationen, die eine große Anzahl von geometrischen Objekten (Körpern) erstellen.
Wir empfehlen, Multi-Core-Prozessoren nicht nur so zu verwenden, sondern weil die angegebenen Funktionen Frequenzfunktionen sind.
Die empfohlene Konfiguration für komfortables Arbeiten mit herkömmlichen Baugruppen ist in Tabelle 11 und für Arbeiten mit großen Baugruppen in Tabelle 12 aufgeführt.
Tabelle 11. Konfiguration für komfortables Arbeiten.CPU | Mehrkernprozessor (4 Kerne) mit einer Taktfrequenz von 3 GHz und höher |
Grafikkarte | Modern, diskret, der Produktion von NVIDIA vorzuziehen: mit Unterstützung für OpenGL 4.5, 2 GB oder mehr Videospeicher |
Rom | 8 GB oder mehr |
Tabelle 12. Konfiguration für die Arbeit mit großen Baugruppen.CPU | Multi-Core-Prozessor (4 Kerne oder mehr) mit einer Taktfrequenz von 4 GHz und höher |
Grafikkarte | Modern, diskret, hergestellt von NVIDIA: mit Unterstützung für OpenGL 4.5, 4 GB oder mehr Videospeicher Videobandbreite (Speicherbandbreite) - 140 GB / s oder mehr * Parameter von Grafikkarten können auf der Website des Herstellers des Videochips eingesehen werden |
Rom | DDR4, 16 GB oder mehr (32 GB besser) Auf die Größe des Arbeitsspeichers müssen Sie mehr achten. Mit seinem Mangel kann das System anfangen zu verwenden Swap-Datei - Diese Datei befindet sich auf der Festplatte. und damit zu arbeiten ist viel (!) langsamer als mit RAM |
Festplattensystem | SSD-Laufwerk als Installationsort von KOMPAS-3D und Speicherung von KOMPAS-Dokumenten |
Sie müssen sich bemühen, ausgeglichene Systeme aufzubauen, insbesondere wenn Sie mit großen Baugruppen arbeiten. Sie müssen sich jedoch immer auf eine bestimmte 3D-Baugruppe konzentrieren. Sie können nicht definitiv sagen, dass diese Baugruppe groß ist. Sie können sich nicht nur auf die Anzahl der Komponenten konzentrieren. Schließlich gibt es auch die Komplexität der Ausführung.
Im Rahmen der Arbeit an Version v18 haben wir mit Entwicklern von NVIDIA zusammengearbeitet.Da das Änderungsvolumen auf der Rendering-Seite groß war, musste das spezielle Profil, das für KOMPAS-3D in professionellen Quadro-Karten verwendet wird, aktualisiert werden. In den Treibern wurde seit Version 391.89 ein aktualisiertes Profil angezeigt.
In der neuen Version des Treibers konnten auch die Verzögerungen vor dem Vergrößern einiger Modelle beseitigt werden.
Was ist los?
Es gibt bereits einige Reserven, um das Rendern zu beschleunigen.
Alexander Tulup, Programmierer:
„In Zukunft können Sie schrittweise zu VulkanAPI wechseln. In diesem Fall versucht der Treiber nicht mehr, die Arbeit für den Entwickler zu erledigen, wie dies bei OpenGL der Fall war. Sie müssen die Richtigkeit der Eingabedaten unabhängig überwachen. Gleichzeitig sind die Kosten für den Zeichnungsaufruf jedoch viel geringer. Wenn Sie die anfängliche Unterstützung für Multithreading berücksichtigen, können Sie mit weniger Aufwand mehr Leistung erzielen.

VulkanAPI
OpenGL wurde zu einer Zeit entwickelt, als Multithreading nicht so verbreitet war. Alles, was sie bereits hätten herausdrücken können, und im neuesten Update wurden Funktionen für einen reibungsloseren Übergang zu VulkanAPI hinzugefügt.
Die Pläne beschleunigen das Zeichnen bestimmter Objekttypen - dies ist eine Vielzahl von Anmerkungen, Schnitzereien.
In der "Entwurf" -Projektion wird die Möglichkeit erarbeitet, die Genauigkeit der Methode zu erhöhen.
Zusätzlich zur algorithmischen Optimierung werden wir die Prozesse der Benutzerinteraktion mit dem System weiter optimieren, um die Anzahl der Aktionen in monotonen Operationen zu reduzieren.
Außerdem wird ein Leistungsüberwachungssystem entwickelt, um die Geschwindigkeit von KOMPAS-3D ständig zu überwachen. Die Pläne beinhalten die Erweiterung kontrollierter Szenarien und die Basis der in den Tests verwendeten Modelle.
Und wir haben bereits KOMPAS-3D v18.1 veröffentlicht!
Mit dem Service Pack wurden mehrere Bereiche in Bezug auf die Geschwindigkeit abgeschlossen. Feinere Shader-Optimierung, effizientere Implementierung des Abschneidens unsichtbarer Objekte. Verbesserte Leistung beim Arbeiten mit dynamischen Abschnitten.
Und es gab auch realistische Transparenz mit einem neuen Leistungsniveau:
Beginnend mit der Beschleunigung des Renderns ging die Arbeit an Version 18 zu weit. Jetzt scherzen wir manchmal darüber, dass wir auf diese Weise negative Werte erreichen und weiter an Beschleunigungen arbeiten. Aber in der Tat, ist das ein Witz, kann nur mit der Zeit verstanden werden. In der Zwischenzeit bieten wir an, mehr über die Leistung von KOMPAS-3D zu lesen. Hier erfahren Sie, wie Sie schnell mit Baugruppen beliebiger Komplexität arbeiten können. Und möge das Co-Creator-Tool bei Ihnen sein.