PDA

View Full Version : LW is not optimized to work with multiple CPUs?



Nitisara
03-28-2006, 07:11 AM
This is the CPUs usage for rendering test (moonbase.lws) without any image filters, shaders, displacements or whatever externally applied.
This test is done on double core Pentium D. Computer was not swapping, because memory was enough.
Here I can see that only small amount of time (red line) both CPUs were used. All the rest time (blue line) one CPU was almost idle, and another CPU was used, but not at 100%. There is even one place where both CPUs are idle (close to finish time, before final usage splash).
I would expect 100% load on both CPUs until render is finished, but this test looks very strange.

BeeVee
03-28-2006, 07:20 AM
Were you using the Perspective camera? That works a lot better on multithreaded rendering.

B

Nitisara
03-28-2006, 07:23 AM
Were you using the Perspective camera? That works a lot better on multithreaded rendering.

B
No Ben, this is LW 8.5 test.

gatibee
03-28-2006, 07:24 AM
As i hared. The Pentium D is not as good (not really optimized) dual core processor as X2 ..

BeeVee
03-28-2006, 07:27 AM
My mistake guys, sorry. Yes, under 8.5 the load is not so well-shared. In 9, there will be improvements to rendering.

B

Nitisara
03-28-2006, 07:33 AM
As i hared. The Pentium D is not as good (not really optimized) dual core processor as X2 ..
You have any information about that?

Nitisara
03-28-2006, 07:34 AM
My mistake guys, sorry. Yes, under 8.5 the load is not so well-shared. In 9, there will be improvements to rendering.

B
Sorry, maybe I should indicate "LW 8.5" in the topic title...
Now I corrected that.

gatibee
03-28-2006, 07:50 AM
Was looking for a link about the two architectures .. but did n`t fin anything useful. I remember reading about it that Intel just slapped two net burst processor on one silicon in non elegant way.. .

Sensei
03-28-2006, 09:34 AM
without any image filters, shaders, displacements or whatever externally applied.

These unfortunately definitely don't use multi-threading..


There is even one place where both CPUs are idle (close to finish time, before final usage splash).

That's probably waiting for some external event to happen (otherwise it's bug in LW).. Like disk usage, which is done by DMA instead of CPU.. Asynchronous loading data is very nice thing, but rarely used by programmers (some webbrowsers uses asynchronous downloading files - you can observe this by downloading any file using Save As.. and at the time you find right place for your file it's downloaded, and get very extraordinary transfers often more than possible on your networks, this is due not counting time spend by user on selecting target folder)..

pixelinfected
03-28-2006, 09:47 AM
i often use lw on dual processor computer, dual athlon, dual xeon and more.
and it use most of power of two processor if you setup 2 in multithreading, but you must remeber some thing :
- not all part of lw are optimized for multithreading
- most of 3d software not use all power in computing
- if you need to use all single power of processor, you must render with two instance of screamernet with net render, also if you work on single computer.

anyway, dual cpu are different from dual core intel, be cause one thing is advertising and one thing are real computing power, that involve memory access for every cpu, cache of every cpu, and many other things. is not simple putting two cpu in one box like intel seems to do...

for me, i prefer amd be cause is less expansive for power and speed offered. our renderfarm are amd based for this reason, i need more real power, not advertising or benchmark power.

Captain Obvious
03-28-2006, 12:17 PM
Did you remember to set the number of threads to 2 or more in the render options?

PeteF
03-28-2006, 01:33 PM
Working for me, threads set to 4 on dual xeon with HT:

http://www.newtek.com/forums/attachment.php?attachmentid=29623&stc=1&d=1143577804
ScreenShot001.jpg

billmi
05-13-2006, 04:00 PM
Mine is not so good.

I'm Running LW 7.5 (VT) on WinXP with dual 3.0 GHz Xeons. Whether I set threads to 4 or 8 (8 renders about 5% faster than 4 - odd as I would expect it to be the same or lower.) I've tried changing priority of the LW task, but I still end up with swapping positions back and forth with System Idle process, both ranging from 40 to 50%.

Is there something else I need to set to tell windows it's OK to give more of the time to LW? There's all this system idle time just there for the taking.

Sarford
05-13-2006, 04:15 PM
I must say I realy have no knowledge of this but wasn't it so that multithreading worked best (or only) on animations and not on single frames? Meaning every processor gets one frame of the animation to render and if you render just one frame only one processor is used regardless of multithreading settings?

I remeber this because someone used to cut-up his single-frame render using limited region so he could render one frame with multiple processors.

But maybe this was in an old version of LW and is solved now...

RedBull
05-13-2006, 04:35 PM
Have you tried different scenes?
I'm not sure but because you have dual xeons, 8 threads is most likely correct.
Generally, you should not need to tell it do do anything else.
Seems like all of them went half way....

Some scenes where more detail is prevalent in one half of the screen,
than the bottom half, will sometimes mean one (or two in your case)
will finish earlier than it should, i believe LW9 is better now that it's using the BSDTREE or KDTREE system.

But with my Dualcore X2, it works faster 99% of the time with 4 threads.
But i believe as mentioned the Intels dualcores are not as good at multithreading as the current X2's and Opterons...

lilrayray77
05-13-2006, 06:57 PM
I have a pentium D and I tryed the same seen. I also got the same usage results. What I noticed though, is that when the processors were at 100%, it was rendering geometry. Many things such as ypervoxels don't really use both cores.

billmi
05-13-2006, 07:18 PM
Regardless of the scene I'm rendering - it's rare for it to load over 50%. It's not a hyperthreading problem - as it's loading 50% on all four graphs - two processors, both hyperthreaded. It's just not loading them all the way. The scene I'm rendering at the moment, hits 85% for about 3 seconds at the start of each frame, and then it's in the 40s and barely over 50 the rest of the frame.

The machine is willing to do more, I can run other apps, and the CPU loading percentage goes up and idle process decreases - it's just Lightwave not taking advantage of all that is available to it, or Windows not letting it.

Nitisara
05-13-2006, 10:21 PM
I have found that if I use 4 threads when rendering on my double core CPU, it renders faster.
But anyway it is not 100% load of all CPUs.

mattclary
05-14-2006, 12:44 PM
wasn't it so that multithreading worked best (or only) on animations and not on single frames? Meaning every processor gets one frame of the animation to render and if you render just one frame only one processor is used regardless of multithreading settings?

I remeber this because someone used to cut-up his single-frame render using limited region so he could render one frame with multiple processors.

But maybe this was in an old version of LW and is solved now...

You CAN do that, but it is definitely not limited to that scenario. Multiple CPUs benefit lightwave hugely, for stills or otherwise.

Skonk
05-14-2006, 03:28 PM
When your rendering with multiple threads the image is split into sections vertically and each section rendered in a different thread, the issue is this...

Lets say you set threads to 2, so the top half is rendered on 1 cpu the bottom half is rendered on another cpu, if the top half of the image contains elements that render slow, such as reflections/refractions or some heavily layered up sufaces, and the bottom half contains stuff that renders pretty quick, like basic surfacing, no reflections etc then the bottom half will finnish rendering much quicker than the top, so the second cpu will go idle while it waits for the first cpu to finnish rendering the top half.

Its not easy to ever get the load to balance out in this situation.

RedBull
05-14-2006, 05:17 PM
Yeah also because LW9 uses a BSDTree or KDTree i believe
it should handle the verticle strip problem a little better.
There are also enhanced threading stuff in the LW9SDK.

LilRay,
I must say for Volumetrics Hypervoxels and Taiki for eg, ReliefMapping(shader)
that having an X2 is a huge benefit in LW.... They are multithreaded.
Generally all my scenes are most often pegged to 100%, for both processes.

Nitsara....

When youtest your own Glassworks plugin....
Does it use 100% of both processers, when rendering?
I tried it on my X2, it's 100% from beginning to end....