in reply to Child Process Management and Distributed Systems

Using remote shells is a common way to distribute tasks and possibly the least troublesome one, provided that your network consists of identical machines. Configuring your remote tasks can be interesting (for "frustrating" values of interesting) if you plan to run them across a heterogenous network.

I learned this the hard way while writing a POE based program to build testing environments and test software on several machines at once. They were selected to represent a wide spectrum of architectures and operating systems, which greatly complicated things.

You could also set up job servers on the machines where you want to run your analyses. A master control program could transmit jobs to them and receive back responses when jobs complete. If you're running this out of cron, the job servers could even send asynchronous replies by some other means (perhaps e-mail). POE's cookbook has two recipes for job daemons. One covers non-web application clients and servers. The other implements an interactive job server.

The cookbook also includes a few different ways to manage child processes. It should not be hard to adapt one of them to run tasks remotely.

-- Rocco Caputo

  • Comment on Re: Child Process Management and Distributed Systems