Someone please correct me if I'm wrong but I dont believe there is a way to manipulate the way Solidworks uses your processor. Some interesting things I've noticed recently on this topic is how utilised (or under-utilised) the procesor is under certain tasks. While running a CPU utilization app on my i7-965 I notice the following behaviour...
Photoworks utilizes all of your processors cores evenly to their maximum capacity.
PV360 seems to do the same but to a lesser extent (does this mean that the GPU is assisting the calculation process?)
SW Motion calculations don't appear to use the processor in the same way as the above. When running CPU statistics with motion study, it would appear that only one core and a relatively small portion of the remainder are used. Although I dont understand why this is, I'd be really keen to know.
Maybe someone can assist Gokhan and myself here. Is there in fact a way to tune a system to better utilise Solidworks ?
As far as I am aware it is a question of the calculations the computer is doing. If they are linear processes - i.e one calculations needs to be solved before another can, this will always use a single core. Parrallel processes (like rendering) can utilise multiple cores. Therefore I don't think there is anything you can do to force Solidworks to take advantage of multicore processors. I found this description earlier:
SolidWorks can run on dual core CPU and dual CPU. SolidWorks is multi-threaded. Many of the user interface
activities such as redraw and dialog box interaction, etc. take advantage of this technology. However, the
solving process used for parametric modelling is by nature very linear and cannot take full advantage of
multiple or dual core processors. No benchmark tests have been done to determine the increased speed
associated with running on a multi/dual core-processor machine but there should be a slight performance gain.
SolidWorks does take advantage of multi-threading and has done so for several versions. Therefore, it will take
advantage of multi-CPU systems where possible (it is not always possible to multi-thread each stage of the
modeling process since some operations are sequential not parallel). It is not possible to give an accurate
number of how much quicker SolidWorks would run on a multi-cpu system, since it will vary depending on the
area of the software being used. For some operations it could be up to ~20-25% faster.
The areas where Solidworks utilizes multi-cores (or multi-cpu) are written into the application.
Ed is correct, if the process commands are linear Windows will direct the thread(s) to one cpu/core. If they are parrallel, such as FEA and photoworks rendering then Windows will send the multiple threads to more than one cpu/core.
The only options available are to set processor affinity. This is only useful if you are running something that utilizes more than one cpu/core and you want to lock it to only certain cpu's/cores. For example if you are running an FEA and have a dual core you can set affinity to CPU0 (first cpu/core) and it will allow you to utilize the 2nd cpu/core (CPU1) to run other applications; as Windows will send remaining threads to that cpu/core.
Do y'all know why it would use (only) one primary thread for meshing? It uses two, but it would be nice if it at least used the two cores evenly... (see threads/cores 4 and 6-- 6 is being used mostly until it tops out and 4 comes in as it drops back down). Do you see how they are mirrored? (I set 4 through 7 to use only SW.)
I understand there is no way to change this. I am, of course, just curious about what the deal is.
This is quite interesting:
Retrieving data ...