Blender Multiple Cores usage

Hello,

Actually cant find an answer on this one.
I’m planning to buy a new computer. To accelerate Rendering I will definitely go for a Multicore 4 or 8 Core Machine. BUT: Does Blender use all those cores during work, say if youre working on reeeally high poly models or doing some Fluid or Cloth calculation. I’m asking it because if its not it would be wiser to order a computer with a higher CPU Frequency and maybe just 4 Cores. If yes The 8 Cores with maybe a lower Frequency would be a better choice.

Thanks in advance
silentpolygon

I know for a fact the fluids use multi threading in official builds,
and afaik so should cloth(not sure about soft bodies, but I’d guess so).

but otherwise, for simple modeling work, I don’t think more than one core would be utilized.

Also I’m not sure but I’d guess image/texture baking might be using multiple cores,
all in all though, multi core’s definitely the way to go.

yet don’t forget memory. :wink:

Thanks for answering. I just go for 6GB of RAM. should be enough for my needs.

You will also need a 64bit Operating System to take advantage of all 6gigs of RAM. With a 32bit operating system you will have access to only about 3.5gigs.

Look forward to blender 2.49 and 2.5, all is multi threaded than.
I have an 2.5 build and it is nice to render a big file during you still working on the mesh.

By, mib

I saw the video on YouTube with the multithreaded interface. Very cool. In fact the machine im looking for IS 64Bit and also a 64Bit Os(OSX).

So in 2.5 the overall UI should be faster than on Multicoresystems right?

would the whole UI not just use 1 core though, so if you had 2, 4 or 6 cores there may not be such a noticeable difference between 4 and 6 until you start rendering…

The UI use the GPU, but the daily work, AO baking, Softbodys and working with VSE are boosted up if you have a multicore.
AO baking with 8 Cores, Uhaa.:smiley:

By mib

960 cores?! How much must this thing cost?

More cores are better than more frequency. I often find myself setting up a render then going on to work on something else while Blender renders in the background. One thing Blender is good at is “sharing cpus”. You can assign 4-cores to render your first project then go on and open up Blender again and you still have more cores left to actually work and model and what not.

Last week I bought the Mac Pro 2.26 8-core. Today I tested it with rendering some files of the BBB DVD.
I was surprised to see that my CPU usage never came above 50%. I think it has something to do with Blender only using 8 cores at max while the 8-core of the Nehalem Mac Pro will be seen as 16 cores. A bit disappointing, I can now only use half the render power, 8 threads are doing nothing. :no:

The question is… can I expect this to be fixed any time soon?

What about Radi? How many cores does that use?

For rendering in blender I have heard that there is not necessarily a lot of difference between say 4 and 8 cores, once you get to 5-7 threads the overhead of each thread (and its memory usage) makes rendering with more then 8 threads not so useful.

This is also because each thread needs to access data from large chunks of memory, you dont get the advantage from CPU cache as much.

@Linkeltje, compare your rendertime with this 8 core maschines:
http://www.eofw.org/bench/
If you are not under the first 30, something is wrong.

By mib

Yes, something is not how it is ment to be. I made a sceen capture of the 16 CPU threads working on Blender Bench. You can see never more then eight threads are active at the same time. Blender uses only 50% CPU power of this multi core computer.

Am I too fast with my conclusions? Any sollutions?

http://www.meren.net/BlenderBench%20Half%20only%20half%20CPU%20works.png

I also own the same new gen Mac Pro. The Mac Pro has only 8 separate cores, through 2x Quad Core chipsets. The reason why you see 16-cores in your activity monitor is that these new processors support ‘Hyperthreading’. This turns each of your 8 cores into 2 virtual cores, becoming 16-total. This is a very basic explanation and you can find more detailed info if you google ‘hyperthreading’ or read the documentation that came with your computer.

Back to Blender. In OSX (I’m not sure what it’s like on other OS’s) Blender is limited to using 8 cores. So no matter the number you have on your machine, Blender will only use 8 at any one time. I’ve tried rendering 2 different scenes at the same time and then the activity monitor did show 100% processor usage. So if there’s no solution to the 8-core limit, you can at least try and render as much as you can!

Hope that answers a little of your problem. You’re not alone :slight_smile:

Your description is much better then mine was. Hopefully Blender will support 16 threads in the future. Otherwise I might have been clearly better of with the 2.93Ghz quad Mac Pro, which cores Blender will use 100%.

Well, I’m not too sad about it right now, this machine is still so much faster than my 8,5 year old PC. And I guess it’s only a matter of time until we can use it the way it is meant to be.

What about disabling Hyperthreading (now SMT) for Blender. This should result in 8 full Cores instead of 16 Half-Cores. 8 Cores is more than enough for anything and Blender could utilize full cores than instead of half ones.
BTW, would like to have one of the new MACs too.

I can’t find a way to disable hyperthreading right now. Maybe the new version of OS X (Snow Leopard) will make this possible. But I might have missed something, as I’m only a Mac user for just one week.

Fairly sure that the way HyperThreading works does not make your Core half as good for a single thread.
Assuming you have 1, 1core HT CPU,
It just shows to the OS that you have 2 CPU’s, but if you run a single threaded app, It will still make full use of this CPU (rather then having it idle half the time).
The OS monitoring tools dont know this and make out your only using half your CPU’s.

An OS uses threads to do more things at the same time, so pretending you have more cores then you do can stop processes from blocking your system and give you a more responsive PC instead of waiting for network or hard disk responses.
Even though the OS should manage threading on a single core, aparently HyperThreading does some tricks better then the OS.

Could be good if someone who knows more about these details could comment. :slight_smile: