A quick question,
Which large assy is performing better.
All parts have relations.
Some parts have relations.
No relations, nothing grounded.
A mix of the above..
Please let me know what your experience is...
User since V3.5
@Jan_Bos I know the worst will be no relations, nothing grounded. I would always make sure that all parts are fully positioned with no degrees of freedom of movement. That way SE can ignore these calculations when you're working and nothing gets moved accidentally.
After that, I haven't noticed much difference in performance between assemblies with relationships vs. assemblies where everything is grounded, though it is easier to manage grounded stuff without complex relationships to worry about.
My understanding is that SE recalculates all constraints when something even relatively minor changes. We had an assembly with a lot of small parts constrained in all degrees of freedom. The user would move one part with the steering wheel and SE would freeze for a very long time until he could move the next part. We submitted the issue to GTAC, sent them the models, and they said it was because of all the constraint recalculations needing to complete. So, we copied the assembly, deleted all the constraints and performance improved remarkably. Don't remember if we grounded the parts. That would seem to suggest that unconstrained and possibly grounded would yield the best performance.
How long ago and what version of Solid Edge, @bshand? I know calculating assembly relationships used to be a huge performance drain, but I thought there have been improvements to limit what gets recalculated.
None the less, there have been user-conducted studies that inserting parts, mating them into location, deleting the assembly relationships, and grounding the parts has decreased file size and improved performance. So much so, as a matter of fact, that it is a requirement in their release process to ground all parts. This was well before Synchronous, though.
This was no earlier than ST7, possibly ST8. Anyway, if I recall correctly, he was actually copying a certain part over and over again from the last part copied or from other copied parts and telling SE to recompute the relationships rather than, say, suppressing or deleting them. Perhaps it was having to calculate a chain of relations for all the parts that had been copied from each other? I'm not sure but it seemed to me Siemens said it has to calculate all relationships every time which seemed odd. You'd think solved relationships were just that. I know that it was night and day after we deleted constraints. I'll have to find the IR and review it.
I agree that no relation is the lightest on the CPU.
My files have tons of relations that can be driven driven from the bend radius and thickness of my gages
If I edit a gage, my machine can take a few seconds to update all the relations in a small file. Like 10 pieces of sheet metal w/ 4 bends and 4 holes each average. If I change the gage of one part, typically I have 70 updated drafting dimensions as a result. I'm happy that happens in a few seconds.
Does anyone know if assembly relationships have become multi-threaded, or are they still relagated to a single CPU core?
I just did some quick tests with updating many relationships and it seems that they are still computed by single CPU core.
That's not properly right. SE works with only one core of one CPU (like solidworks, ansys or other similar programs) but if it could use more cores on two CPUs it would work much better, proportionally to the number and power of the cores.
In my office, we're using a program (single license >20k €) that divide the "work" on all cores or CPU (yes, we have also a Z840 workstation with 2 E5 2697 v4 with a total of 36 cores and 72 thread), and the performance are incredibly increased.
For example: if normally solidedge takes 10 sec to solve a operation, if you can divide the work on 5 cores, the same operation will take 2 sec. Imagine with fluidodynamic calculations that takes hours and hours.
However, if the assembly has no relations (or blocked to the ground) is much better, because solidedge doesn't need to analyze every relation when you open the asm or change something.