Skip to main content
1-Visitor
March 27, 2017
Question

Creo Simulate Multicore Calculation

  • March 27, 2017
  • 10 replies
  • 26356 views

Dear All,

I want to start a discussion about how Creo Simulate is using multicore and how to apply the best settings.

At the Moment I am doing a lot of Simulations but the calculation time is quite a mess even when I am optimazing the mesh etc.

Therefore we asked out PTC dealer how we can accelerate the calculation time.

The recommondation was to use as much cores as possible, use a lot of ram and also use a SSD.

So we ordered now a new Maschine with the following Hardware:

--> 2x CPU Intel Xeon E5-2699v4

--> 128 GB RAM

--> 512 GB SSD

--> Nvidia Quadro K5200

--> Windows 10 64bit

--> Creo 3.0 M120

 

We have now 2x 22 cores but Creo Simulate is only using max 6 cores or so.

This is something we cannot understand. Also the PTC dealer support don´t know how to proceed.

We checked several settings but it is not faster then my mobile Workstation.

So is maybe some one there who has some experience about using multicore with Creo Simulate?

Thank you in advance.

10 replies

24-Ruby III
March 28, 2017

Hi,

in https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS115541 you can find the following sentence:

The solver in PTC Creo Simulate 2.0 is highly multi-threaded and scales up to 64 threads.

Also see:

hardware optimization - Creo Simulate 2

MH

15-Moonstone
March 28, 2017

Hello

Should he give information in Windows or in the Config.pro or other that Creo take into account multi processors.

Kind regards.

Denis

swerner-21-VisitorAuthor
1-Visitor
March 28, 2017

Hi,

you only Need this when you want to Limit the amount of CPU.

Normally Creo is using all CPU´s from PTC Information.

13-Aquamarine
March 28, 2017

What CPU is in your mobile workstation?  There are some pretty fast mobile CPUs out there nowadays...

Also, what kind of analysis are you doing (linear, contact, nonlinear material etc)?

swerner-21-VisitorAuthor
1-Visitor
March 28, 2017

Hi,

thank you for your comments.

I already have seen the linked articel but this is nonsense in my eyes.

There is written "The solver in PTC Creo Simulate 2.0 is highly multi-threaded and scales up to 64 threads.". What does this mean?

I have no so much cores but only max 20% are used.

The CPU in the mobile Workstation is Intel Core i7-4810MQ.

It doesn´t matter what Kind of Simulation I am running.

13-Aquamarine
March 28, 2017

According to Passmark, the 4810MQ has a single-thread score of 2055, versus 1768 for the 2699 v4.  Thus I would expect the mobile system to take about 14% less time to run an analysis, assuming everything else is equal.

As Guilio says, only a small portion of the analysis uses multiple cores; I would say that if the CPU time at the end of the run is twice the elapsed time, the system is running fairly well without any bottlenecks.  I've just run a medium-sized analysis in 1290 seconds with 2370 seconds of CPU time; my colleague's machine previously took 5000/6400, suggesting maybe some disk limitations (he has less RAM, needing more temp file access; and I put the results on a RAM disk)

Note that disk writing time can have a significant effect for large analyses, hence the recommendation for an SSD - this is mitigated by lots of RAM because it reduces the amount of disk read/write for temporary files, but this never reduces to zero.

Have you increased the SOLRAM ("memory allocation for solver") setting?  This is important to achieve the reduction in temp file access - if you have lots of RAM then set it to the maximum of 16384 MB (IIRC), provided this is no more than half your installed RAM size.  The default of 128 MB is rather outdated now!

What you really want is an overclocked i7-7700k! (although it seems they may not overclock too well...)

17-Peridot
March 28, 2017

If I remember well, Simulate uses all the threads in each core only for the resolution of the equations.

For example, if you run a simple static analysis, Simulate does the follows steps:

  1. it makes the mesh
  2. it makes the stiffness matrix
  3. it sets up the problem like [K] * (u) = (F)
  4. it resolve the inverse problem (u) = [K]^-1 * (F) - only here the is the utilizzation of all the CPU's power
  5. it "distributes" the just calculated datas from each node to the point of the plot grid
  6. for a mechanic anlysis, it derives the stress from the vector (u) of displacement

Bye

swerner-21-VisitorAuthor
1-Visitor
March 28, 2017

but if so why is PTC writting "The solver in PTC Creo Simulate 2.0 is highly multi-threaded and scales up to 64 threads."

Multi-threaded means more cores are much better in my opinion.

17-Peridot
March 28, 2017

I don't understand the mistake.

For example if you run the simulation on a cluster PC, that may have a lot op CPU, and each CPU a different number of threads, you already know that Simulate will utilize at maximum 64 threads.

swerner-21-VisitorAuthor
1-Visitor
March 29, 2017

Ok maybe there is a misunderstanding.

Creo is talking about Maximum threads of 64.

In our understanding this means that 64 cores (not cpu´s) can max. solve a calculation.

Therefore we decided to buy this Workstation with 2x22 cores means in total 44 threads.

But the solver is just using maybe 20% of all cores and not all 44.

So why is PTC talking about 64 threads?

I cannot see this.

Here a screenshot of the Workstation running a Simulation.

17-Peridot
March 29, 2017

Try to look at this option.

n_core.JPG

17-Peridot
March 29, 2017

A brief moment of clarity:

from the pic you can see

2 cores

44 cores

88 logical processors (threads)

You can see here, for example, regarding logical processors.

So, in theory, you have 20 threads more than the maximum.

Given the above, which kind of analysis are you doing?

Linear or non linear?

In my experience, but I'm sure I read it somewhere, nonlinear analysis are single thread.

I've just do a little nonlinear static analysis for test, and the program uses only one thread for the iterative resolution.

I give you an advice: with that amount of RAM, you can consider the use of a RAM-disk where putting the temporary folder of the analysis.

Especially with non-linear analysis, afther each iteration the program write the result of the just finished iteration in the folder. If the assembly is very big, the amount of datas per iteration to write on the disk could delay much.

13-Aquamarine
March 29, 2017

I agree with the RAM disk approach.  I've been using IMDisk for some years now; for most analyses, I can put both temporary and results files on the RAM disk, but there's still a useful advantage (over a spinning HDD at least) even just putting the results on the RAM disk.

The run status / .rpt file will tell you how much disk space is being used, so then you know how large to make the RAM disk.

10-Marble
March 30, 2017

I agree with everything thats been said so far.  In my experience, Creo Simulate never scales perfectly. My CPU time is always greater than my Elapsed time (if its not, then I know Simulate is paging to my hard disk), but never a multiple of the number of cores I have.  For example I have an 8 core machine, and Linear static analyses for me, the CPU time is about 1-2 times multiple of the Elapsed time.  On Contact and Modal Analyses, this can be about 2-4 times the elapsed time, but I never see CPU time 8 times greater than the elapsed time.

I would suggest:

setting the config.pro option sim_solver_memory_allocation to 16384.  This controls solram, and that value is the maximum amount of RAM that you can assign to Creo Simulate currently.

Writing results to your SSD, and maybe even consider a RAMDisk if you think it helps.

Yes it is possible to run multiple analyses together, but each analysis needs a solver license, so you will have to purchase additional solver licenses.  I have about 4 solver licenses on my computer and I can run 4 different analyses concurrently as long as they can all share system resources well and not crowd out each other for RAM and processing power.

There is also a Distributed Computing extension where a simulation job can be shared across multiple computers in a network, but I have not tested it personally so I cant give you numbers on that.

swerner-21-VisitorAuthor
1-Visitor
March 31, 2017

‌thank you for this reply. I totally agree to all of your comments but I stikl do not understand why ptc is writing that simulate can use multithreaded taskes! when I run a simulation I always see how high the usage of the coy load is and there is almost no high load. That means that only a view cores are used and this is nit comparable to the note from ptc. I have tried several different types of simulations and it is alwa the same. If so you can never accelate your calculation speed isn it? What should be the best hardware setup in your opinion?

skunks
19-Tanzanite
March 31, 2017

hi,

block solver of simulate can use multithreaded taskes:

ram.jpg

and standard settings:

solver-settings.jpg

regards

paul

1-Visitor
May 15, 2017

Hi,

we had the same questions 2 years ago, but no real solution.

swerner-2 you write about "30 minute simulation" time. This sounds very short. maybe the part is so small, that a distribution over more threads does not make sense. The distribution has some overhead. And many operations can not be distributed at all.

- We could too improve the performance using a RAM Disk. Today I'd try a PCIe SSD if I get the budget...

- We could not observe significant changes between Quad-Core and Octa-Core

- We could not get information about the used technologie. MPI? shared Memory? proprietary? as they are talking of "threads" we assumed shared memory.

- I'm the tech guy - so I'm not so deep in simulation types. But solram-setting was your first "problem".

btw. just found:

For jobs running the direct solver, an elapsed time/CPU time ratio much greater than 4 may indicate a problem. For jobs running the iterative solver, a ratio much greater than 7 may indicate a problem. The iterative solver generally has a higher ratio of elapsed to CPU time because it does more I/O per calculation than the direct solver.

PTC Creo Direct 4.0 Help Center

Anybody using an alternative FEM solver? Not included with Creo?

br Bernhard

skunks
19-Tanzanite
May 16, 2017

hi,

block (direct) solver is standard (multithreading automaticaly).

iterative solver is obsolete:

iterative_solver.JPG

Attention:

Creo 3.0 M120 and later: multithreading is out

regards

paul

1-Visitor
May 16, 2017

Hi,

what do you mean?

Paul Kloninger wrote:

Attention:

Creo 3.0 M120 and later: multithreading is out

br Bernhard

1-Visitor
May 18, 2017

Though we can't use multiple threading,but we can do these below to speed up:

1.Disable "hyper threading" in bios;

2.Put part of your RAM to use as RAM Disk;

3.Put temp on the RAM Disk;

4.Put the folders of your simulation files on the SSD;

These fours steps can reduce the elapsed time.