Perfmeter showing CPU as bottleneck, but its only at 10%

Not sure what the problem is, but im getting about 18fps on my core i7 920 + geforce 9600GT on a relatively simple patch and it says CPU with a green bar next to it as the bottleneck, even though its not even being used.

In a certain way, there’s always a bottleneck, whatever software you’re using. You should consider the bottleneck as a problem only if get low perf, ie low framerate. Otherwise do not worry.


Edit: Hei! Where those 18 fps were this morning? I’m gettin’ old…

vvvv is a single thread application, if you have 8 cores it can only use 12,5% of your overall power. have a look in the task manager if one of the cores is at full capacity.

oook…So V cant go any faster than a single core? Are there any plans to make it multithreaded, or gpu based?

I found a post that mentioned using args.txt with an /allowmultiple switch to create a pseudo multithread but i cant get more than one instance of V to open.

vvvv is already “GPU based” as long as you are able to write a shader that will do what you want it to do.

About multithreading, it is supported in vvvv but not for the same instance, that means that you can launch different instances of vvvv each one on a different thread, then possibly move data from one part to the other (this last part can be a pain in the bottleneck…)


EDIT: mandatory reading commandline parameters
EDIT2: the obscure spells of setprocessaffinitymask (windows)

So V will work to speed as long as i can write a shader? I’ll get my team of programmers right on that.

Well the allowmultiple switch isnt working so i guess that feature isnt going to help. Any other ideas?

Whch version are you on? What do you mean with

well, that a pretty simplistic way of looking at it but yes, also, get a new video card…

btw: greetings to your team of programmers…

Im using v45 beta 27. What do you mean what do you mean with? Its the command line switch in the first thing you linked to, its supposed to allow parallel instances to run so you can use more than one core.

I am not on Windows now but as far as I remember you launch vvvv with the /allowmultiple then every time you launch vvvv again it will launch a new instance, but to make it use each one a different thread you need to set the setprocessaffinitymask (windows).

The way I do multi instances of vvvv is like this… no command line arguments needed.

Just copy vvvv.exe and vvvv.exe.config with a new name, so you have in your vvvv_45beta27 folder:

vvvv1.exe (or whatever you want to name it)

Just make an additional copy for how ever many instances you want to run and you should be good to go. Just run the new exe and an additional instance of vvvv will start. You can then set the process affinity mask in the task manager by right clicking on the process.

Note that sharing textures with sharedmem is possible but slow on the CPU because of the AsVideo node. However, if you just need to send a spread of values or something, UDP works quite well.

This brings up the question… Would boygrouping be a good way to handle data transfer between instances?

@@jonferran i think that is the old way, i dug into some older thread and the proper way is:

also I don t think that at the moment you can t transfer data between different instances with Boygroupong since boygroup run on a single thread for each boygroup/pc.

In this thread you ll find a bunch of interesting infos:

Ok, i tried the renaming thing and it doesnt work, but it seems like this works:

So this only multithreads subpatches and whatnot? Cause im not sure running seperate instances of vvvv is supposed to do.

Oh wait, i see, so like AE cs5 spawns copies of itself in the background, V makes you do it manually and assign each one manually. Ah…

Interesting note, i turned off HT and V began distributing the load evenly across the cores (4), however once i used set processaffinity it locked it into one and wouldnt let go despite its removal.

Im not sure how windows factors its cores, but with 8 pseudo cores i was getting 12.5% usage and with 4 real cores im getting 30%, which makes sense except with HT it was showing only one pseudocore maxed out, which i would imagine would be half of what im getting now maxing out on real core. Either way framerate is still bad and i dont have anything to subpatch so i dont see how running multiple instances will help.

hei poof,

there may be a misconception: running multiple instances of vvvv is rather the exception than the rule. running multiple instances of vvvv has nothing to do with subpatches.

vvvv is mainly singlethreaded and all patches you build will run in one thread and therefore on one core. there are though some nodes that make use of threading, thats why sometimes you may see activity of vvvv on multiple cores.

you’re talking about a bad framerate but haven’t mentioned what you’re actually doing or trying to achieve. could either be you’re trying something that vvvv is not suited for or you’re doing it wrong. so maybe you want to give us some insight in your patchings…