Skip to content

Performance and resources

Aviary workloads vary with read volume, assembly complexity, sample count, enabled binners and reference databases. The repository does not provide a portable benchmark dataset, so resource choices should be based on a dry run, local benchmark records and representative pilot samples.

CPU capacity

--max-threads limits the threads assigned to an individual process. The default is 8. --n-cores controls the total CPU capacity Snakemake may schedule and defaults to 16. Aviary raises --n-cores when it is lower than --max-threads, because a scheduled process must fit within total capacity.

Not every upstream program scales to the requested thread count. Increasing --n-cores can improve throughput when independent rules are ready to run, but only when memory and storage bandwidth can support that concurrency.

Memory

--max-memory is expressed in gigabytes and defaults to 250. It caps workflow resource requests; it does not reserve that memory or predict consumption. Reference-heavy stages, large assemblies and concurrent jobs can dominate RAM. On a scheduler, ensure the coordinator and submitted jobs use limits consistent with the Aviary arguments.

Storage and temporary files

Assembly, mapping and binning can create substantial intermediate FASTQ, BAM and index data. --tmpdir selects temporary storage; when omitted, Aviary uses TMPDIR. Prefer node-local scratch when it is large enough and retained for the duration of the rule. The default --clean behaviour removes declared temporary files after successful consumption.

Multiple samples

Coverage calculation can be split across jobs. With the default --coverage-job-strategy, Aviary splits coverage work when more than 10 samples are present; --coverage-samples-per-job defaults to 5. always and never override that selection. More jobs can improve scheduler utilisation but add scheduling and file-system overhead.

GPU execution

GPU-enabled binners require compatible Aviary GPU environments and hardware. --request-gpu requests a GPU only for cluster execution, and GPU-specific binner options affect only their corresponding stages. Assembly, mapping and many annotation steps remain CPU workloads.

Measure the current system

Snakemake writes per-rule measurements beneath benchmarks/. Use several representative runs to set scheduler resources, and retain input sizes, software versions and database releases with any reported measurements.