Maya only using 11% of CPU when caching nParticles


#1

We recently bought a new computer with an Intel® Core™ i9-7940X CPU @ 3.10GHz, but for some reason when I try to either play or cache out my nParticles Liquid simulation it quickly falls from using about 20% of the CPU to just 10-12%.

I’ve tried setting the priority of Maya to high in the Details panel of the Task Manager with no difference at all.

Sometimes (as far as I can tell it’s random) when I restart Maya it will use a higher percentage of the CPU but then the simulation is incorrect. The particles seem to spawn but after that are completely frozen.

I’m fairly certain this all worked perfectly fine before the weekend because when I worked with the simulation then I didn’t notice anything wrong.

I’m using Maya 2017 Update 5.

Does anyone know what this could be and how to solve it?


#2

As much as I know, the nParticles (as any nDynamics) simulation is single threaded.


#3

I see. So no matter how many extra cores you have, nDynamics will only ever be able to use one of them?

Just because I’m curious, is that to do with calculation accuracy or is there a different reason for why they’ve chosen to do it that way?


#4

Yes, indeed. The number of cores does not matter. Calculating particles and dynamics in parallel seems to be a quite complicated and very much easier to implement in a single threaded version. I suppose they have to rewrite large parts of the nucleus solver to make it multithreaded. And since not very much has changed in the last releases of Maya concerning nDynamics, I hope they’re working on it :).


#5
  wrong.

#6

Is there a different reason my computer only used 11% of its CPU then?


#7

it’s hard to tell without seeing the scene, but your concern seems to be about your cache right ?
In the cache node you have a “multi thread” option box ( wich is off by default) try it to see if it helps.

also on a general note about multi threading, sometimes it will work more or less effectively depending of the type of calculation.


#8

From the Using Parallel Mayapaper:

Nucleus is, by default, disabled from the EM, and thus only single-threaded. I don’t know how it behaves in 2018, however. Caching being multi-threaded is not the same as evaluation being multi-threaded.


#9

that’s not the case anymore with 2017


#10

That said, even in Maya 2015 I’m saturating multiple cores in Nucleus evaluation. I really think it depends on what you’re doing. On my quad-core here, just a simple nParticle emission (default, nothing changed) hits 4/4 cores on my machine, but is still only saturating just over 50% CPU use total, on average. Not as optimal as all 4 running at 100% but it seems obvious the math isn’t that complex, and the cores are finishing their tasks fast enough to not max out the CPU in this case.

So it really just depends.


#11

Nucleus is still largely single threaded - what 2017 did is update the evaluation manager so multiple independent nucleus systems can be computed in parallel.
That’s not the typical simulation scenario - you’ll have to have multiple completely independent hair/particle systems to benefit from this.

An actual muttithreaded nucleus would require a ground up rewrite which I find very unlikely to happen.


#12

here for nclothhttps://knowledge.autodesk.com/support/maya/troubleshooting/caas/sfdcarticles/sfdcarticles/Is-nCloth-Multi-Threaded.html

and this was for the presentation of maya 2012

[quote=]New Fluid Effects simulation methods let you create realistic liquid pouring, splashing, and boiling effects. Other additions to Fluids include new output mesh options, improved auto resizing, and a number of new attributes to enhance the look and behavior of your effects. Further development of the Nucleus unified simulation framework includes multi-threaded nParticle collisions and nCloth self-collisions for faster performance, per-object local gravity and wind for greater control over Nucleus forces, and rigid nCloth shells for small-scale destruction effects.
The addition of Effects Assets provide a wide range of easy-to-use, customizable effects, including fire, smoke, explosion, dust trail, melt, and fireworks. For the Autodesk Maya Entertainment Creation Suites, Dynamics and Effects provides single-step Softimage ICE interoperability which lets you take advantage of the ICE (Interactive Creative Environment) to create effects for your Maya scenes.[/quote]


#13

You know, that’s what I thought to - until I just tried it in Maya 2015, as I stated above. It saturated all four cores, and it was only a single nParticle emitter. I’m going to have to side with Onouris on this one. While I’ve certainly seen some single-threaded behavior from Nucleus, I can’t make it act that way now, and this is with pre-2017 Maya no less.

I’ll run the same test on the Piledriver or Bulldozer and see if it hits all 8 cores there.


#14

So I was completly wrong, sorry. It was my experience from several years working with Maya2015. Seems I always used a setup which was fighting multithreading.


#15

Yeah, I was pretty surprised to see nParticles saturating all cores as well. I don’t do a lot of dynamics stuff, but it’s really nice to see even 8 cores get used for Nucleus stuff. Other things in Maya 2015 are still single-threaded, but Nucleus seems to be better off than I thought.


#16

Can you tell me how you did it? I just tried to get more than 15% of my sixcore machine with a simple non colliding nParticle emitter, but that was impossible.


#17

I tested this as simply as I could think of, again using Maya 2015:

  1. Start new scene
  2. Set timeline to 240
  3. nParticles -> Create nParticles -> Create Emitter
  4. Press play
  5. Check CPU usage (TaskMan, Process Lasso, etc.)

Here is a screenshot from my weakest 'puter, an A8 quad-core. The quick simulation saturated from 50% - 70% roughly, but 61% is a good average that my screenshot captured. Granted, Process Lasso is a lot more effective than raw, vanilla Windows at managing the CPU, but I don’t believe it would have any impact on nDynamics directly. All cores are pushing, just there’s not enough to push against in this simple scene to hit 100%.


#18

Thanks a lot. I tried the same and never get more than only 10% cpu usage. Maybe it’s my system or my windows7.