hardware — compute resources#
Schema: HardwareConfig in src/thesis/core/config/validators.py.
Drives Nipype scheduler hints, the startup GPU check, and downstream node-level resource hints. Copy config/hardware.example.yaml to config/hardware.yaml (gitignored) and adjust for your machine.
Field |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|
|
|
|
|
CPU threads available to workflow execution. Read by Nipype plugin args and per-node thread hints. |
|
|
|
|
Memory budget in GB used by Nipype |
|
|
|
— |
Enable GPU-aware node selection (e.g. |
|
|
|
— |
GPU device index for multi-GPU systems. Currently informational; the binary selects its own device unless |
|
|
|
|
Nipype scheduler GPU worker slots — maximum number of GPU-bound nodes that may run concurrently. Prevents CUDA OOM. Only effective when |
|
|
|
|
Physical GPUs visible per worker slot. Passed through as a scheduler hint. |
Example#
hardware:
threads: 16
memory_gb: 64
gpu_enabled: true
n_gpu_procs: 2 # allow 2 concurrent GPU nodes (e.g. left + right hemisphere)
n_gpus: 1 # each slot sees 1 GPU
Interaction with nipype.plugin_args#
hardware values are injected as plugin args at CLI build time:
n_procs← falls back tocli --max-workers, thennipype.plugin_args.n_procs, then the plugin default.memory_gb←hardware.memory_gbis propagated when not already set innipype.plugin_args.n_gpu_procs/n_gpus← copied whenhardware.gpu_enabled: true.
You can still set the underlying nipype.plugin_args explicitly to override.