Question - Affinity for VRD

JMRDV

Member
Is there any way to permanently set the affinity for Videoredo?

I am running windows 7 (64 bit) with a i7-K875 cpu. I know I can set it using task manager on an as used basis but wondered if there was another way. At times on this pc, VRD uses 98% of available cpu availability. Ram (16gb) is not a problem.

thanks
jon
 

Danr

Administrator
Staff member
@jon, There's a function that would let us do that. Never tried it and it has some security restrictions. Will give it a try here and see if we can enable it. While not a lot of call for it in VRD, some of our professional server products run on large 24-32 core servers and being able to automatically restrict our recoding engine to just a few cores would be nice.

However, I'm of the belief that lowering the priority of VRD would be more beneficial as it would allow us to utilize the full capacity of the system when it would be otherwise idle. With processor affinity that's not possible, as any cores not assigned to VRD will remain idle.
 

JMRDV

Member
DanR _ if you have something you want me to try them i am game. I agree with your belief but affinity was the only thing I could think of.
Pat - thanks for your help as well

jon
 

jmc

Active member
Is there any way to permanently set the affinity for Videoredo?

I am running windows 7 (64 bit) with a i7-K875 cpu. I know I can set it using task manager on an as used basis but wondered if there was another way. At times on this pc, VRD uses 98% of available cpu availability. Ram (16gb) is not a problem. thanks jon
I've never done this but maybe it will be of use to you...

http://www.dansdata.com/io119.htm
---------------------------------------Part of article...
Answer:
There are standalone utilities that let you set the priority and affinity of particular processes whenever you run them, but
you can also just use the command-line START command.

Among START's numerous options (open a command window and type "start /?" to see them all) is affinity-setting. If you
want to restrict, say, Notepad to only run on CPU 2, you could type

start /affinity 4 c:\windows\notepad

To make this a point-and-click operation, you'd make a shortcut to the program you want to run, then go to the shortcut's
properties and change the "target" line to have start /affinity et cetera at the beginning of it. (Remember to put quotes
around the target statement when there are spaces in it.)

The only tricky part of this is why CPU 2 equals /affinity 4. It's because the number you put there is actually hexadecimal - the hex value of a "binary mask" that identifies each CPU.
--------------------------------------------------------

jmc
 

Danr

Administrator
Staff member
@jmc, Great find, didn't know about that. For those interested in trying it here are some mask values:

1 Core = 1
2 Cores = 3
3 Cores = 7
4 Cores = F (F hex = 15 decimal).

Note, that these aren't unique values. For example, you can one on a single core it by specifying any single bit number:

1 Core = 1, 2, 4, 8, 10 (hex for 16), etc.

This also highlights the problem and/or benefits with SetAffinity. If you have 2 processes both locked to Core 1, then they share that core, regardless if the other cores are idle.

Also, be careful with hyperthreaded CPUs like the Core I7. While they show 8 cores there are really only 4 execution cores. I'm not sure how processor affinity maps those 8 hyper cores to 4 execution cores.
 

JMRDV

Member
Hmmm - searches found all kinds of simple programs - Prio, project lasso and more. I have a lot of reading to do and then will start experimenting. I have an i7 cpu and need to at least try to understand much more before I screw up the works. Then again - if I figure this out then anything is possible, - maybe I can indeed go un-bald again.

cheers
jon
 
Top Bottom