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:
To check out the MP-aware version do:
Check out and build boost 1.35 as described above, then
$ export LD_LIBRARY_PATH=/opt/boost_1_35_0/lib
$ cd mp-sched
$ ./configure --with-boost=/opt/boost_1_35_0
$ 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:
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.