Slow IGES file import

 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