discuss-gnuradio
[Top][All Lists]
Advanced

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

[Discuss-gnuradio] Announcing new scheduler for GNU Radio


From: Josh Blum
Subject: [Discuss-gnuradio] Announcing new scheduler for GNU Radio
Date: Wed, 17 Apr 2013 03:26:04 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4

Hey folks,

I have been working on a new scheduler for GNU Radio, called the GNU
Radio Advanced Scheduler (GRAS). GRAS is a complete re-write and
overhaul of the stock GNU Radio scheduler to implement new features,
performance enhancements, and a simplified user API. A new buffer and
threading model gives GRAS zero copy features, allowing integration of
DMA devices and seamless transition between stream and packet domains.
Here is the main project wiki page:

https://github.com/guruofquality/gras/wiki

Each feature has a mini-description on the Summary wiki with a link to
greater detail and code examples. I think there is something in this
project for everyone; whether you are into API design, models of
computation, concurrency mechanisms, zero-copy, data flow topology...

https://github.com/guruofquality/gras/wiki/Summary

Nobody gives a lick about features without the horsepower! I have
benchmarks on two PC variants: operton and i7. I am happy to report that
the features do indeed offer performance benefits, and that GRAS is up
to the challenge. The operton benchmarks look great, however I would
like to see better results on the i7.

https://github.com/guruofquality/gras/wiki/Benchmarks

Behind all of the GRAS fluff, the Theron C++ concurrency library is the
real scheduler; driving all of the work dispatching, threading, and
synchronization. I have to give a special thanks to Ashton Mason for
creating the Theron library. Both Theron and Ashton were a pleasure to
work with.

http://www.theron-library.com/

Whats next/whats in the queue for GRAS?

Characterization. I need to run the benchmark suite on more platforms to
get a better idea about how design decisions and trade-offs affect the
performance. And I will try to optimize some of the more troubled
benchmarks.

GR Wrapper. The current wrapper that makes the GNU Radio blocks work on
top of GRAS has seen a lot of development history. I plan to rewrite
this wrapper to be slimmer and to reuse as much code as possible; much
like the style of the new gnuradio-runtime component.

Theron. A new version of Theron (v6) is in the works, with runtime
selectable schedulers for different synchronization schemes, backoff
mechanisms, and work dispatching optimizations. My hope is that this
capability will allow users to easily optimize their applications for a
particular architecture.

Phew, that was a wordy email! Thoughts, feedback?

-josh



reply via email to

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