Singularity Runner¶
Singularity runner uses singularity to run MLCube® cubes. It supports two mandatory commands - configure
and
run
with standard arguments - mlcube
, platform
and task
. Users can configure Singularity runner in MLCube
configuration file, system setting file, and override parameters on a command line.
Configuration parameters¶
MLCube reference singularity runner supports the following configuration parameters (with default values):
# Name of a singularity image, for instance "mnist-0.0.1.simg".
image: ${singularity.image}
# Path where to build the image. By default, it is `.image` inside workspace directory.
image_dir: ${runtime.workspace}/.image
# Singularity executable
singularity: singularity
# Build arguments
build_args: --fakeroot
# Singularity recipe file relative to workspace.
build_file: Singularity.recipe
Configuring MLCubes¶
Users do not need to run the configure
command manually, singularity docker runs this whenever image is not found.
Singularity runner under the hood runs the following command line:
cd {recipe_path} && ${singularity} build ${build_args} {image_uri} ${build_file}
{recipe_path}
is the MLCube root directory.${singularity}
is the singularity executable.${build_args}
is the singularity build arguments.{image_uri}
is the full image path (${image_dir}/${image}
).${build_file}
is the singularity build file.
Running MLCubes¶
Singularity runner runs the following command:
${singularity} run {volumes} {image_path} {task_args}
${singularity}
is the singularity executable.{volumes}
are the mount points that the runner automatically constructs based upon the task input/output specifications.{image_path}
is the path to Singularity image ({image_dir}/{image}
).{task_args}
is the task command line arguments, constructed automatically by the runner.