View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001415||FreeCAD||Feature||public||2014-02-16 15:58||2021-02-06 06:50|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0001415: Multi core/thread support|
|Description||Hi, I'm not sure if FC currently is utilizing multiple cores/threads simultaneously, but it would be of huge benefit for the future when one could, at least in theory, move a feature (point, line, plane) in the resulting body and see the whole result updated in real time.|
E.G. a casting whos shape depends upon an irregular hole pattern.
Or upon step changing a common draft angle parameter reflects its impact in real time.
Or moving holes and depressions in sheet metal and see the result in real time really enhances your understanding of that specific part you're working on.
And your customers will get a better understanding of how a particular change/demand will impact the end result which in the end cut costly time - a lot.
|Additional Information||Had this in the "Open discussion" before but it was apparently the wrong place.|
This might be a starting point for learning parallel computing?
For parallel computing Qt already offers e.g. the (low-level) QThread class, QThreadPool or the high-level API QtConcurrent which we make use here and there.
The problem is not that we don't know how to parallelize it's more the lack of OCC to support it. At the moment there are only a few algorithms that are ready to use in separate threads.
||One improvemnt would be, that a recompute only blocks when applying changes to the GUI (changing QT elements or the scenegraph) and not while performing computations inside OCCT.|
Last edited: 2017-05-06 21:15
Hi Shoogen, I get a feeling there's a vital word (for me) missing in your comment [0001415:0004690] "...only blocks when applying..." ? Should there have been a word before or after "blocks" ?
From my experience in an engineering company routinely working with complex models containing many parts, I strongly support parallel processing. The commercial CAD systems I know are all more or less single threaded Windows applications. As Processors these days no longer get faster, but have more cores instead, the only way to significantly improve productivity of CAD when working with complex projects seems to be to go parallel.
With Linux effortlessly scaling from an Arduino to supercomputers and an eight core workstation being available for 500 €, a truly parallel computing CAD system running on Linux could be a killer.
My experience with the commercial systems was that upgrading a several year old version on several year old PCs to the current version with carefully single-thred-performance-optimized PCs did not result in a noticeable performance increase. Loading and processing times of complex assemblies remained unchanged. A huge investment for nothing and very frustrating.
||This ticket has been migrated to GitHub as issue 5581.|
|2014-02-16 15:58||Pauvres_honteux||New Issue|
|2014-02-23 18:22||Pauvres_honteux||Note Added: 0004281|
|2014-02-23 20:40||wmayer||Note Added: 0004283|
|2014-05-18 16:46||shoogen||Note Added: 0004690|
|2014-05-19 02:52||Pauvres_honteux||Note Added: 0004693|
|2014-07-31 08:24||wbraun||Note Added: 0004903|
|2014-07-31 08:28||wbraun||Note Edited: 0004903|
|2017-02-02 01:06||Kunda1||Tag Attached: multithreading|
|2017-02-02 01:06||Kunda1||Relationship added||related to 0002750|
|2017-02-02 01:07||Kunda1||Note Added: 0008162|
|2017-05-06 21:15||Kunda1||Note Edited: 0004693|
|2021-02-06 06:50||abdullah||Target Version||=> 0.20|