Application Runner Configuration
The Holoscan runner requires a YAML configuration file to define some properties necessary to deploy an application.
That file is the same configuration file commonly used to configure other aspects of an application, documented here.
The configuration file can be defined in two ways:
At package time, with the
--config
flag of theholoscan package
command (Required/Default)At runtime, with the
--config
flag of theholoscan run
command (Optional/Override)
The holoscan run
command parses two specific YAML nodes from the configuration file:
A required
application
parameter group to generate a HAP-compliant` container image for the application, including:the
title
(name) andversion
of the application.optionally,
inputFormats
andoutputFormats
if the application expects any inputs or outputs respectively.
An optional
resources
parameter group that defines the system resources required to run the application, such as the number of CPUs, GPUs and amount of memory required. If the application contains multiple fragments for distributed workloads, resource definitions can be assigned to each fragment.
Below is an example configuration file with the application
and optional resources
parameter groups, for an application with two-fragments (first-fragment
and second-fragment
):
application:
title: My Application Title
version: 1.0.1
inputFormats: ["files"] # optional
outputFormats: ["screen"] # optional
resources: # optional
# non-distributed app
cpu: 1 # optional
cpuLimit: 5 # optional
gpu: 1 # optional
gpuLimit: 5 # optional
memory: 1Mi # optional
memoryLimit: 2Gi # optional
gpuMemory: 1Gi # optional
gpuMemoryLimit: 1.5Gi # optional
sharedMemory: 1Gi # optional
# distributed app
fragments: # optional
first-fragment: # optional
cpu: 1 # optional
cpuLimit: 5 # optional
gpu: 1 # optional
gpuLimit: 5 # optional
memory: 100Mi # optional
memoryLimit: 1Gi # optional
gpuMemory: 1Gi # optional
gpuMemoryLimit: 10Gi # optional
sharedMemory: 1Gi # optional
second-fragment: # optional
cpu: 1 # optional
cpuLimit: 2 # optional
gpu: 1 # optional
gpuLimit: 2 # optional
memory: 1Gi # optional
memoryLimit: 2Gi # optional
gpuMemory: 1Gi # optional
gpuMemoryLimit: 5Gi # optional
sharedMemory: 10Mi # optional
For details, please refer to the HAP specification.