in reply to Run commands in parallel
I've got an elaborate version of this tied up in the vault for my Linux Magazine column. I prefork a bunch of children, then essentially do a remote procedure call on them, passing arbitary (well, Storable) data to and from the kids. Kids can also request additional tasks be queued.
I say "in the vault" because it was published last month in the magazine, but I can't put it on my website for another two months. So, keep checking back!