Esta es la parte final del artículo sobre la aceleración de KOMPAS-3D v18 (
Parte 1 ,
Parte 2 ). Está dedicado a las mejoras en el cálculo de las características de centrado de masa y lo que se ha hecho para acelerar KOMPAS en el lado de nuestro núcleo geométrico
C3D . Y un poco más sobre qué tipo de hierro le permitirá sentir la aceleración tanto como sea posible.

Sobre el cálculo de la CPI
Hay otro parámetro que afecta significativamente el rendimiento de KOMPAS: el cálculo de las características de centrado de masa (MTC).
El cálculo del ICC es el "básico" para muchas funciones, y simplemente es necesario acelerarlo.
Lea más sobre la CPI.Las características de centrado de masa (MCC) son los datos físicos del producto: masa, área, volumen, coordenadas del centro de masa , momentos de inercia planos, axiales y centrífugos.
El MLC se puede obtener mediante cálculo o establecer manualmente, se pueden calcular para el modelo 3D y para el dibujo.
Los datos calculados se utilizan para mostrar la masa en las propiedades del modelo, en los informes, en el sello de un dibujo asociativo, etc.
Konstantin Gulevsky, programador:
“Parece que calcular el volumen y la masa de un cuerpo no es una tarea tan difícil. De hecho, tales cálculos se realizan en microsegundos; además, el núcleo geométrico C3D realiza con éxito dichos cálculos en diferentes hilos. Sin embargo, cuando se trata de "ensamblajes grandes", el cálculo del ICC puede prolongarse durante minutos y, en algunos casos, durante decenas de minutos. La razón de esto es principalmente las complejas relaciones de los componentes: un cambio en las características de un componente afecta las características de muchos otros. Para acelerar el cálculo, se desarrolló un gráfico especial que determinó las relaciones entre componentes y cuerpos. El cálculo del ICC se hizo posible por etapas:
- Se calcula el MLC de todos los cuerpos (los cuerpos no se afectan entre sí, es decir, un cambio en el MLC de un cuerpo no puede conducir a un cambio en el MLC de otro cuerpo).
- Se calculan los MLC de los componentes independientes entre sí, es decir, aquellos para los cuales un cambio en el MLC de un componente no conduce a un cambio en otro.
El paso 2 se realiza de forma recursiva hasta que se calcula el ICC de todos los insertos. - Se calcula el MTC del conjunto del cabezal.
Este algoritmo aceleró significativamente el cálculo del ICC, principalmente debido a la eliminación de cálculos repetidos para los mismos componentes. Pero también gracias a este enfoque, se hizo posible paralelizar el cálculo de la CPI a nivel de componente. Al realizar los pasos 1 y 2, el cálculo del ICC de cuerpos y conjuntos se realiza en diferentes flujos. Tales optimizaciones también dieron un impulso al rendimiento.
A continuación se muestran ejemplos de tiempos de cálculo de MTC.
La diferencia en la velocidad de cálculo será aún más notable para los modelos modificados (una gran cantidad de cuerpos e insertos requieren el cálculo del ICC): están marcados con un asterisco *.
En adelante, las mediciones se tomaron en una PC con la siguiente configuración:
CPU: Intel Core i7-6700K 4.00 GHz
RAM: 32 Gb
GPU: NVidia Quadro P2000
SO: Microsoft Windows 10 x64 Profesional
Tabla 6. Tiempo de cálculo ICC, segundos (menos es mejor). Los modelos modificados están marcados con un asterisco *.Modelo | El comando "modelo " |
V16.1 | v17.1 | v18 |
 Instalación vacío tecnológico | 1,5 | 1,5 | 0.6 |
* Instalación vacío tecnológico (después del cambio) | 17,9 | 10,8 | 2.2 2.2 |
 Multipropósito unificado cuerpo de caja | 37,4 | 60,3 | 1,8 |
 Marea norte central eléctrica | 316,0 | 104,4 | 4.6 |
 Reductor de la nave planta de energia | 359,6 | 8,9 | 1,0 |
 Trolebús | 3,3 | 4,5 | 0.7 |
* Trolebús (después del cambio) | 21,2 | 22,6 | 2,5 |
Evgeny Filimonov, probador:
"El cálculo del ICC se utiliza para muchas funciones de KOMPAS-3D:
- guardar el modelo, especialmente después de hacer cambios,
- la salida de información relevante sobre la masa del modelo, los componentes individuales del ensamblaje,
- informes
- cálculo de datos en la columna de masa para la ventana "Gestión del rendimiento",
- al crear dibujos asociativos para obtener el valor de masa del ensamblaje.
Estos son los principales, pero de ninguna manera todos los casos en que se necesita el cálculo de ICC.
Los siguientes son los resultados de las funciones de aceleración que dependen del cálculo del ICC:
Tabla 7. Ejecución del comando "Información del objeto" para el elemento raíz del árbol, segundos (menos es mejor).Tabla 8. Tiempo de entrada en el proceso de propiedades del modelo, segundos (menos es mejor).Modelo | Entrada al proceso de propiedades del modelo, con |
V16.1 | v17.1 | v18 |
 Marea norte central eléctrica | 295,2 | 108,1 | 1,0 |
 Reductor de la nave planta de energia | 267,1 | 13,5 | 2.7 |
 Multipropósito unificado cuerpo de caja | 35,4 | 21,0 | 2.1 |
 Trolebús | 3,1 | 10,0 | 0.7 |
Tabla 9. Cree un informe, segundos (menos es mejor) (informe en el primer nivel de ensamblaje con parámetros predeterminados).Tabla 10. Ejecute el comando "Gestión del rendimiento", segundos (menos es mejor).Modelo | Equipo "Gestión del rendimiento", con |
V16.1 | v17.1 | v18 |
 Marea norte central eléctrica | 66,4 | 107,8 | 9,9 |
 Reductor de la nave planta de energia | 262,8 | 12,4 | 1.3 |
 Multipropósito unificado cuerpo de caja | 34,0 | 10,8 | 1,5 |
 Trolebús | 2,8 | 5.5 | 0.1 |
Cómo el núcleo geométrico aceleró KOMPAS-3D v18
Los desarrolladores del núcleo geométrico C3D, que es la base de KOMPAS-3D, tampoco se hicieron a un lado e hicieron las mejoras necesarias en los componentes del núcleo para aumentar la productividad.
C3D Modeler implementa la proyección por componentes de un modelo 3D en un dibujo. Anteriormente, después de editar (cambiar o mover) uno de los componentes, todas las proyecciones tenían que ser recalculadas nuevamente. La tarea principal era volver a proyectar solo los componentes modificados especificados y aquellos componentes que podrían verse afectados durante la proyección. Esto aceleró la construcción de proyecciones de ensamblaje con varias modificaciones de sus partes. Obviamente, cuanto menor es el número de componentes de ensamblaje afectados por los cambios, mayor y más notable es el efecto en la velocidad de la construcción de la proyección.
Proyección de componentes. Modelo 3D de una instalación tecnológica de vacío, desarrollado por ESTO-Vacuum (Moscú)Otras operaciones de C3D Modeler también se aceleran:
- proyección de símbolos de hilo,
- eliminar y superponer segmentos al proyectar,
- casos especiales de cálculo del resultado de una operación booleana para un gran número de aristas y ciclos en las caras de los modelos,
- trabajar con atributos personalizados.
El solucionador paramétrico 2D C3D Solver aceleró en un promedio de 30-40%, y en algunos casos varias veces debido a la optimización de algoritmos computacionales. Por ejemplo, una situación en la que al imponer restricciones a un objeto, se imponen las limitaciones de un gran número de otros objetos. Un ejemplo sorprendente es la simetría de una gran cantidad de objetos diferentes con respecto a una línea recta. Tales casos se aceleraron 50-70 veces. En el modelo, que sirvió como la causa principal del trabajo, el cálculo de la superposición de simetría se realizó en 40 segundos. Ahora la operación se calcula no más de 300 milisegundos.
Simetría de un gran número de objetos en relación con un objeto lineal.Se logró un aumento de cinco veces en el rendimiento de C3D Solver al trabajar con splines de interpolación que pasan por un conjunto de puntos preestablecidos. Cuanto mayor sea la spline (el número de puntos que lo especifican), mayor será la aceleración. Para una spline que pasa por 100-200 puntos, se registra una aceleración de diez veces.
Velocidad de operaciones antes y después de la optimización del núcleo geométrico C3DNo sin modificaciones en los parámetros utilizados para la triangulación. El hecho de que comenzamos a usar la desviación angular, ya lo mencionamos en la parte dedicada al
renderizado . Se realizaron varias optimizaciones para calcular la triangulación utilizando la desviación angular y para descomponer de manera más óptima algunos tipos de superficies.
Hierro para v18
La funcionalidad de la nueva versión le permite utilizar las capacidades de tarjetas gráficas potentes a plena capacidad. Los recursos de los procesadores multi-core estarán más involucrados.
El usuario se beneficiará de los procesadores multi-core en los siguientes escenarios:
- al crear vistas de proyección (dibujos asociativos),
- al calcular el ICC y realizar los procesos vinculados a él,
- multi-core le permitirá abrir archivos aún más rápido, ya que el cálculo de múltiples niveles de detalle funcionará,
- al importar
- en operaciones que crean una gran cantidad de objetos geométricos (cuerpos).
Recomendamos el uso de procesadores multinúcleo no solo así, sino porque las funciones indicadas son de frecuencia.
La configuración recomendada para un trabajo cómodo con conjuntos convencionales se muestra en la tabla 11, y para trabajar con conjuntos grandes, en la tabla 12.
Tabla 11. Configuración para un trabajo cómodo.CPU | Procesador multinúcleo (4 núcleos) con una frecuencia de reloj de 3GHz y superior |
Tarjeta de video | Moderno, discreto, preferible a la producción de NVIDIA: con soporte para OpenGL 4.5, 2 GB o más de memoria de video |
RAM | 8 GB o más |
Tabla 12. Configuración para trabajar con ensamblajes grandes.CPU | Procesador multinúcleo (4 núcleos o más) con una frecuencia de reloj de 4 GHz y superior |
Tarjeta de video | Moderno, discreto, fabricado por NVIDIA: con soporte para OpenGL 4.5, 4 GB o más de memoria de video Ancho de banda de video (ancho de banda de memoria): 140 GB / so más * los parámetros de las tarjetas de video se pueden ver en el sitio web del fabricante del chip de video |
RAM | DDR4, 16 GB o más (32 GB mejor) En la cantidad de RAM, debe prestar más atención. Con su falta, el sistema puede comenzar a usar archivo de intercambio: este archivo se encuentra en el disco, y trabajar con él es mucho (!) más lento que con RAM |
Sistema de disco | Unidad SSD como ubicación de instalación de KOMPAS-3D y almacenamiento de documentos KOMPAS |
Debe esforzarse por construir sistemas equilibrados, especialmente si trabaja con ensamblajes grandes. Pero siempre debe centrarse en un ensamblaje 3D específico. Definitivamente no puedes decir "este conjunto es grande", no puedes enfocarte solo en la cantidad de componentes. Después de todo, también existe la complejidad de la ejecución.
Como parte del trabajo en la versión v18, colaboramos con desarrolladores de NVIDIA.Como el volumen de cambios en el lado de renderizado era grande, era necesario actualizar el perfil especial que se usa para KOMPAS-3D en tarjetas Quadro profesionales. Un perfil actualizado ha aparecido en los controladores desde la versión v391.89.
En la nueva versión del controlador, también era posible eliminar los retrasos antes de hacer zoom en algunos modelos.
Que pasa
Ya hay algunas reservas para acelerar el renderizado.
Alexander Tulup, programador:
“En el futuro, puede cambiar gradualmente a VulkanAPI. En este caso, el controlador ya no intenta hacer el trabajo para el desarrollador, como fue el caso con OpenGL. Debe controlar independientemente la exactitud de los datos de entrada. Pero al mismo tiempo, el costo de la llamada de dibujo es mucho más bajo, y si tiene en cuenta el soporte inicial para subprocesamiento múltiple, puede lograr más rendimiento con menos esfuerzo.

VulkanAPI
OpenGL se desarrolló en un momento en que el subprocesamiento múltiple no estaba tan extendido. Todo lo que pudieron haber sido eliminado, y en la última actualización agregaron características para una transición más suave a VulkanAPI.
Los planos aceleran el dibujo de tipos específicos de objetos: esta es una variedad de anotaciones, esculturas.
En la proyección "borrador", se está resolviendo la posibilidad de aumentar la precisión del método.
Además de la optimización algorítmica, continuaremos optimizando los procesos de interacción del usuario con el sistema para reducir el número de acciones en operaciones monótonas.
También se desarrollará un sistema de monitoreo de rendimiento para monitorear constantemente la velocidad de KOMPAS-3D. Los planes incluyen la expansión de escenarios controlados y la base de modelos utilizados en las pruebas.
¡Y ya hemos lanzado KOMPAS-3D v18.1!
El paquete de servicio finalizó varias áreas con respecto a la velocidad. Optimización más fina del sombreador, implementación más eficiente de recortar objetos invisibles. Rendimiento mejorado cuando se trabaja con sección dinámica.
Y también hubo una transparencia realista con un nuevo nivel de rendimiento:
Comenzando por acelerar el renderizado, el trabajo en v18 fue demasiado lejos. Ahora a veces bromeamos sobre eso, y trabajando más en aceleraciones, alcanzaremos valores negativos de esta manera. Pero, de hecho, es una broma, solo se puede entender con el tiempo. Mientras tanto, ofrecemos leer más sobre el rendimiento de KOMPAS-3D. Aquí puede aprender a trabajar rápidamente con ensamblajes de cualquier complejidad. Y que la herramienta de co-creador esté contigo.