A while back I did a tiny experiment to see how hyper-threading affects performance in Houdini. The places I’ve worked at all have different opinions about HT, some have it enabled on their machines, some don’t; but I’ve been wanting to try this out and finally got the chance.
**Update** See the bottom of the thread for additional info.
The scenarios aren’t very extensive, but I tested two types of geometry cooking (VDBs, and Copy-stamped deformation), and rendering with Mantra. The tests involved an excellent scan of a dark reef crab from threedscans.
For the first SOP test, I setup a copy-stamp test where the crab model is twisted, and copied onto each point of a sphere. The sphere has 42 points, so the copy stamp does a unique twist of the crab on each point and ends up generating 44,973,810 points and 89,947,452 primitives.
The other cooking test involved VDBs. The crab is rasterized into a level set, unioned with an SDF Test Pig model, and then the resulting grid is smoothed a bit. The voxel size is 0.0015.
These two tests seemed to represent single-threaded cooking (Copy-stamped Twist) and multi-threaded cooking (VDB operations), which are both prevelant when working in Houdini.
For the rendering test, I rendered the crab several times as a Packed Disk Primitive, around a sphere. There is an Area light (grid) and a Sphere light which has the mandril.rat as a texture.
The tests were run on a single socket pc, with an 8c/16t Intel E5-2670 Xeon and 16GB of DDR3 RAM. The CPU runs at 2.6Ghz, but has a Max Turbo frequency of 3.3Ghz (relevant for more single-threaded operations). The tests used Houdini 15.5.632.
To test with Hyper-Threading turned off, I rebooted to the BIOS and turned off HT manually. This was to make sure only 8 threads were being used on the 8 cores.
Copy Stamp - 46.64s with HT on, 43.17s with HT off
VDB - 7.9s with HT on, 9.16s with HT off
Mantra - 78s with HT on, 110s with HT off
I wasn’t actually expecting a lot of differences, especially since these tests are quite basic, but there was a difference. It seems that thread-heavy operations do benefit from having Hyper-Threading turned on, while single-threaded operations are slightly slower. And inversely, with HT off, the single-threaded cooks were a bit faster, and the mult-threaded jobs were slightly slower.
As indicated above, these tests aren’t particularly comprehensive, but served to give an indication of how hyper-threading affects performance. It’d be interesting to take more time, and with a larger variety of systems, to see what the results would be. It would also be interesting to see how HT affects a production scene, with lots of assets, all being accessed over a network.
Personally, I keep HT turned on, but I’m glad I finally got around to testing and seeing the effects, even on very simple and contrived scenes.
Jason on odForce generously shared his experiences from HT tests: http://forums.odforce.net/topic/28961-tiny-hyperthreading-experiment/#comment-164289