Out of curiosity I've peeked around at the Brazil support forum and stumbled upon this rather odd statement of Steve Blackmon, programmer of Brazil :
I hope Greg Hess (or someone else) has some time to do some more testing on HT, as according Steve, there would be cases that rendertimes would increase with Vray. I'd like to know what these conditions would be, or is this just to cover up that Brazil does not support HT as good as Vray?
Hyperthreading is a very mixed bag. In general, an application that is memory access bound when it comes to performance is going to suffer from use of hyperthreading, as multiple threads are now running on 1-cpu, sharing caches. In an application that was designed based on having 1-thread having complete control of the execution unit, this will pretty much destroy a lot of optimization work. It is extremely difficult to keep modern cpu's 'fed', and cpu manufacturers have worked extra hard to keep them fed, by implementing multiple cache levels and code branch prediction so that when a cpu needs something, it doesn't have to read it from main memory which requires going out to the external bus and is VERY costly in terms of performance. Hyperthreading makes it nearly impossible to tune an application to consistently take advantage of these features.
Brazil being a complex application that has been tuned extensively, hyperthreading may slow things down, or it may result in some speed increase, depending on what it happens to be rendering, and how many features are in use, etc. There are also other issues besides memory access and cache performance, for example thread 'spin-locks' behave differently in a hyperthreaded environment. Spin-locks are basically what you do to a thread that you don't want to destroy, but isn't really processing anything. Brazil spin-locks threads in several places (this is common for the master controlling thread, which is waiting for the threads doing the real work to finish.)
In my opinion, hypertheading needs to be gotten out of the bios, and into a software configurable state before I could ever recommend it to anyone. That way it's a simple matter to try it on a case by case basis.
Intel seems to advertise hyperthreading as some magic bullet, but it isn't, the issues are deep and complex when running a properly threaded application in a hyperthreaded environment. It's an interesting trick, but in the end Caveat Emptor...it may not be all it's advertised to be.
_________________
Steve Blackmon, SplutterFish
Brazil being a complex application that has been tuned extensively, hyperthreading may slow things down, or it may result in some speed increase, depending on what it happens to be rendering, and how many features are in use, etc. There are also other issues besides memory access and cache performance, for example thread 'spin-locks' behave differently in a hyperthreaded environment. Spin-locks are basically what you do to a thread that you don't want to destroy, but isn't really processing anything. Brazil spin-locks threads in several places (this is common for the master controlling thread, which is waiting for the threads doing the real work to finish.)
In my opinion, hypertheading needs to be gotten out of the bios, and into a software configurable state before I could ever recommend it to anyone. That way it's a simple matter to try it on a case by case basis.
Intel seems to advertise hyperthreading as some magic bullet, but it isn't, the issues are deep and complex when running a properly threaded application in a hyperthreaded environment. It's an interesting trick, but in the end Caveat Emptor...it may not be all it's advertised to be.
_________________
Steve Blackmon, SplutterFish
I hope Greg Hess (or someone else) has some time to do some more testing on HT, as according Steve, there would be cases that rendertimes would increase with Vray. I'd like to know what these conditions would be, or is this just to cover up that Brazil does not support HT as good as Vray?