Vegas Multi-threaded? I don't believe it.

kirkdickinson wrote on 4/28/2003, 2:03 PM
I have seen posted here several times that the new Vegas is Multi-threaded. My experiments just don't bear out that claim.

From my testing, I am seeing slightly slower render times in V4 than I did in VV3. I have a dual Xeon 2.4 with HT turned on.

There is a thread two months old with different render times for the rendertest (vv3). Comparing speed with one render test, and with two at a time, with HT turned on and off.

http://www.sonicfoundry.com/forums/ShowMessage.asp?ForumID=4&MessageID=160987

My cursory testings with V4 hold true to those tests except V4 is about 2-4 seconds slower than V3.

If V4 were multi-threaded, and I have 4 virtual processors, then there should be a significant jump between VV3 and V4 on the rendertest. I am just not seeing that. I only have to assume that V4 is NOT multithreaded.

If the editing part of Vegas is multithreaded, that is well and good, but really doesn't help me speed up anything.

I think is would be a fairly simple programming task to automatically break up the timeline into 2 or 4 processes and render each of them separately at the same time. If you were rendering an hour video, why can't Vegas split it up into 4 15 minute sections, spin off 4 separate threads and then stitch 4 temp files back together into one rendered file after the render is complete. That would potentially double (or more) render times on dual processor HT systems.

Could that be done with a plugin? Satish?

Kirk

Comments

jsteehl wrote on 4/29/2003, 9:41 AM
Kirk,

A couple things to clear up. When you talk MT you must seperate the core application funtionality/UI from the rendering engine. Sofo does not claim to have a MT application (if they do maybe you can point me to that info). Sofo never claimed to support HT or Multi-Threaded renders. Just because you read posts in the forumn does not make it so. There is an option in the Options->Perfs->General Tab to enable/disable multi-threaded AVI rendering. YMMV.

I believe you are talking about MPEG1/2 rendering. V4 uses the MainConcept encoder for that. The version used by V4 does not support HT (maybe it will in the future). You can purchase the 1.3 version Mainconcept encoder and use it externally from V4 and that does support HT. Or use another encoder like CCE and frameserver (or not) using the fantastic Satish plugin.

Lastly... " think is would be a fairly simple programming task to automatically break up the timeline into 2 or 4 processes and render each of them separately at the same time" ... as someone who does this type of developement for a living it is obvious you never have. My guess is that Sofo will eventually upgrade V4 to use the newer MC encoder and take advantage of their development which is the reason why Sofo licenses the MC encoder in the first place. Hope this helps.

-Jason
vicmilt wrote on 4/29/2003, 11:38 AM
Hyper Threading ?
Believe it. VV4 is optimized for the new Intel technology.

http://www.sonicfoundry.com/news/ShowRelease.asp?ReleaseID=514
SonyDennis wrote on 4/29/2003, 1:29 PM
Jason:

Well said.

Vegas is multithreaded. However, just having multiple threads does not mean you're going to get 100% CPU utilization on a multiprocessor machine (or on a pseudo-SMP machine like Intel's HyperThreading architecture). The reason for this is that the threads are usually synchronized together or coupled in some fashion if they are working on the same job. For a vastly simplified example, when Vegas renders, the audio and video are being calculated by separate threads. However, since audio is usually much quicker to render, it sits idle waiting for the video before the results can be interleaved together for final output. While there are many naive ways one can try to slice up the rendering job to reduce thread coupling, most of them are wrought with holes. For example, in the suggested example of rendering two separate sections of the timeline, how would it pick the split point so that both threads stay busy for the whole job? What if one finished before the other? How do you plan on stiching the output file together properly (the technique would be different for every format)? Often, even if threads can be decoupled, they are vying for shared resources and common data files, and during times of contention, your processor utilization will fall.

It's a tricker problem that you'd guess. We'll continue to make improvements in this area. Our goals have always been to make it work well before making it work fast. Some other companies have gone the other way around, and it shows.

///d@
kirkdickinson wrote on 4/29/2003, 2:07 PM
Ok, Jason, I may not know whereof I speak programming wise.

What would prevent me from doing the same thing manually to get faster render times. If I took an hour project in V4 and found chapter point near the center of the timeline. Deleted everything after that and saved it as "Part A", then opened the original and deleted everything before the chapter point and saved it as "Part B", then start two separate projects to rendering. There are multiple shareware programs for joining MPEG's, (Ordix Mpack) so I could join them back together or place the two separate parts separately into DVDArchitech.

I haven't tried that yet, but I have a 70 minute project and I might just see how difficult it is to do, and see if it actually increases my render times on a Dual HT Xeon.

Kirk
kirkdickinson wrote on 4/29/2003, 2:20 PM
Dennis,

OK, I guess it is more complicated than I thought. But I know from my testing of running the two instances of Vegas and rendering two of the render tests at the same time that I get nearly 100%. Two tests only take about 3-4 seconds longer to do than one.

If they don't finish at the same time, what is the biggie? I know it would be better to get both processors going full blast the whole time, but if one finished a few minutes early, so what? If splitting an 5 hour rendering job up and it renders in 3 instead of 5, you still have done it 2 hours faster.

I appreciate that Vegas is very stable and don't really have any complaints with it. I just think it could/should render faster.

Kirk
SVoBa wrote on 4/29/2003, 6:48 PM
What OS are you running?

Regardless of the OS, if your BIOS allows you to turn off the HT, do that (you'll now see only two physical Xeon processors, instead of four) and re-run your ad hoc test. You should see an improvement.

--svb
kirkdickinson wrote on 4/29/2003, 10:10 PM
SVB,

Yeah, I have played with turning the HT on and off. I am running XPPro.

Running a single render test, HT on or off makes only one second difference. (longer with HT)

For two tests at the same time:

HT off. 2:06 and 2:05 (vv3)
HT on. 2:16 and 2:15 (vv3)

HT on. 2:27 and 2:26 (v4)

Seems like the HT is eating up extra cycles trying to manage extra virtual cpus.

Vegas 4 has been slightly slower in the render test compared to Vegas Video 3.

Kirk
SVoBa wrote on 4/30/2003, 3:16 AM
Don't know the inside of VV4 (vs. VV3) to say why it is slower. Purely speculation on my part, how much memory you have in the system may affect the outcome.

It's accepted conventional wisdom that there are cases where running with HT turned on will result in poorer performance. Since you have dual-Xeon, look at the Performance tab of the Task Manager during your test rendering. Are both processors (with HT turned off) maxed out at 100%?

--svb
bowman01 wrote on 4/30/2003, 3:38 AM
Does windows xp pro support 4 processors? my version doesn't, 2 processors only- do you have to get a special license?

This may have some influence on windows threading with too many processors...

kirkdickinson wrote on 4/30/2003, 8:54 AM
SVB,

Running two tests at the same time,

HT off. CPU usage 100%
HT on. CPU usage 54%

That doesn't seem to be correct. The physical processors are working just as hard, so the 54% can't be accurate.

Kirk
SVoBa wrote on 4/30/2003, 9:36 AM
The two HT logical processors do not count toward the license limit imposed by Windows XP. Only the two physical processors do.

--svb
SVoBa wrote on 4/30/2003, 9:47 AM
Turning on HT is not the same as having a Quad-MP system (in your case).

OT...

The physical and logical processors (in each CPU package) share a number of resources (e.g. cache) such that in cases like this they have to wait in turn for each other in order to do their own work. IOW, they are not working in parallel as you'd have imagined they ought to. Hence you saw roughly 54% CPU utilization.

Now, if at the same time you were to perform other tasks like editing your Word document, the system MAY bump the CPU utilization a tad more, but that's not guaranteed in all cases.

The bottom line, HT is nice but YMMV.

--svb