Multi-processor scheduler now available for testing

I’ve checked in an SMP-aware scheduler and would love folks to start
testing with it. I’m seeing good scaling performance when running it
on multiprocessor/multicore systems. On a dual-quad-core Xeon, there
are cases where I get 7.9 times improvement in performance over the
earlier scheduler. I’ll post some graphs later.

The only hiccup in building it, is that it requires boost 1.35 or
later. This takes about 5 minutes to build, and the old and new boost
versions can coexist peacefully. Directions on building boost here:
http://gnuradio.org/trac/browser/gnuradio/branches/features/mp-sched/README.building-boost-1.35

To check out the MP-aware version do:

$ svn co http://gnuradio.org/svn/gnuradio/branches/features/mp-sched

Check out and build boost 1.35 as described above, then

$ export LD_LIBRARY_PATH=/opt/boost_1_35_0/lib

$ cd mp-sched
$ ./bootstrap
$ ./configure --with-boost=/opt/boost_1_35_0
$ make
$ make check
$ sudo make install

The code contains both the old single-threaded-scheduler (STS) and the
new thread-per-block (TPB) scheduler. By default you’ll get the TPB
scheduler. If you want to do A:B testing, you can select the
scheduler by setting the GR_SCHEDULER environment variable like so:

$ GR_SCHEDULER=TPB

or

$ GR_SCHEDULER=STS

Have fun and please let me know if you run into any snafus.
There was a fair amount of build system hacking, and it’s possible
that I may have damaged non-Linux builds accidentally.

Eric

On Thu, Jul 17, 2008 at 07:55:29AM -0700, Eric B. wrote:

I’ve checked in an SMP-aware scheduler and would love folks to start
testing with it. I’m seeing good scaling performance when running it
on multiprocessor/multicore systems. On a dual-quad-core Xeon, there
are cases where I get 7.9 times improvement in performance over the
earlier scheduler. I’ll post some graphs later.

In my excitement (ooh, ooh, it’s working!) I forgot to mention that
^C handling is not fully sorted out in the feature branch. If you try
^C and nothing happens, switch to ^. I’ll let you know when there’s
a proper fix.

Eric

On Thu, Jul 17, 2008 at 01:34:45PM -0700, Eric B. wrote:

a proper fix.
Fixed in r8928.

Eric

On Fri, Jul 18, 2008 at 08:17:33AM +0200, Dominik A. wrote:

Hi Eric!

Very nice work! I have run the synthetic benchmark program on our machine.
The scaling is wonderful. It is running almost 8x faster.

If you like, I can send you some reports.

Dominik

I’d love to have them. If you’ve got them with the -m option, that’s
even better. Please be sure to send along a description of the
machine it’s running on.

Thanks!
Eric

Hi Eric!

Very nice work! I have run the synthetic benchmark program on our
machine. The scaling is wonderful. It is running almost 8x faster.

If you like, I can send you some reports.

Dominik

OSX 10.5.4, XCode 3.0 (gcc 4.0.1), using MacPorts for all
requirements. I can send specific versions of requirements upon
request.

From the checked out branch:

% mkdir build_all
% cd build_all
% …/configure
[snip]
checking for guile… /opt/local/bin/guile
checking for boost >= 1.35… yes
checking whether the Boost::Thread library is available… yes
checking whether the Boost::Date_Time library is available… yes
configure: error: Could not link against !

On Fri, Jul 18, 2008 at 03:46:42PM -0400, Michael D. wrote:

checking for boost >= 1.35… yes
checking whether the Boost::Thread library is available… yes
checking whether the Boost::Date_Time library is available… yes
configure: error: Could not link against !

Michael,

Where is boost 1.35 installed on your system?
What’s the path to the include directory and the lib directory?

Eric

On Thu, 2008-07-17 at 07:55 -0700, Eric B. wrote:

I’ve checked in an SMP-aware scheduler and would love folks to start
testing with it. I’m seeing good scaling performance when running it

mp-sched cross compiles to the ps3 ok. You have to build boost 1.35 on
the ps3 (does not take long) and add it to the cross compile configure:

./configure-cell-cross --prefix=/mnt/share/cell-install-mp
–with-boost=/mnt/cell-root/opt/boost_1_35_0

Have not tested other than play the fm radio :wink:

–Chuck

On Fri, Jul 18, 2008 at 05:27:50PM -0400, Charles S. wrote:

Have not tested other than play the fm radio :wink:

–Chuck

Thanks for the data point!

Eric