discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] CPU Affinity vs Hier Blocks


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] CPU Affinity vs Hier Blocks
Date: Mon, 10 Nov 2014 14:39:05 -0500

On Tue, Oct 28, 2014 at 1:51 PM, Iain Young, G7III <address@hidden> wrote:
Hi Folks,

A quick question on CPU affinity when using hier blocks. I can set the
affinity in each of the blocks that makes up the heir block, but I can
also set it once I instantiate my hier block in my main flowgraph.

Anyone know the behaviour in this case ? If I leave all the blocks
within the heir block with no CPU affinity defined, will they inherit
what I configure in the heir block itself ?

If I put a CPU affinity on those blocks within the heir block, I guess
that would be honoured over what I configure for the hier block itself ?

Can anyone confirm ? I'm doing some multiple frequency RX, with
identical receive chains, which I'd like to put into a hier block, thus
simplifying my main flowgraph, but keep all processing for that chain on
one CPU


Iain

Iain,

No, right now, when the hier_block affinity value is set, it forces all blocks within it to that value for the processor affinity. The individual settings on blocks do not supersede this setting. Part of the reason is how this stuff is managed inside of the hier_block and basic_block classes and how hier_blocks are represented as structures internally. There's some work we'd like to pursue in future releases that would make this representation easier to work with that should allow for better control of these settings. I think that what you want to do is the "right" way to handle things. If a block inside a hier_block does not have the affinity set, inherit it from the hier_block; otherwise, ignore the hier_block's setting and use the locally-set value.

Keep in mind, though, that the use of the affinity value is experimental in the sense that we don't have a full understanding of what it's going to do on your system. The default scheduling of threads might be the best thing for you and the flowgraph, or setting the affinity might be a really good thing if you do it properly. It's really hard to say. A main motivation for creating the ability to set this value was partly so that we had the option of exploring this space, especially as we predict an increasing number of cores made available to us as well as heterogeneous CPUs where hand-tuning becomes more interesting and possibly more useful.

Tom


reply via email to

[Prev in Thread] Current Thread [Next in Thread]