doit icon indicating copy to clipboard operation
doit copied to clipboard

(RFE) support OpenPBS cluster schedulers

Open ankostis opened this issue 7 years ago • 4 comments

For big-data it would really help doit it supported the submition of tasks using cluster-schedulers like PBS , SLURM, Torque, Sun Grid Engine (SGE) & other qsub like services.

For a similar feature, I would look at SnakeMake.

Since I recently I've been granted access to a Torque cluster, I may provide some ideas on this issue in the future.

Fund with Polar

ankostis avatar Apr 19 '17 19:04 ankostis

I feel this might push pydoit a little far outside its core focus. Moreover, actions in pydoit can be arbitrary python callables, which can't be directly pushed to a cluster engine.

Instead, this functionality could be covered by a separate package. I've written clusterjob, which provides a Python wrapper around a whole bunch of schedulers (including PBS and Slurm). I could easily see a pydoit job constructing and submitting a JobScript. I might actually play around with that in the near future. Sorry the clusterjob documentation isn't as complete with examples yet as it should be, but the latest version of the package from github should let you easily create scheduled jobs, if you want to give it a try.

goerz avatar Apr 24 '17 02:04 goerz

I am not familiar with how clusters work. That is not the first time the topic is raised...

doit has a pluggable "task runner", see for example how multiprocessing works. So I guess it should be doable.

@goerz thanks. let me know if you need any help on doit side required to integrate with your tool.

schettino72 avatar Apr 24 '17 05:04 schettino72

So I played around with this during the last week, and it seems to work pretty well. I've added a writeup to the clusterjob documentation: http://clusterjob.readthedocs.io/en/latest/pydoit_pipeline.html

This is for the latest dev-version of clusterjob, so you'd have to install it via

pip install git+https://github.com/goerz/clusterjob.git@develop#egg=clusterjob

for any of this to work.

goerz avatar May 02 '17 02:05 goerz

@goerz cool, thanks. I took a quick but would need to play around as i have no experience working with clusters... I guess some parts of example could be extracted and provided as helper functions to make easier for end-users to use tasks on clusters.

It would be nice if you added a section on doit docs pointing to your tool and related docs.

schettino72 avatar May 09 '17 11:05 schettino72