[Top][All Lists]

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

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

From: Mostafa Alizadeh
Subject: Re: [Discuss-gnuradio] gnuradio dataflow, buffering and scheduling
Date: Thu, 24 Jul 2014 19:32:02 +0330

Hello all, 
Yeah, I also think this topic is interesting to find out this vague and unclear scheduler! I'm waiting for further discussions. 


On Thu, Jul 24, 2014 at 5:50 PM, Leonardo S. Cardoso <address@hidden> wrote:
Hello everyone,

I've been asking the same questions as Anh, since we have a PhD student working on dataflow programming, specifically for GNU Radio. 

I think this discussion can benefit a lot of people who work with dataflow, but also the rest of us, who just want to understand what's going on under the hood.

Maybe, one day we can compile all questions and answers into a nice formatted document that will serve as a reference for the rest of us... :)

Best regards,


Leonardo S. Cardoso

On Thu, Jul 24, 2014 at 3:55 PM, Tom Rondeau <address@hidden> wrote:
On Thu, Jul 24, 2014 at 2:56 AM, Marcus Müller <address@hidden> wrote:

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 :)


It does sound interesting, and Nathan West pointed out a good place to start researching this. I agree with Marcus to keep the questions coming. However, I would add that it would be better served for all of us here if you had very focused questions that we could talk about. Open ended questions like "how does the scheduler work" would require a lot of time to construct an answer; time that very few of us have. But a conversation like this done with the right questions could eventually turn into a nice set of discussion topics that could then be turned into something more substantive for others looking at the same questions.


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. Greetings, Marcus [1] http://gsoc.hostalia.de/posts/a-measurement-toolbox-for-gnu-radio-my-google-summer-of-code-project.html#evaluating-block-performance
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: http://www.trondeau.com/storage/tutorial/gr_scheduler_overview.pdf
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 list

Discuss-gnuradio mailing list

reply via email to

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