bartongroup / slivka

http://bartongroup.github.io/slivka/
Apache License 2.0
7 stars 3 forks source link

Add support for LSF workload manager #128

Open mukhyala opened 1 year ago

mukhyala commented 1 year ago

Similar to the current support for slurm, please extend to LSF as well.

warownia1 commented 1 year ago

This issue will be resolved in the future version by the plugin system. Currently, you can dynamically add LSF executor to slivka by extending the Runner interface and placing it somewhere it can be imported by slivka e.g. in the project directory. In the configuration file, enter the full python path to the class where you would enter the runner name.

Here is the runner template (copy it to the plugins.py file):

# plugins.py
from slivka.scheduler.runners import Runner, Job, Command, JobStatus

class LSFRunner(Runner):
  def submit(self, command: Command) -> Job:
    ...

  def check_status(self, job: Job) -> JobStatus
    ...

  def cancel(self, job: Job):
    ...

and the runner configuration which goes to the service.yaml file

execution:
  runners:
    default:
      type: plugins.LSFRunner