Skip to main content

arch

The arch directive defines the CPU architecture used to build the software required by each task.

Usage

For example:

process blast {
spack 'blast-plus@2.13.0'
arch 'linux/x86_64', target: 'cascadelake'

script:
"""
blastp -query input_sequence -num_threads ${task.cpus}
"""
}

This example declares that the generic CPU architecture is linux/x86_64 (X86 64 bit), and more specifically that the microarchitecture is cascadelake (a specific generation of Intel CPUs).

This directive is used by the following Nextflow features:

  • The spack directive, to build microarchitecture-optimized applications.
  • The Wave service, to build containers for one of the generic families of CPU architectures.
  • The spack strategy within Wave, to optimize the container builds for specific CPU microarchitectures.

The following values are allowed, grouped by equivalent family (multiple choices are available for compatibility):

  • X86 64 bit: linux/x86_64, x86_64, linux/amd64, amd64
  • ARM 64 bit: linux/aarch64, aarch64, linux/arm64, arm64, linux/arm64/v8
  • ARM 64 bit, older generation: linux/arm64/v7

Examples of values for the architecture target option are cascadelake, icelake, zen2, and zen3. See the Spack documentation for the full list of targets.

On this Page