pyjip
pyjip copied to clipboard
JIP Pipeline System
JIP Pipeline system
The JIP pipeline system is a python library and a set of command line utilities that allows you to create batch-process based computational pipeline that can be submitted and managed on a compute cluster or on your local machine.
Installation
The JIP documentation <http://pyjip.readthedocs.org/en/latest/>
_ contains
more detailed instructions on installation and, more importantly, configuration
of the system and your compute infrastructure. Here is the very quick guide::
$> pip install pyjip
or
$> python setup.py install
If you want to install from pypi or the git repository. Afterwards, you have
to create configuration file $HOME/.jip/jip.json
and add the following
content::
{
"cluster": "<class_name>"
}
Replace <class_name>
with the name of the class that implements support
for your compute cluster. JIP ships with the following implementations:
* ``jip.cluster.SGE`` for *Sun Grid Engine*
* ``jip.cluster.Slurm`` for *Slurm*
* ``jip.cluster.PBS`` for *PBS* and *Torque*
* ``jip.cluster.LSF`` for *Platform LSF* and *Open Lava*
* ``jip.grids.JIP`` for JIPs' internal scheduler. If you use this, make
sure to start the JIP server on the same machine using the ``jip server``
command. Please note also that you have to install *pyzmq* if you want
to run the JIP server.
Documentation
Documentation <http://pyjip.readthedocs.org/en/latest/>
_ on installation and
usage can be found at http://pyjip.readthedocs.org/en/latest/.
Source Code
The JIP source code can be found on
GitHub <https://github.com/thasso/pyjip>
_.
Bugs and feature requests
Please feel free to use the issue tracker <https://github.com/thasso/pyjip/issues>
_ to file bug reports and feature
requests.
Changelog
0.6:
* Add MySQL support [Issue #53 <https://github.com/thasso/pyjip/issues/53>
]
* Hidden options are not resolved when called explicitly [Issue #51 <https://github.com/thasso/pyjip/issues/51>
]
* Add option to select memory unit for SGE [Issue #46 <https://github.com/thasso/pyjip/pull/46>
]
* If a non-existing option is referenced in a script template, an AttributeError is raised [Issue #43 <https://github.com/thasso/pyjip/issues/43>
]
* Wrong unit for memory when submitting to SGE [Issue #40 <https://github.com/thasso/pyjip/issues/40>
_]
0.5:
* Enable rendering of log file location using pipeline and tools options [Issue #39 <https://github.com/thasso/pyjip/issues/39>
]
* Options embedded in command scripts are not made absolute [Issue #38 <https://github.com/thasso/pyjip/issues/38>
]
* Make sure that working directories of jobs are created when jobs are executed or submitted [Issue #37 <https://github.com/thasso/pyjip/issues/37>
]
* Allow for dynamic options when a tool is added to a pipeline [Issue #35 <https://github.com/thasso/pyjip/issues/35>
]
* Configuration is not picked up next to the binary [Issue #34 <https://github.com/thasso/pyjip/issues/34>
]
* The API example runs the jobs but a jip clear fails on the generated jobs [Issue #30 <https://github.com/thasso/pyjip/issues/30>
]
* Working directory is not passed on from profile to job [Issue #29 <https://github.com/thasso/pyjip/issues/29>
]
* Add a thread parameter to the server to control the number of slots [Issue #28 <https://github.com/thasso/pyjip/issues/28>
]
* Option value assignment through options attributes is does not set the value [Issue #26 <https://github.com/thasso/pyjip/issues/26>
]
* Option descriptions are not handling tabs at the beginning correctly [Issue #24 <https://github.com/thasso/pyjip/issues/24>
]
* JIP tools script with . in the name are not parsed correctly. [Issue #23 <https://github.com/thasso/pyjip/issues/23>
]
* Restarting a single job pipeline and changeing the threads is not reflected in the job [Issue #6 <https://github.com/thasso/pyjip/issues/6>
]
* Make tool specs available to pipelines [Issue #4 <https://github.com/thasso/pyjip/issues/4>
_]
0.4:
* Create a pipe command to write quick pipeline directly from the command line [Issue 22 <https://github.com/thasso/pyjip/issues/22>
]
* Inconsistency between job().bash() and bash() usage in pipeline [Issue 20 <https://github.com/thasso/pyjip/issues/20>
]
* Add links to job and pipeline iteration to delete functions in jip.db and jip.jobs [Issue 19 <https://github.com/thasso/pyjip/issues/19>
]
* Enable parsing of memory assignments in profiles and add support for G M and K suffixes [Issue 18 <https://github.com/thasso/pyjip/issues/18>
]
* "jip logs" called without argument returns an error instead of "usage" [Issue 16 <https://github.com/thasso/pyjip/issues/16>
]
* Tool cleanup fails if the output points to a directory [Issue 10 <https://github.com/thasso/pyjip/issues/10>
]
* Option parsing fails when multiple list options are specified and one is optional and not set [Issue 8 <https://github.com/thasso/pyjip/issues/8>
]
* jip restart jobs fails as the job detects itself and refuses to submit again [Issue 7 <https://github.com/thasso/pyjip/issues/7>
]
* jip jobs with selected output duplicates columns [Issue 5 <https://github.com/thasso/pyjip/issues/5>
_]
0.3 : * Added auto-naming support for anonymous jobs that are assigned to variables. The variable name is used as default job name * Lots of changes to the internals
0.2 : * Added explicit UTF-8 encoding for the dependency tree
0.1 : Initial release
Licences
JIP is licensed under the BSD license.