Skip to main content

miniwdl lsf backend using singularity

Project description

miniwdl-lsf

Extends miniwdl to run workflows on LSF clusters in singularity containers.

This LSF backend plugin for miniwdl runs WDL task containers by creating a job script that is submitted to a LSF cluster. In case the job description has a container, singularity will be used as container runtime.

Installation

For the development version::

pip install git+https://github.com/adthrasher/miniwdl-lsf.git

LSF-specific runtime hints

miniwdl-lsf supports LSF-specific runtime hints. These can be specified using the object syntax under an lsf object.

runtime {
    lsf: object {
        time: 30
    }
}

Currently supported hints:

  • time: passed to LSF's -W argument. Sets the runtime limit for a task in minutes. LSF documentation

Note: hints are in a state of flux within the WDL specification. WDL 1.1 added support for hints as part of the runtime section. These could be nested using the object syntax. However, object will be removed in future versions of WDL and the hints will become a distinct section in the task definition.

miniwdl check may return warnings when attempting to validate WDL tasks with an lsf object hint. Similar to the warnings below. These warnings do not affect the miniwdl run command.

        (Ln 41, Col 14) UnknownRuntimeKey, unknown entry in task runtime section: lsf
        (Ln 41, Col 14) Deprecated, replace 'object' with specific struct type [WDL >= 1.1]

Configuration

The following miniwdl configuration example can be used to use miniwdl on a LSF cluster:

    [scheduler]
    container_backend=lsf_singularity
    # Sets the maximum concurrent tasks. Since LSF handles scheduling, we only
    # limit to avoid excessive overhead in miniwdl.
    task_concurrency=200
    
    # This setting allows running tasks to continue, even if one other tasks fails. 
    # Useful in combination with call caching. Prevents wasting resources by
    # cancelling jobs half-way that would probably succeed.
    fail_fast = false

    [call_cache]
    # The following settings create a call cache under the current directory.
    # This prevents wasting unnecessary resources on the cluster by rerunning 
    # jobs that have already succeeded.
    put = true 
    get = true 
    dir = "$PWD/miniwdl_call_cache"

    [task_runtime]
    # Setting a 'maxRetries' default allows jobs that fail due to intermittent
    # errors on the cluster to be retried.
    defaults = {
            "maxRetries": 2,
            "docker": "ubuntu:20.04"
        }

    command_shell = /bin/bash

    memory_limit_multiplier = 1.0
 
    [singularity]
    # This plugin wraps the singularity backend. Make sure the settings are
    # appropriate for your cluster.
    exe = ["singularity"]

    # the miniwdl default options contain options to run as a fake root, which
    # is not available on most clusters.
    run_options = [
            "--containall",
            "--cleanenv"
        ]

    # Location of the singularity images (optional). The miniwdl-lsf plugin
    # will set it to a directory inside $PWD. This location must be reachable
    # for the submit nodes.
    image_cache = "$PWD/miniwdl_singularity_cache"

    [lsf]
    # extra arguments passed to the bsub command (optional).
    extra_args=""
    # Task memory specifications should be interpreted as per-job not per-core (LSF default)
    memory_per_job = true

Acknowledgements

miniwdl-lsf is originally based on miniwdl-slurm.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miniwdl_lsf-0.2.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

miniwdl_lsf-0.2.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file miniwdl_lsf-0.2.0.tar.gz.

File metadata

  • Download URL: miniwdl_lsf-0.2.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.15 Darwin/23.1.0

File hashes

Hashes for miniwdl_lsf-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c8c79b3c2580e2a9d728b579406a6c5c30fc21a00b71f8f52763253c0eb0d799
MD5 b3bb52d0ded61566512d3402d109ca00
BLAKE2b-256 d43ddcd3adaf7693e70a7aa496906f3bb7aae030fc551cd2954250f5fb84bc67

See more details on using hashes here.

File details

Details for the file miniwdl_lsf-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: miniwdl_lsf-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.15 Darwin/23.1.0

File hashes

Hashes for miniwdl_lsf-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80e044694a906899fceacde1c2a6ee7ca2dcb9f1dd855aa15c511ec8c4d29986
MD5 178ca684b0e9e4e4634bf2de51b75c0d
BLAKE2b-256 06cac78acb84d267fbac809877cf59fba07f7e795378b2753496cad015eab0fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page