Thu, Nov 28, 3:54 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 28 11:20 am)



Subject: How many Threads


basicwiz ( ) posted Fri, 09 October 2009 at 2:11 PM · edited Tue, 26 November 2024 at 8:15 AM

 now that I have a multi-core processor that actually works, comes the question: How Many Threads.

I've seen two schools of thought here. The first says "One thread for each core" which makes perfect sense to me. The second says "Two Threads per core."

What is the rationalle behind the second school of thought?


Propschick ( ) posted Fri, 09 October 2009 at 2:17 PM

I do one per core

Ever stop to think, and forget to start again?

 


seachnasaigh ( ) posted Fri, 09 October 2009 at 3:12 PM

Probably the intent is to utilize hyperthreading, in which the idle paths of a core are used to run a second thread.  Your processor must be hyperthread capable to do this.  I don't think this will work well in rendering, however.  Hyperthreading works well for running dissimilar threads, but two render threads would both want the same core pathways, so I don't think you would gain much speed.  Further, the extra threads each demand a share of the available RAM, and that is significant if you use a 32bit OS.

On my 32bit boxes, I will render four threads on a quad core if the scene is light to moderate in pixel dimensions and complexity.  If I need to render a wallpaper, I will set it to render two threads so as to allow each thread more memory.

On the 64bit machines, I'll run all the cores I have, hyperthreaded.  I made a 2560x1600 pixel wallpaper (final quality settings, ray-traced shadows) of my Ghostbuster proton pack this morning, and Galadriel pulled 9.3Gb!

Poser 12, in feet.  

OSes:  Win7Prox64, Win7Ultx64

Silo Pro 2.5.6 64bit, Vue Infinite 2014.7, Genetica 4.0 Studio, UV Mapper Pro, UV Layout Pro, PhotoImpact X3, GIF Animator 5


Propschick ( ) posted Fri, 09 October 2009 at 3:18 PM

Huh I'm on 64 bit i should try that

Ever stop to think, and forget to start again?

 


seachnasaigh ( ) posted Fri, 09 October 2009 at 3:40 PM · edited Fri, 09 October 2009 at 3:46 PM

Quote - Huh I'm on 64 bit i should try that

  I'm picturing your avatar asking "I can has hyperthreading?"  {:

Well, it depends on whether your processor is hyperthreaded.  Mine is a Core i7.  See how many threads are offered in Poser (edit/general preferences/render).  It should show eight if you have a hyperthreaded quad core processor.  Bear in mind that the hyperthreads only get the leftovers (idle core pathways);  so a hyperthread will only run about half as fast as a dedicated core thread. 

I have both Poser Pro and Poser 8 concurrently installed on Pixie and Galadriel.  Poser 8 has greater effective capacity on a 64bit machine, even though each thread is limited to a maximum 32bit allotment of memory, because the computer can afford to give each thread the maximum 32bit RAM allocation.  On a 32bit machine, the entire computer has only 4Gb at most, so the threads and the housecleaning processes must divide up a limited pie.

I'll render with P8 if it can handle the task;  if the render needs huge amounts of RAM, I'll use Poser Pro, being sure to render in separate process so as to specify the 64bit render engine.
  Poser Pro has both a 32bit and a 64bit render engine;  if you click the little camera-shaped "render" button, it will by default use the 32bit renderer.

Poser 12, in feet.  

OSes:  Win7Prox64, Win7Ultx64

Silo Pro 2.5.6 64bit, Vue Infinite 2014.7, Genetica 4.0 Studio, UV Mapper Pro, UV Layout Pro, PhotoImpact X3, GIF Animator 5


bagginsbill ( ) posted Fri, 09 October 2009 at 3:43 PM

Two threads per core is not about hyperthreading. It's about I/O.

When a render thread needs data from the disk, it is idle and doing nothing. When you put two threads to work sharing a core, then when one is waiting for stuff from disk and the other isn't, the other makes progress. One thread per core usually cannot make progress 100% of the time. Two threads are more likely to do so. If both have work to do and are not waiting for I/O, then they each run half speed, but 2 times 1/2 = 1 anyway.

I worked for a company that did massive multi-processing, with all sorts of combinations of cores, hyperthreads, and multiple processors. The general rule was pretty consistent - optimal overall performance is 2 threads per executable core.

In a 4-core machine with hyper-threading, that's like 8 cores, so you should use 16 threads.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


seachnasaigh ( ) posted Fri, 09 October 2009 at 4:03 PM · edited Fri, 09 October 2009 at 4:04 PM

file_440932.png

> Quote - In a 4-core machine with hyper-threading, that's like 8 cores, so you should use 16 threads.

I thought a 4-core (not H/T) would only offer 4 threads, and a H/T quad would offer 8.  That's not a typo?  So, with a H/T Quad, I should run 16 threads in P8?

Poser 12, in feet.  

OSes:  Win7Prox64, Win7Ultx64

Silo Pro 2.5.6 64bit, Vue Infinite 2014.7, Genetica 4.0 Studio, UV Mapper Pro, UV Layout Pro, PhotoImpact X3, GIF Animator 5


bagginsbill ( ) posted Fri, 09 October 2009 at 4:22 PM

Yes. Try it.

Do a texture-intensive render with 4, 8, and 16 threads and see what you get for timings.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


seachnasaigh ( ) posted Fri, 09 October 2009 at 4:26 PM

Already begun!  Thank you, bagginsbill. :D

Poser 12, in feet.  

OSes:  Win7Prox64, Win7Ultx64

Silo Pro 2.5.6 64bit, Vue Infinite 2014.7, Genetica 4.0 Studio, UV Mapper Pro, UV Layout Pro, PhotoImpact X3, GIF Animator 5


Anthanasius ( ) posted Fri, 09 October 2009 at 4:38 PM

ffrender allocate 4 threads by default ... If in the render settings you chose 4 threads when the render ffrender use 8 threads, if you chose 16 in the render settings, ffrender use 20 threads ...

Génération mobiles Le Forum / Le Site

 


Anthanasius ( ) posted Fri, 09 October 2009 at 4:40 PM

Ive made some test with the same scene ... Phenom x4 9650 8Go DDR2

16 t = 4m04
8 t  = 4m03
4t = 3m53

Same time for a simple scene ... Is there nothing to jump to the ceilling !

Génération mobiles Le Forum / Le Site

 


Winterclaw ( ) posted Fri, 09 October 2009 at 6:30 PM

Is any of this possible in Poser 7?  The most it will let me use is 4 threads.

WARK!

Thus Spoketh Winterclaw: a blog about a Winterclaw who speaks from time to time.

 

(using Poser Pro 2014 SR3, on 64 bit Win 7, poser units are inches.)


aeilkema ( ) posted Fri, 09 October 2009 at 6:32 PM

Quote - Ive made some test with the same scene ... Phenom x4 9650 8Go DDR2

16 t = 4m04
8 t  = 4m03
4t = 3m53

Same time for a simple scene ... Is there nothing to jump to the ceilling !

I'm getting the same results. Setting the number of threads in Poser 8 the same as the number of actual cores, gives the best results.

Artwork and 3DToons items, create the perfect place for you toon and other figures!

http://www.renderosity.com/mod/bcs/index.php?vendor=23722

Due to the childish TOS changes, I'm not allowed to link to my other products outside of Rendo anymore :(

Food for thought.....
https://www.youtube.com/watch?v=pYZw0dfLmLk


basicwiz ( ) posted Fri, 09 October 2009 at 6:50 PM

 Same results here. Threads=cores gives me the best results, even on complex scenes.


vholf ( ) posted Fri, 09 October 2009 at 11:47 PM

 Same here, best results when using Threads=cores setup. For complex scenes the diffrence is not much, but for simpler scenes it was 60% faster.


Anthanasius ( ) posted Sat, 10 October 2009 at 2:57 AM

Quote - Is any of this possible in Poser 7?  The most it will let me use is 4 threads.

P7 and PPro can use 4 threads max

Génération mobiles Le Forum / Le Site

 


bagginsbill ( ) posted Sat, 10 October 2009 at 7:52 AM

For simpler scenes 1 thread per core is fastest because there's no overhead of context switching between threads. This is not news. If, however, you have a rendering thread waiting for disk I/O, in a scene with lots of large textures, then doubling the threads can help.

When I say lots of textures, I mean at least 30 texture files at 4K by 4K each. A simple room or a couple of figures isn't going to meet that requirement.

Basically, watch your task manager, if you're not at 100% CPU across all cores, use more threads. If you are at 100% with 1 thread per core, then you have the entire scene in memory, by definition in this context a "simple" scene, and adding more threads will slow it down slightly.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Winterclaw ( ) posted Sat, 10 October 2009 at 1:53 PM

Alright, thanks Anthansius.

WARK!

Thus Spoketh Winterclaw: a blog about a Winterclaw who speaks from time to time.

 

(using Poser Pro 2014 SR3, on 64 bit Win 7, poser units are inches.)


seachnasaigh ( ) posted Sat, 10 October 2009 at 2:25 PM

bagginsbill: > Quote - For simpler scenes 1 thread per core is fastest because there's no overhead of context switching between threads. This is not news. If, however, you have a rendering thread waiting for disk I/O, in a scene with lots of large textures, then doubling the threads can help.

When I say lots of textures, I mean at least 30 texture files at 4K by 4K each. A simple room or a couple of figures isn't going to meet that requirement.

Basically, watch your task manager, if you're not at 100% CPU across all cores, use more threads. If you are at 100% with 1 thread per core, then you have the entire scene in memory, by definition in this context a "simple" scene, and adding more threads will slow it down slightly.

I had a Vista gadget open showing % load for RAM and each core, and my tests confirm this. 

Note, I was using complex materials in the test scene.  

Running four threads on a Core i7 quad processor, each core would periodically cycle between 100% and idle. 

Running eight threads, each core stayed at/near 100% with only occasional momentary dips to about 75%.

Running sixteen threads also kept the cores busy, but it didn't result in a faster render time.   I tried an even more complex scene, but P8 ran out of memory trying to render it at 2560x1600 pixels at final quality settings with ray-traced shadows and IDL.  P7 also failed at that size frequently.  In such cases, I use Poser Pro.

Poser 12, in feet.  

OSes:  Win7Prox64, Win7Ultx64

Silo Pro 2.5.6 64bit, Vue Infinite 2014.7, Genetica 4.0 Studio, UV Mapper Pro, UV Layout Pro, PhotoImpact X3, GIF Animator 5


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.