Thin Clojure wrappers for DRMAA to be used with Sun Oracle Grid Engine.
For more information about the underlying Java DRMAA libraries start here.
TODO
To test (just manually so far) clj-drmaa I'm using vagrant to create a VM running ubuntu and SGE standalone. You can do the same, after you setup vagrant, with the following commands:
$ vagrant box add lucid64 http://files.extraneous.org/lucid64.box
$ git submodule update --init
$ vagrant up
$ vagrant ssh
$ qsub -V -b y -cwd hostname
$ qstat ; you may see the job if it hasn't been processed
$ cat hostname.o1 ; to see the jobs output, assuming it worked correctly
Once you have verified that SGE is working properly fire up a repl to play with clj-drmaa
:
guest-box $ cd /vagrant && lein deps && ./with-sge lein repl
REPL started; server listening on localhost:58079.
user=> (use 'clj-drmaa.core)
nil
user=> (run-jobs "/vagrant/test-resources/sleeper" (map #(list (str %)) (range 5)) :block? true)
The above command will block until all the jobs have been processed. Once done you will find that the homedir (~/
)
has been littered with all of the jobs output from above.
To use slime on your local (host) box you can connect to the guest's swank using SSH to forward the port:
guest-box $ cd /vagrant
guest-box $ ./with-sge lein swank
host-box $ vagrant ssh_config >> ~/.ssh/config # only need to do once
host-box $ ssh -2 -N -f -L 4005:localhost:4005 vagrant
Copyright (C) 2010 LeadTune and Ben Mabey
Released under the MIT License: http://www.opensource.org/licenses/mit-license.php