Command/Notebook Configuration

The command/notebook configuration file may contain the following fields. All fields are optional unless otherwise specified.

  • description: A human-readable description of the command/notebook. This does not need to be unique. The default description consists of a timestamp and the entrypoint of the command.
  • environment: Specifies the environment of the container that is used to execute the command/notebook. Default values are in bold. Note that if custom_image is specified, os, cuda, python tensorflow, pytorch, and keras should be unspecified, and vice versa.
    • os: The operating system used for the environment. Required to be "ubuntu16.04".
    • cuda: The CUDA version (if any) used for the environment. Accepted values are 10.0, "9.0", and "none".
    • python: The Python version that is used for the environment. Required to be "3.6.9".
    • tensorflow: The TensorFlow version (if any) that is installed. Accepted values are "1.14.0", "1.13.1", "1.12.0", and "none".
    • pytorch: The PyTorch version (if any) that is installed. Accepted values are "1.2.0", 1.1.0, and "none".
    • keras: The Keras version (if any) that is installed. Accepted values are "2.2.4" and "none".
    • custom_image: Specifies a custom Docker base image to use when executing the command. The custom image must be available via docker pull to every PEDL agent host in the cluster. If a custom_image is specified, it is up to the user to ensure the required dependencies are installed for the command to run. runtime_commands and runtime_packages may be used to execute install additional dependencies and Python packages before the PEDL command is executed. If runtime_packages are specified, it is assumed that pip is installed in the custom Docker image. If supplying a custom base image, please consult the Custom Docker Images documentation for more information.
    • force_pull_image: Forcibly pull the image from the docker registry and bypass the docker cache. Defaults to false.
    • environment_variables: Specifies a list of environment variables for the command container. Each element of the list should be a string of the form NAME=VALUE (details).
    • runtime_commands: Specifies a list of shell commands to execute before running the PEDL command/notebook.
    • runtime_packages: Specifies a list of Python packages to install before running the PEDL command/notebook.
    • registry_auth: Specifies the Docker registry credentials to use when pulling a custom base Docker image, if needed.
      • username (required)
      • password (required)
      • server (optional)
      • email (optional)
  • resources: The resources PEDL allows a command/notebook to use.
    • slots: Specifies the number of slots to use for the command/notebook. The default value is 1. The maximum value is the number of slots on the agent in the cluster with the most slots. For example, PEDL will be unable to schedule a command that requests 4 slots if the PEDL cluster is composed of agents with 2 slots each.
  • bind_mounts: Specifies a collection of directories that are bind-mounted into the Docker containers for execution. This can be used to allow commands to access additional data that is not contained in the command context. This field should consist of an array of entries. Note that users should ensure that the specified host paths are accessible on all agent hosts (e.g., by configuring a network file system appropriately). Defaults to an empty list.
    • host_path (required): The file system path on each agent to use.
    • container_path (required): The file system path in the container to use.
    • read_only: Whether the bind-mount should be a read-only mount. Defaults to false.
    • propagation: (Advanced users only) Optional propagation behavior for replicas of the bind-mount. Defaults to rprivate.


In addition to --config-file, pedl cmd run offers a --config flag to directly set configuration options from the command line with field=value syntax. field can use the dot character (.) to indicate nested fields (e.g. environment.python). value will be interpreted as a comma-separated list if it contains any commas. Options set by --config take precedence over those set by --config-file.