I have a long-running batch job that I would like to speed up.
Currently it uses only one CPU and the server I have in mind for this
has 16 cores, and I want to take advantage of them.

I'm thinking one of three possibilities:

1. JRuby, where the threads are native OS threads
2. A message queue (e.g. ActiveMQ + Stomp), where worker threads run
as separate processes, thus using all cores.
3. A MapReduce implementation (e.g. hadoop)

I would like to see if anyone has gone down this road and can weigh in
on these options.

-- Mark.