Skip to content

Resources

Architecture

sequenceDiagram
    box Flywheel
       actor User
       participant Job queue
       participant Assets
    end
    box HPC
       participant the `hpc-client`
       participant Scheduler
       participant Compute Node
    end

    User->>Job queue: Submit job
    Note over the `hpc-client`: the `hpc-client` wakes up on cron
    the `hpc-client`->>Job queue: Poll for HPC jobs
    Job queue->>the `hpc-client`: Return jobs
    loop
       the `hpc-client`->> Scheduler: Submit job
       Compute Node->>Scheduler: Poll task
       Scheduler->>Compute Node: Return "fw engine" task
       Note over Compute Node: Engine starts
       Assets->>Compute Node: Pull Docker image and job inputs / config
       Note over Compute Node: Gear execute with singularity runner
       Compute Node->>Assets: Push job outputs
       Compute Node->>Job queue: Mark job as complete
    end

HPC Types

The fw-hpc-client provides full support for the Slurm job scheduler. Additional implementations for LSF and SGE schedulers are included but are provided as-is without official support or warranty.

Common name Code name
IBM spectrum LSF lsf
Oracle / Sun Grid Engine sge
Slurm slurm

If your site uses one of these schedulers, you can configure the fw-hpc-client by setting the cluster parameter in your cast.yml configuration file to the appropriate code name.

If your site uses a different scheduler, some Python development will be required to add support for it. Contact Flywheel for assistance with custom scheduler implementations.