Renderer needs to be multithreaded

Post Reply
CSharpner

Renderer needs to be multithreaded

Post by CSharpner »

I just upgraded my PC to a Pentium Prescot (?SP?) 3Ghz CPU. Windows sees this hyperthreading CPU as two CPUs and shows two CPU graphs in Task Manager. While Cool3D is doing a time consuming rendering of a DV file, I can see in the CPU graphs that only one of the CPUs is being utilized. Only a total of 53% of total CPU capacity is being utilized (nearly 100% of one and only about 6% of the other). This makes my upgrade pointless (my prior CPU was a 1.5Ghz). I'm getting an effective 1.5Ghz renderer.

It would be nice if the renderer spun off multiple threads (or allow me the option of setting the number of threads (LightWave 3D does this). Windows would automatically load balance the threads across the CPUs and I'd be getting my money's worth out of both my CPU and ULead.

I don't really have a question... just a request for cranking off multiple threads during the rendering.
thecoalman

Post by thecoalman »

It's still utilizing 100% of the CPU. Turn off hyperthreading in your bios, you may see a slight increase in performance but not much.
CSharpner

CPU Usage

Post by CSharpner »

If I turn off hyperthreading, and only get a small performance increase... what is that other 47% of CPU usage that's not being used? Can the software not use that?

How can it be claimed that 100% of the CPU is used when Task Manager clearly shows only 53%? Is Task Manager wrong?

I fully admit that I don't know what HyperThreading really is, but I do know simple math :D
CSharpner

Hyperthreading

Post by CSharpner »

Well, I've just done some research and HyperThreading is indeed what I thought it was... basically, 2 CPUs housed in one ceramic casing:

http://arstechnica.com/articles/paedia/ ... ars/1?9070

My original concern is true: The Cool 3D renderer is only rendering in ONE thread. As such, the other processor is not being utilized, so 50% of my processing power is going to waste. 100% of the CPU in a HyperThreading processor is most definitely [i[not[/i] being used... only 50%, at best. If they simply cranked off another thread, the OS would load balance that thread to the other CPU and both CPU graphs in Task Manager would show a high percentage of usage and the rendering would get done in 1/2 the time.[/i]

Request to ULead: Please add multithreading to your renderer.

Thanks
thecoalman

Post by thecoalman »

No, I also don't know much about it. that. But your getting full utilization of the CPU. As I said before go into your bios and turn off hyperthreading, you will probably only see a slight increase in performance.

By slight I mean if it takes 1 minute with hyperthreding enabled you might get a 2 or 3 second boost. I've done some comparisons with HT on and off for video encoding and disabling it increases performance. Seems that the app has to utilize the HT technology to make a difference.
CSharpner

Hyperthreading

Post by CSharpner »

It is most definitely NOT getting full utilization of the CPU. That's what I'm trying to explain. Since the renderer is running in a single thread, the other CPU isn't being utilized at all. That means It's only using 50% of what it could be using. If they modified the rendering code to spawn two threads, instead of one, then one thread would run on CPU 0 and the other on CPU 1. We'd see nearly a 2 fold increase in speed.

Check out ULead Video Studio 8. When rendering, both CPUs are being almost completely utilized. I'm getting between 87% and 98% usage. As such, I'm noticing a huge improvement on my 3Ghz Hyperthreading machine compared to my 1.5Ghz non hyperthreaded machine. Video Studio 8 is multithreaded. Cool 3D is not. VS8 is utilizing nearly 100% of the CPU. Cool 3D is utilizing 50%.

When Task Manager says 53% CPU usage, it means 53%, not 100%.

But, you are right, the app does indeed have to utilize hyperthreading technology to take advantage of it. That's why Cool3D doesn't use 100% of the CPU. It could by spawning more than one thread. It doesn't have to be explicitly "hyperthreading aware". It only has to spawn multiple threads. If it did what VS8 does, then it'd be utilizing 100%. As of now, it's only utilizing about 50%.
thecoalman

Re: Hyperthreading

Post by thecoalman »

CSharpner wrote:
When Task Manager says 53% CPU usage, it means 53%, not 100%.
From my uderstanding it is using 100%. Here's how I understand it.

You have a single processor, HT allows XP to see it as two processors but can't exceed 50% because it's only one. What this does is improves performance when multitasking when running multiple threads since it can work on different threads simultaneously.

When you see only one logical processor using only 50% and the other is at 0 it is in fact using 100% of the processor since the other logical processor isn't utilizing any processing power.

As I said before try turning off HT in your bios which will show the higher % in the graph and you'll see that you probably only get a slight improvement in performance.

Now if you run 3-d and VS8 at the same time with HT enabled you should see a noticeable increase in perfomance compared to with it disabled.

This is not say that 3-d couldn't bebefit from using HT but I don't think your going to see a huge spike in perfomance.
CSharpner

Hyperthreading

Post by CSharpner »

Sounds like a good explanation to me. I'll have to try rendering in 3D Studio with and without it to see for sure. I would expect 1 of 2 things:

1. It runs at half the speed (an effective 1.5Ghz processor).
2. It runs about the same speed, give or take a percentage or two.

I'm leaning in expectation of your explanation (2) to be right. I now have HT turned off and will do a rendering. I will report my findings.
CSharpner

Hyperthreading

Post by CSharpner »

I just thought of a 3rd plausible outcome:

3. With HT off, I get an effective 3Ghz rendering speed and with it on I get an effect 6Ghz using VS8.

I'll have to do the rendering on my old 1.5Ghz PC to test that one.
OinkyPig

Post by OinkyPig »

Some further input in this discussion.
I am using a P4 2.6C HT CPU, when I render using a non-optimised application, I would normally hit abt 50% CPU utlization with HT turned on.

E.g. COOL3D abt 50%
Vegas Movie Studio 50% (sorry I do not have VS8 as a comparison)
Using both applications at the same time hit about 76%

BUT if I were to write click on the process (using task manager) and set the priority for both exe files to be highest (just a grade lower than realtime),
COOL3D abt 76%
VSM 70%

Both running 98~100% utilization.

In both cases HT is enabled.

So when I am doing video editing, I tend to close everything and assign the highest priority to the application for CPU utilization to be highest.

Cheers
Post Reply