It might be better at some point to move it to the mp layer, and persist the threads from call to call.  Then you'll avoid the startup costs for calling the slaves - although I suspect it is swamped in this case by the communication overhead.