[Top][All Lists]

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

Re: [Discuss-gnuradio] gnuradio dataflow, buffering and scheduling

From: Marcus Müller
Subject: Re: [Discuss-gnuradio] gnuradio dataflow, buffering and scheduling
Date: Thu, 24 Jul 2014 08:56:48 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

On 24.07.2014 05:22, Anh Duc Nguyen wrote:
To be honest, I am studying software structures/platform for software
defined radio (SDR), of which, the scheduler is one of the most crucial
that I wish to analyze in detail; and in turn, gnuradio scheduler for sure
draws much of my attention due to it success and popularity. I hope I could
receive more support and help from you all
That sounds really interesting! I think there will be lots of interest in that, so keep the questions coming :)


With best regards,
Nguyen Anh Duc

On Thu, Jul 24, 2014 at 12:51 AM, Marcus Müller <address@hidden>

 Hi Anh,
in addition to what Nathan explained very nicely, I'd like to point out
that the GNU Radio scheduler is not a static thing, it's actively being
worked on. Whilst the buffer architecture dates back quite a while, things
like message passing and the associated asynchronous communication between
blocks are fairly new. Also, you have to realize that there were several
approaches to scheduling of GNU Radio blocks over the time -- right now, it
seems that GNU Radio has largely settled for the Thread-Per-Block
scheduler, that  has one block_executors per block that itself runs in a
thread of its own.

You asked:

Could you please provide me with some relevant or supplement readings to
that presentation? I would grateful for it.
I think since you have your very own level of understanding, your very own
background in data processing and scheduling, and your very own interest in
details, there will be no way around reading at least block_executor and
some of the tpb_ stuff in detail, with a big piece of paper/whiteboard at
hand and trying to understand these concepts yourself.
Although scheduling is always a bit of a convoluted task, I find the
thread-per-block architecture fairly understandable, and the idea of blocks
notifying their neighbors' threads when they have finished filling/reading
a buffer quite intuitive. The details, however, like how the scheduler
keeps record of the flowgraph, how GNU Radio allocates and manages the
circular buffers, and what happens when you reconfigure a graph, are so
specific, that it's hard to write a text about it that is shorter or
easier to understand for the skilled reader than the code itself.
I'm afraid that's the reason that only Tom (and maybe, in very simplifying
attempts, some GSoC student[1]) has written relevant details on that.

That being said, "Explain what the scheduler does, so that beginners
understand it and experts get an in-depth comprehension" has been on the
"GNU Radio needs this" list for as long as I've been meddling with GNU
Radio -- and that's really not because no one else had this problem, but
because it is a hard thing to understand and a harder thing to textually
represent correctly.


but that barely scratches the subject

On 23.07.2014 18:37, Anh Duc Nguyen wrote:

Thank Vanush,

I have read this presentation already; unfortunately, I found it rather
hard to draw an overall picture of gnuradio scheduler to some extent of
details. Perhaps, as Tom said on his webpage (http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html)
the scheduler is the most mysterious and complicated part of gnuradio - not
easy to digest it

Could you please provide me with some relevant or supplement readings to
that presentation? I would grateful for it.
My first intuitive question is that since each signal processing block does
require both input and output buffers, then it may cause the source-sink
latency to be significantly large. Is this true and is there any design
analysis on this?

With best regards,

Nguyen Anh Duc

On Wed, Jul 23, 2014 at 10:08 AM, Vanush Vaswani <address@hidden> <address@hidden> wrote:


On Wed, Jul 23, 2014 at 2:32 AM, Anh Duc Nguyen <address@hidden> <address@hidden> wrote:

 Dear all,

I wish to study how gnuradio handles the dataflow,e.g., buffering,
scheduling, synchronization, optimization as well as resultant latency in
detail. However, I can not find any material that explain such things
clearly. Could you please point me to direct or indirect resources e.g., in
literature which present I need. I would appreciate it much,

With best regards,

Nguyen Anh Duc

Discuss-gnuradio mailing address@hidden://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Discuss-gnuradio mailing address@hidden://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Discuss-gnuradio mailing list

reply via email to

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