Wednesday, July 23, 2014

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

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

Greetings,
Marcus
    With best regards,  Nguyen Anh Duc      On Thu, Jul 24, 2014 at 12:51 AM, Marcus Müller <marcus.mueller@ettus.com>  wrote:    
 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 <vanush@gmail.com> <vanush@gmail.com> wrote:       http://www.trondeau.com/storage/tutorial/gr_scheduler_overview.pdf      On Wed, Jul 23, 2014 at 2:32 AM, Anh Duc Nguyen <ducna80@gmail.com> <ducna80@gmail.com> 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 listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio        _______________________________________________  Discuss-gnuradio mailing listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio        
  


_______________________________________________  Discuss-gnuradio mailing list  Discuss-gnuradio@gnu.org  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio  

No comments:

Post a Comment