Thursday, March 31, 2011

Anti-parallel computing with Java

I did a lecture today on fork/join parallelism using the JSR 166 fork/join framework.  As an example, I parallelized merge sort in the obvious way and got some decent performance improvements:

Here's the speedups for increasing numbers of elements for the 2-way and 4-way cases:

This was on an Intel Core 2 Quad Q6600.  The sequential data is measuring the time to call the built-in Collections.sort(), which is an optimized quick sort implementation.

Overall, the implementation took about 25 minutes, much of which was consumed with figuring out that the ForkJoinPool class's execute() method doesn't wait for the top-level task to complete.  (I should probably go back and read Doug Lea's book.)

Not bad for a language whose programming paradigm is anti-parallel by its very nature!

Saturday, March 26, 2011

GNOME 3 - lots of gratuitous changes in store!

Jon Corbet (the guy behind has written an interesting (and disturbing!) preview of Gnome 3.

Suffice it to say that the Gnome UI folks are radically changing the way pretty much everything works, regardless of how current users feel about the changes, in the name of making the UI more "intuitive" for "novice users".  Yes...just like KDE did with KDE 4.

I have only two comments:
  • My 3 year old likes GNOME just the way it is, thank you.  I guess he's not a typical novice user.
  • Thank $DIETY for XFCE and LXDE.