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.