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.
