tpar

simple, parallel job scheduling

http://github.com/bgamari/tpar/

Latest on Hackage:0.1.0.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Ben Gamari
Maintained by [email protected]

tpar is a simple job scheduling and dispatch service for distributing and monitoring tasks across machines. It was written to serve as a simple and easy-to-administer substitute for systems like Grid Engine.

Configuring a tpar instance is simply a matter of running tpar server on a designated server machine,

$ # We'll need to know the hostname of the server
$ hostname
my-server
$ # Start a server also running 8 local workers
$ tpar server -Hmy-server -N8

Submitting a job is then similarly easy,

$ tpar enqueue -Hhostname -- long-process arg1 arg2

One can then enqueue jobs easily

$ tpar enqueue -Hmy-server -- bash -c "primes 10000000000  | head -n1"
$ tpar status -v
0     unnamed-job                                        finished
priority:       0
queued:         1 seconds ago
command:        bash
arguments:      -c primes 10000000000  | head -n1
logging:        stdout: none
stderr: none
status:         finished with 0 (at 1 seconds ago)
started at 1 seconds ago
ran on nid://localhost:5757:0

One can add more workers to help churn through the work queue using the tpar worker command,

$ # Add 16 more workers running on another machine
$ ssh my-workers -- tpar worker -Hmy-server -N16

Finally, the output of running jobs can be monitored using the tpar watch command,

$ tpar watch id=0