Slow IGES file import
All  1-8  9-11

Previous
Next
 From:  Michael Gibson
5753.9 In reply to 5753.8 
Hi Len,

> It appears join is single threaded which makes it worse.

Yeah it's really quite difficult to make things that modify common structures to be multi-threaded. Like in this case every edge join makes a modification by gluing together things that were previously separate. It's really difficult to get multiple threads to simultaneously modify the same structures, if they are not very carefully coordinated things will just crash because they'll be fighting to modify the exact same data.

It could be possible in the future to try and make a new join mechanism that was more suited for multi-core processing, something more like a separate "analyze" preprocessing step that did not modify anything yet and only figured out what should be joined (which could probably be more easily parallelized), then do the actual joining afterwards. That would be a significant undertaking to achieve that, though. Multi-threaded coding is one of the most difficult types of programming that there is, it's very easy to have subtle bugs and often times difficult to debug when it requires some kind of specific sequence or timing in order for the bug to show up.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.10 In reply to 5753.9 
I can understand that :) It's probably not a big issue for most operations. I'm wondering if there is a more efficient way to join large assemblies, perhaps by automatically breaking them into sections, joining, then joining the sections. I'm doing that manually now and seems to help.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
5753.11 In reply to 5753.10 
Hi Len,

> I'm wondering if there is a more efficient way to join large assemblies, perhaps by
> automatically breaking them into sections, joining, then joining the sections.

There's nothing like that currently built into the Join mechanism in the geometry library - it could be possible for me work on that in the future. But there are probably some kinds of tricky cases that would not work very well with a sectional join mechanism because not all models are sort of evenly divided up into regular sized pieces, it is possible to have something like one big trimmed plane that might span a large area.

It hasn't been a big area of focus before because using STEP import should probably avoid all the extra work that you're currently doing.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
 
Show messages: All  1-8  9-11