I do not have any experience with the Perl interface, but do use pvm, specifically pvmgmake. It cut our build times down by 500%.
One of its aims is to be hetrogenous, so yes it runs on the major OS's (including windows).
Your question about the main executable is a good one. I have no idea. One would think so...
I agree that it looks like you need to design your application with pvm in mind, but this looks to be unavoidable. I cannot conceive of a general way to add parallelism after the fact: how the spawned processes synchronisation be completely general?
I would be surprised if pvm is not still active (their website is still updated):
Not sure about the Perl interface.
Thanks for all of your points. I'm thinking about this now...
Re: pvm in mind... well, the synchronization aspects that I've had to done so far have been trivial. For instance, all I've done is 'close enough' synchronization. If I'm stress testing a network connection that is going to take an hour to run, taking 3 seconds to synchronize, that may be ok. For synchronizing per host, an ini file per run will allow for multiple processing with individual arguments... (The last statement was hard. If you have two hosts and you want one host to have one argument and another host to have another argument, a paramaters file which allows you to specify what host get what argument is an attempt to do this...)
Btw, the link in the perldoc for pvm was broken... i notified the autor...