Hi all,

Sparked by an interesting thread
<https://groups.google.com/forum/#!topic/python_inside_maya/4tmwjwo7tLo>
recently, I’m trying to get a better handle on the new evaluation mode in
Maya 2016+, and am looking for examples of where it has a positive impact.

Conceptually, I think it makes sense; if something *can* run in parallel
across multiple CPU cores then it *should*.

Based on only this idea, these are some of the examples I’d expect to be a
good fit.

   1. 1 sphere or 1,000,000 vertices, deformed by an animated lattice
   2. 1,000 spheres, animated independently of each other
   3. 4 independent hierarchies of objects with 100 children each

For (3), I’d expect a 4x performance increase on a 4-core system.

But that’s not what I’m seeing.

evaluation=off: 107.23 ms
evaluation=parallel: 406.81 ms
evaluation=parallel, nodeType=untrusted: 421.11 ms
evaluation=parallel, nodeType=parallel: 407.96 ms


   - https://gist.github.com/mottosso/ee34d1f1819efb7251abf08ae3532346

Here, 4 independent hierarchies, each of depth 100 driving a cube via a
parentConstraint. Interestingly, a 4x *decrease* of performance on my
4-core system.

Here you can see the infinitesimal effect parallel mode has.

Compared with DG mode…

Notice the small orange strokes on the other threads in parallel, this is
what they are:

My question to you is..

   1. What is a good example of parallelism amongst many nodes? (As opposed
   to parallelism in a single node, like a deformer)
   2. Is stepping through frames via cmds.currentTime a reliable metric for
   determining the effect of parallelism? What is better?
   3. If so, why is it faster without parallelism?
   4. Why doesn’t setting *all* node types to “untrusted” the same as
   evaluation=off?
   5. Can I instruct Maya to assign a series of nodes to a given core
   myself? E.g. if I know up-front that there are 4 independent hierarchies.

If found that with currentTime(update=False), their timings are all equal,
which is what I’d expect. Additionally, without refresh(suspend=True) the
timings are much higher and more similar, which I’d expect is due to the
small difference in parallelism getting lost in the much higher cost of
drawing.

I’m particularly interested in parallelism amongst multiple nodes, like
hierarchies of objects with lots of connections, like control rigs, and
less interested in parallelism within a single node.

In addition to examples, if anyone knows of any more references than the
ones below, please share.

Reference

   - Using Parallel Maya
   <http://download.autodesk.com/us/company/files/2018/UsingParallelMaya.html>
   - Cult of Rig
   
<https://www.riggingdojo.com/2015/10/22/blazing-fast-character-rigs-with-maya-2016/>
   - ?

Best,
Marcus
​

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOC8_z1c4fyBrpff42-D3GzdY1eGyG3r5b42ZAVXuT%3DNVQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to