How to Optimize Graphs evaluation?

   916   2   1
User Avatar
Member
2 posts
Joined: Feb. 2017
Offline
Hi Guys,

I wanted to start a general topic about Optimization of Tools. I am not new to houdini i've made a couple of tools in last few years, and know my way around graph and nodes, and i've been learning VEX for some time and know how to use it to solve things that im not able with nodes. Sorry for long introduction.

The issue that im having from time to time is that the more complex each my tool is the longer it takes the graph to evaluate and thus making the tools to be non-interactive and user friendly. (Long time cooking)
Some small tools like fence and pipe generator and such don't have this issue bcz well they are very light.

So my question is:
Is it possible for Sesi or anybody here on forum to make a video or a collection of videos purely on this topic? I know there is a lot of information scattered around (HDA creation, Vex, compilable Sops, performance manager etc etc) but most of the videos are focusing on a specific problem in a specific setup. Im thinking of more of like a general approach in a way like "whenever you have this kind of situation, do this instead of that it will cook faster."

Or maybe like a sheet of which nodes are slow (Attr transfer, Ray) which ones are compilable and which ones are not, and what could be their alternatives and such?
What techniques should be avoided? when to split a tool into 2 separate ones? Multithreading, which evaluations are
faster on OpenCL etc etc?

The new Feather tools seem like a very good example of some brutal optimization, where a lot of evaluation is happening on GPU and probably a lot of C++ in the background to achieve fast interactivity in the viewport.

Also im not sure if some of these issues will be solved with the new APEX system or not?
I know that this is a very big topic and probably a very general question, but im sure a lot of people would benefit from
having all information in one place, and knowing what to look out for when making a setup.

Hope this makes sense?
Cheers!
User Avatar
Member
4723 posts
Joined: Feb. 2012
Online
Hi,

Optimization is a very vast area to cover generically and there is no one size fits all approach. It's on a case by case basis.

I cover such workflows and thought processes in my VEX course and while some of the techniques are generic, most of them are only applicable to the problem at hand.

Over time you will build up a mental library you can draw from but it takes time.
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
7887 posts
Joined: July 2005
Offline
While APEX is another tool in the arsenal of weapons, it's not a magic bullet.

My first thought is that someone should write a book! But then the problem is that the information in it will be out of date by the time it gets released because the performance bottlenecks are constantly changing as the software improves, hardware changes, etc.

With that said, some random thoughts (as someone who has no time for any of these things ):
- A video on how to use the Performance monitor so one learns HOW to optimize might be useful
- A tutorial on how to use the Cache If SOP in HDAs. It can also include material on how SOP cooking generally works and cover time dependency.
- A living wiki of sorts for techniques as they change. Maybe old techniques could remain provided they could be tagged that they're obsolete as of some particular Houdini version. The C++ Core Guidelines [github.com] has an interesting approach where they curate a single markdown document [github.com] and people submit pull requests.
  • Quick Links