How many threads...

…can a phenom II x4 940 handle?

I’ve been searching for a while and can’t seem to find the answer.

Amd doesn’t do hyperthreading, so it is simply the number of cores: 4

So is number 81 on this list a typo, is there an 8 core Phenom, or is a special mother board being used?

http://www.eofw.org/bench/

Its a 4 cores Phenom rendering with 8 threads selected in Blender.

How does selecting 8 threads when you have 4 affect the render time?

From my expirience it doesnt. You are better off selecting a higher number of x and y parts.

Then why is it set at 8 in the benchmark?

it can handle 8 threads. why is it set at 8, because your os tells it how many threads there are and blender seperates it into that many parts. it devides the screen/render by squar inches, pixel count, or what ever you want to call it. but the render sections aren’t all equal. the sections with more faces, shaders, etc… will take much longer to render that low face/ plain sections. so the easy thread will be done much faster than the comples thread. when a thread gets done with it’s work it sets idle, you are losing processing power. if you devide it up into many multiples, say 6 or more sections per thread then the project isn’t out of avalible work units. the thread that gets a simple, easy, fast section will start on another section rather than setting idle. you keep processing your render at max speed and use more of your processors power longer. instead of some of your threads sitting idle for minuets they are only idle for seconds. i downloaded a room with a table, some chairs, a picture on the wall, center peices on the table etc… .split horizontally by 2 it took 25 minuets to render. the top was a flat wall and rendered in about 4 minuets and then just sat there while the other core processed alone for 21 minuets. splitting the render vertically distributed the complexity more evenly and got the render down to 15 minuets, but one core still finished minuets earlier then sat idle. i increased the render section and it got faster, when i got it up to about 50 section the idle processor was only idle for a few seconds and the same processors rendered the same picture in 8 minuets and some seconds. perhaps blender should use multiples of cores as the default to prevent cores from setting idle and waiting for the more complex sections to render. say 6 sections per core.

but i do know it takes alot less time to increase the sections manually than to wait for the default. you can increase the sections in about 3 seconds and render 3X as fast. and i believe you can save render settings and make them your default cant you?

Seems like two different answers, now.

TBH I dont know what rdo3 is talking about.

There are threads and then there are x and y parts. Increasing x and y parts can sometimes dicrease your render time. Increasing threads past the number of your cores does not decrease render time. Besically 1 thread = 1 core. You can select to have more threads then cores but that doesnt dicrease your render time. If you select less threads then your number of cores your render time will be increased.

I don’t think it’s really a question of “how many threads can it handle.” Just about every program you use is going to be multithreaded - Firefox for me right now is using 25 threads for example. I would say that the processor itself would have the ability to run 4 threads simultaneously but there’s a few things you have to take into account. The OS is in charge of what threads get run at what times and how long they get to use the processor. So even if you use 4 rendering threads in Blender you have no guarantees that each thread will run on a different core, no guarantees of how much cpu time they get, when they are executed, etc etc. IIRC you can give a thread affinity for a specific core and that will increase the chance it gets run on that specific one, but I still don’t think you’re guaranteed anything. Modern OSes are pretty good at evening out the load anyhow.

So it’s kind of tricky. You can run however many threads you want basically but then each active thread will get less cpu time, and even if you only run 4 you have no way of knowing that it will work exactly as you’re planning it to. Still, I’d say to use the same number of threads as there are cores. Even with a lot of Intel processors. “I have an Intel processor so I can run 2x as many threads as cores” is not necessarily true. The Core/Core2 processors don’t even support hyperthreading afaik, but I think it’s back with i7

I think you gave the best answer. Either way, why would you need to know this? A Phenom II x4 940 should be able to handle (nearly) everything you throw at it unless you are intensively multitasking.

there was a rumor around here a while ago that render times were increased by putting the number of threads one higher than your number of cores, something about sending some data early or something. I think that the person who submitted that result believed this and added an extra thread for each core.

If you run linux putting the threads to your number of processors and setting the nice value to -20 or so will pretty much make it run exclusively, using all the cores as expected…

The number of threads should not exceed the number of cores.

However, you also must be certain that you have sufficient memory capacity to permit all of the threads to actually be doing useful work at the same time. Just as the strength of a chain is determined by its weakest link, the throughput of the system is determined by its most limiting bottleneck.

My advice is: do empirical tests. Start with two threads, launch a reasonably complex task, and time it. Bump to four threads and repeat. Do not exceed the number of cores.

If you have a CPU temperature monitor, observe it. (And if you don’t, “if you see smoke or smell something funny, turn it off.”)

That some good info. I was trying to decide whether I should get the phenom or the i7, and kept getting mixed results when it came to the number of thread the phenom could run. Thanks you all.