Wed, Dec 25, 11:24 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Dec 23 7:38 pm)



Subject: Poser7 / Poser 7Pro : a note about multiple threads


mask2 ( ) posted Mon, 23 June 2008 at 7:46 AM · edited Wed, 25 December 2024 at 11:07 AM

Hello,
I have Poser 7 and tested the "Render Process Options"

My first was idea: dual core CPU = set the number of threads to 2.

That seems correct, but if You also select "render in a separate process", then to load both cores during rendering we should set the number of threads to 3.
indeed, one will be used by poser.exe and the other two by FFRender.exe who takes care of the rendering in the separate process...

I dunno if with poser pro one should raise the number of threads to 4 (could poserpro.exe load both cores?)

Would You agree on my maths?
Thanks for the reply


mask2 ( ) posted Mon, 23 June 2008 at 7:58 AM

...well I just to need a little side note for myself ;-)

I have 4 Gb RAM, that's why I elected to "render in a separate process"...
at that point, on my 32bit XP I can use more RAM than would have if did not.

However, one may still want to keep the number of threads to 2 and not raise it to 3 if, like me, You want to do something else while You wait for the render (watch a movie, browse the web) without having the PC stagger too much.


adp001 ( ) posted Mon, 23 June 2008 at 8:42 AM

However, one may still want to keep the number of threads to 2 and not raise it to 3 if, like me, You want to do something else while You wait for the render (watch a movie, browse the web) without having the PC stagger too much.

Perhaps you may like to try Poser with Linux/Wine as I do (runs perfectly well out of the box with Ubuntu Hardy here if the latest Ubuntu-Updates are installed).
I'm able to construct new toys with my Cinema 4D while Poser renders large pictures.




jfbeute ( ) posted Mon, 23 June 2008 at 10:09 AM

I don't understand this as threads is normally expressed per process, so rendering in a separate process would create a new process and use the number of threads as indicated. Since Poser itself only uses 1 thread unless it is rendering this entire discussion would only be about the number of threads as used during rendering, so to use it as you indicate you should set the number of threads to 1. Using 1 core flat out for rendering and having the other available for other tasks, although the process isn't fixed to a single core and swaps around between cores but it shouldn't actually load the system for more than about 60%.


mask2 ( ) posted Mon, 23 June 2008 at 10:11 AM

Quote - (runs perfectly well out of the box with Ubuntu Hardy here if the latest Ubuntu-Updates are installed).

Hey thanks for the hint!
in my office I got a couple of friends using Ubuntu, I am asking them if they're willing to share some info on how to install it on my PC !


mask2 ( ) posted Mon, 23 June 2008 at 10:17 AM · edited Mon, 23 June 2008 at 10:17 AM

Quote - I don't understand this as threads is normally expressed per process

well indeed it's strange for me as well, but I have noticed that, since I marked the "render in a separate process", the two core won't work at full capacity:
number of threads = 2 then FFRender.exe gets up to 56% of CPU time
so I changed and
number of threads = 3 then FFRender.exe gets up to 98% of CPU time

if I disable "render in a separate process", then poser.exe is able to take up to 98% with a number of threads = 2


Dizzi ( ) posted Tue, 24 June 2008 at 3:58 AM · edited Tue, 24 June 2008 at 3:58 AM

Quote -
That seems correct, but if You also select "render in a separate process", then to load both cores during rendering we should set the number of threads to 3.

I don't know how you get to this conclusion, but as the number of threads just refers to the number of threads used by the rendering engine, there's no change neede when changing from internal rendering to "render in a separate process".

Of course more than 2 threads may work faster, depending on the scene, because Poser assigns the render buckets to a process at the beginning of the render instead of doing it dynamically, but that has nothing to do with using "render in separate process".



jfbeute ( ) posted Tue, 24 June 2008 at 5:18 AM

Apparently the Poser programmers have tried to be clever and reserved 1 thread for the fore-ground Poser when running the renderer in a separate process.

Some people have reported problems with running the renderer as a separate process, maybe these people had set the number of threads to 1 and thus confused the renderer.

The manual is of course clear as mud on this issue, it simply states that number of threads is at maximum 4 and should always be set to 4 regardless of the number of cores. This might not be the best advise when running the renderer as a separate process. If you want to do anything else on your computer you should set the number of threads to the number of actual cores (this will leave one core available for other tasks). It also means that running as a separate process on a 4 core machine can never use all 4 cores for rendering.

As usual the Poser developers have chosen their own idea of thread handling over the usual standards.


Dizzi ( ) posted Tue, 24 June 2008 at 11:29 AM

I don't see any difference in core usage using the internal or external renderer.



bagginsbill ( ) posted Tue, 24 June 2008 at 1:46 PM

"If you want to do anything else on your computer you should set the number of threads to the number of actual cores (this will leave one core available for other tasks). It also means that running as a separate process on a 4 core machine can never use all 4 cores for rendering."

Well that's one approach, but not ideal in my opinion.

First of all, if you want to have other programs remain more responsive during flat-out rendering, all you have to do is decrease Poser's priority. Go into Task Manager and right-click the poser renderer process (whichever you're using). Then select "Set Priority" and "BelowNormal". Once you do this, Poser will immediately give up control of the CPU if any other process (such as your browser) needs it, because all your other programs will have "Normal" priority by default. But if your system would otherwise be idle, then Poser will get 100% of the CPU cores that are available. This is much better than trying to give equal priority to all processes.

Second, even if you have only two cores, you should set Poser to use 4 threads. The reason is that Poser is a little bit stupid. Suppose you launch a render that has very easy stuff in the upper half, but very difficult reflection+refraction+AO in the lower half (like where your shiny floor is, or a lake or whatever - it is very common to have a harder time with the bottom half.) If you use only two threads, one will work on the upper half and finish very quickly, then stupidly go to sleep. The second thread, working on the bottom half, will continue for hours without any help from the first thread.

But if you use 4 threads, the top gets 2 and the bottom gets 2. The top 2 will finish early and go to sleep. But the bottom 2 will keep cranking away, using your 2 cores nearly 100%, and finish the bottom half of the image in half the time.

I always render with 4 threads on my dual-core machines.
 


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)


bagginsbill ( ) posted Tue, 24 June 2008 at 1:49 PM · edited Tue, 24 June 2008 at 1:49 PM

file_408899.jpg

Here's a typical example. Using 4 threads, the top half finished in about 3 minutes, while the bottom half continued to work for 10 more minutes. If I had only 2 threads, the bottom would have taken closer to 20 more minutes.


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)


mask2 ( ) posted Tue, 24 June 2008 at 2:22 PM

Quote - Here's a typical example. Using 4 threads, the top half finished in about 3 minutes, while the bottom half continued to work for 10 more minutes. If I had only 2 threads, the bottom would have taken closer to 20 more minutes.

Thank You!
I see Your point... that's an important addition to the discussion


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.