|
From: | Anh Duc Nguyen |
Subject: | Re: [Discuss-gnuradio] gnuradio dataflow, buffering and scheduling |
Date: | Thu, 24 Jul 2014 10:22:41 +0700 |
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: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.
>Could you please provide me with some relevant or supplement readings to >that presentation? I would grateful for it.
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> 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> 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 address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |