Could you advice me how to determine optimal number of CPUs ?
Hello,
My computer has 32 cores logically (16 cores) and 96 GB RAM memory. I am running my model by assigning 24 cores but it uses 30~50% of CPU when seeing the Task Manager. I think that MotionSolve should use 75%(24/32) of CPU or 100%(24/16).
1. Could you tell me the reason of low CPU usage (less than 50% of RAM is being used) ?
2. Is there any function in MotionSolve that calculate/estimate optimal CPU or RAM memory depending on model size?
3. Is there no way to use GPU?
Thank you in advance.
Best Regards,
Yoseob.
Best Answer
-
Hi Yoseob,
If you are simulating a model with several contacts, the good news is that Contact detection in MotionSolve is parallelized and MotionSolve uses the maximum number of threads available to your CPU by default. Contact detection scales with the number of processors and gains of up to 6x may be achieved with this option.
If you want to manually set the number of CPU cores to be used when available, you can modify the num_threads simulation parameter. This can be found by navigating to Run >> Analysis Settings Dialog >> Global Simulation Settings >> Analysis Settings >> General >> Number of CPU cores in SMP run.
Also, for several enhancements to MotionView and MotionSolve, I would recommend making the update from 2020.3 to 2023. This could yield several improvements to your current simulation process and overall project time.
Hope this helps!
Adam Reid
1
Answers
-
Hi Yoseob,
If you are simulating a model with several contacts, the good news is that Contact detection in MotionSolve is parallelized and MotionSolve uses the maximum number of threads available to your CPU by default. Contact detection scales with the number of processors and gains of up to 6x may be achieved with this option.
If you want to manually set the number of CPU cores to be used when available, you can modify the num_threads simulation parameter. This can be found by navigating to Run >> Analysis Settings Dialog >> Global Simulation Settings >> Analysis Settings >> General >> Number of CPU cores in SMP run.
Also, for several enhancements to MotionView and MotionSolve, I would recommend making the update from 2020.3 to 2023. This could yield several improvements to your current simulation process and overall project time.
Hope this helps!
Adam Reid
1 -
Adam Reid_21142 said:
Hi Yoseob,
If you are simulating a model with several contacts, the good news is that Contact detection in MotionSolve is parallelized and MotionSolve uses the maximum number of threads available to your CPU by default. Contact detection scales with the number of processors and gains of up to 6x may be achieved with this option.
If you want to manually set the number of CPU cores to be used when available, you can modify the num_threads simulation parameter. This can be found by navigating to Run >> Analysis Settings Dialog >> Global Simulation Settings >> Analysis Settings >> General >> Number of CPU cores in SMP run.
Also, for several enhancements to MotionView and MotionSolve, I would recommend making the update from 2020.3 to 2023. This could yield several improvements to your current simulation process and overall project time.
Hope this helps!
Adam Reid
Hello Adam,
Thank you for your answers.
You mean that using 6 threads is the best choice in efficiency point of view, am I understood correctly? If I understood correctly this is good imformation in my following MotionSolve runs, thank you.
The query still unresolved for me is that I requested to use 24 threads but why MotionSolve doesn't use 24 threads as shown in above and below screen captures. I confidence that 24 threads in my computer should be involved in calculation anyway although 24 threads are not efficient. I wonder if I understood your advice incorrectly. Could you give me an advice on this?
0 -
Yoseob Shim said:
Hello Adam,
Thank you for your answers.
You mean that using 6 threads is the best choice in efficiency point of view, am I understood correctly? If I understood correctly this is good imformation in my following MotionSolve runs, thank you.
The query still unresolved for me is that I requested to use 24 threads but why MotionSolve doesn't use 24 threads as shown in above and below screen captures. I confidence that 24 threads in my computer should be involved in calculation anyway although 24 threads are not efficient. I wonder if I understood your advice incorrectly. Could you give me an advice on this?
Hi Yoseob,
The above statement was to point out that you can improve the speed of the solution by up to a factor of 6 depending on the number of processors in use.
Based on your screenshot above, it looks like you have access to 16 physical processors (cores) and 32 virtual processors (threads), so I would try setting the value to 32 and see if performance improves.
Hope this helps!
Adam Reid
0