Trying to see what I can improve to speed up my non-linear analyses. I'm running an i7 3930k w/ six cores that it only seems to partially utilize. RAM speed/latency? SSD I/O? Or something else? Where is the hiccup?
I'm no expert on SolidWorks Simulation or on the hardware, so take any advice from me with a whole shaker of salt. It depends on the simulation you are running and the system you are running it on. If you have sufficient RAM, so that the system doesn't have to swap in and out with the SSD, then it is probably your CPU speed that is the weak link. If you don't have enough RAM, then adding RAM would be the right thing to do. (I suspect that you want all of your RAM to be the fastest that will work with your CPU.) If you can't add enough RAM, then SSD I/O is going to be important.
You may also find that your choice of solver is important. Some solvers work better on certain types of problems and some solvers use multiple cores more effectively. It could be that the slow solver that uses the most cores is fastest, or it might turn out that the fast solver on less cores is best. Or you may have no choice.
I'm no hardware expert myself, but I was told that unlike regular modeling tasks in SW, simulation (and rendering, etc...) can make use use of parallel processing. Thus a processor a better parallel pipeline is better.
In the same vein, you can set up distributed computing where a whole network of linked PC's crunch through the same problem in parallel. Solving all those systems of linear equations with large matrices is very conducive to parallel computing.
parallel pipeline > there are several features and solvers that use this technology but not all
distributed computing > this is not currently available in solidworks simulation
OP, this is very likely the reason for your solve times. in the end you just have to wait. this assumes that you have completely optimized your analysis setup and that you have not reached the max on your RAM (and the you aren't in page file) and that you have not maxed out the IO on your drives (if you are using ssd you are probably fine). I have also assumed that you have turned off hyperthreading.
check the solidworks kb for some more info on hardware for solidworks but our experience is that it is better to look at the way the problem has been setup than to throw more hardware at it.
Flow Simulation is the only product that will utilize more than one processor core.
That being said, you should maximize processor speed, ram quantity and speed, and hard drive speed. Processor speed is just a numbers game, get the fastest you can afford. I've never seen more than 16GB used during any simulation, so I would recommend 24GB to keep away from any max ram thresholds, and again, the fastest you can afford. For hard drive, you will benefit the most from a solid state drive. The motherboard is also a key consideration because it's capabilities define the maximum processor and ram speeds and quantities.
Do yourself a favor, before investing a bunch of cash, look at your simulation setup and figure out a way to simplify it. You need to get the element and node counts as low as possible. Use symmetry, varying mesh sizes, eliminate contact pairs, and anything else you can think of to make it simpler. Contact and non-linear situations will always increase processing time.
all solidworks simulation solvers can use multiple processors or multiple cores. the only one that might not is motion.
I don't wish to start an argument here, but unless it's new for 2014, which I don't have, SolidWorks and Simulation use only one core at a time for everything but Flow Simulation. I know this for a fact from personal experience. If you know otherwise, please site your source and release number.
I don't have an official source from the software devs, but from what I remember back in school where I had to write FEA codes, the math (i.e. linear algebra) is all the same for all these models. Essentially all they are doing is quick many-variable equation solving using the row-reduction matrix method.
These calculations can all take advantage of parallel processing.
So, why would it matter what sub-type of problem it is discretizing?
one of many KB articles that talk about multicore in solidworks simulation from the KB. it actually goes back past 2009 but this one was written for 2009 specifically for people that search for 2009.
Visible to Customer:
I didn't want to have an argument about this here because it was not the original topic, but since there is misinformation out there about this, I will clarify.
To say that Simulation can take advantage of multiple cores is a correct statement. But it does not mean that it can use more than one core at a time, except for Flow. It can rapidly switch between cores when processing, which probably speeds things up a little, but only one core is active at any instant. This is plain to see in Windows Task Manager.
The only way you can get Simulation to use more than one core is to do like the above post says, and run more than one study at a time. You can also see this in Windows Task Manager.
I have a 12 core machine. When I run one study, cpu usage is 8%, 100% / 12. When I run 2 studies at the same time the cpu usage jumps to 17%. Two cores are being used.
If Simulation used parallel processing, it would try and use all cores at the same time and you would see cpu usage at or near 100%, just like you do when you run benchmark type applications that test cpu performance. Those apps peg all cores 100%.
Simulation will use multiple cores at one time for some operations And for some study types. If you have hyper threading enabled it may be somewhat masked. Best bet to speak with your reseller further. I would still suggest getting the fastest core speed possible since there are many operations in solidworks that will not benefit from having more cores.
This is what it says in 2014 help files:
The Direct Sparse solver requires about 10 times more RAM than the FFEPlus solver. It becomes faster with more memory available on your computer. The Large Problem Direct Sparse leverages multicore processing capability and improves solution speed for static and nonlinear studies.
Semantics aside, the only way to read that is if you have multiple cores, your performance will increase...
Does the "automatic" solver setting typically choose direct sparse or FFEplus?
That totally depends on how you set up the simulation and I think the size (# D.o.F.'s).
Pasted from the same help file I referenced.
I was wrong.
I now have SW 2014 on my computer and Simulation does take advantage of multiple cores while solving. It is so much faster now. Thank you Simulation developers.
Retrieving data ...