tpar-0.1.0.0: tpar.cabal
name: tpar
version: 0.1.0.0
synopsis: simple, parallel job scheduling
description:
@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 -H`hostname` -- 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
@
homepage: http://github.com/bgamari/tpar
license: BSD3
license-file: LICENSE
author: Ben Gamari
maintainer: bgamari@gmail.com
copyright: (c) 2014-2016 Ben Gamari <bgamari@gmail.com>
category: System
build-type: Simple
homepage: http://github.com/bgamari/tpar/
bug-reports: http://github.com/bgamari/tpar/issues
cabal-version: >=1.10
extra-source-files:
README.mkd
source-repository head
location: git://github.com/bgamari/tpar
type: git
executable tpar
main-is: Main.hs
other-modules: TPar.Server
TPar.Server.Types
TPar.JobMatch
TPar.ProcessPipe
TPar.SubPubStream
TPar.Rpc
TPar.Types
TPar.Utils
other-extensions: DeriveGeneric
build-depends: base >=4.5 && <4.10,
ghc-prim,
binary >=0.7 && <0.9,
bytestring >=0.10 && <0.11,
containers >= 0.5 && < 0.6,
errors >=2.0 && <2.2,
transformers >=0.3 && <0.6,
exceptions >= 0.8 && < 0.9,
async >=2.0 && <2.2,
stm >=2.4 && <2.5,
time >=1.6 && <1.7,
friendly-time >=0.4 && <0.5,
process >=1.1 && <1.5,
pipes >=4.0 && <4.3,
pipes-bytestring >=2.0 && <2.2,
pipes-safe >= 2.2 && < 2.3,
pipes-concurrency,
optparse-applicative >= 0.10 && <0.13,
distributed-process >= 0.6 && <0.7,
network-transport-tcp >= 0.4,
network >= 2.4 && < 2.7,
heaps >= 0.3 && < 0.4,
ansi-wl-pprint >= 0.6 && < 0.7,
trifecta >= 1.5 && < 1.7,
parsers >= 0.12 && < 0.13,
aeson >= 0.11 && < 0.12
default-language: Haskell2010
ghc-options: -threaded -rtsopts -Wall
test-suite test
type: exitcode-stdio-1.0
main-is: Test.hs
other-modules: TPar.SubPubStream.Test
default-language: Haskell2010
build-depends: base >=4.5 && <4.10,
binary,
stm,
containers,
transformers,
distributed-process,
network-transport-inmemory,
exceptions,
pipes,
QuickCheck
benchmark bench
type: exitcode-stdio-1.0
main-is: Benchmark.hs
build-depends: base >=4.5 && <4.10,
ghc-prim,
binary,
bytestring,
containers,
errors,
transformers,
exceptions,
async,
stm,
process,
pipes,
pipes-bytestring,
pipes-safe,
pipes-concurrency,
optparse-applicative,
distributed-process,
network-transport-tcp,
network,
heaps,
trifecta
default-language: Haskell2010
ghc-options: -threaded -eventlog -rtsopts