Skip to main content

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.

Metadata

Release files for miniwdl-lsf 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miniwdl-lsf 0.2.0
File Size Uploaded Provenance Actions
miniwdl_lsf-0.2.0.tar.gz 5.1 kB Without provenance Details for miniwdl_lsf-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for miniwdl-lsf 0.2.0
File Interpreter ABI Platform Actions
miniwdl_lsf-0.2.0-py3-none-any.whl Python 3 none any Details for miniwdl_lsf-0.2.0-py3-none-any.whl

Total release size: 11.5 kB

Release files / miniwdl_lsf-0.2.0.tar.gz

Download URL miniwdl_lsf-0.2.0.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c8c79b3c2580e2a9d728b579406a6c5c30fc21a00b71f8f52763253c0eb0d799
BLAKE2b-256 checksum
How to use checksums
d43ddcd3adaf7693e70a7aa496906f3bb7aae030fc551cd2954250f5fb84bc67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.9.15 Darwin/23.1.0

Release files / miniwdl_lsf-0.2.0-py3-none-any.whl

Download URL miniwdl_lsf-0.2.0-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80e044694a906899fceacde1c2a6ee7ca2dcb9f1dd855aa15c511ec8c4d29986
BLAKE2b-256 checksum
How to use checksums
06cac78acb84d267fbac809877cf59fba07f7e795378b2753496cad015eab0fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.9.15 Darwin/23.1.0

Security for miniwdl-lsf 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page