Configuring the Notebook Execution Service

Configure notebook executions settings for your organization.

For SystemLink Enterprise April 2024 and earlier, use the AWS S3 documentation to configure life cycle parameters. The life cycle parameters clean up the artifacts Argo Workflows creates for each execution. NI recommends setting the life cycle to 2 days minimum.

Complete the following mandatory steps to optimize notebook executions for your organization.

  1. In the systemlink-values.yaml file, specify the maximum number of executions that can run in parallel.
    1. Open systemlink-values.yaml.
    2. Configure the parallelism value.
    3. Configure the maxNumberOfWorkflowsToSchedule parameter.
    4. Save and close systemlink-values.yaml.
    Note By default, each notebook execution requires a minimum of 0.2 CPU and 2,176 MiB of memory. For example, 150 parallel executions require 30 vCPU and 319 GiB of memory. If your executions are short, you can specify fewer parallel executions to keep the cluster size small.
  2. If you have an Argo Workflows deployment on your cluster, reconfigure the deployment.
    1. Open systemlink-values.yaml.
    2. Configure the instanceID value for Argo Workflows.
      argoworkflows: argo-workflows: controller: instanceID: enabled: true explicitID: sl-notebook-execution-0
    3. Save and close systemlink-values.yaml.
    4. Open systemlink-admin-values.yaml.
    5. Disable the installation of Argo Workflows Custom Resource Definitions.
      argoworkflowscrds: crds: install: false
    6. Save and close the systemlink-admin-values.yaml file.

Use the following optional settings to further customize the notebook execution settings for your organization.

Goal Description
Configure resource profiles to maximize resource utilization.
Note This setting is only available for SystemLink Enterprise October 2024 and later.
  1. In the systemlink-values.yaml file, modify the default resource allocation and the low, medium, or high resource profiles.
    resourceProfiles: low: requests: cpu: "0.1" memory: 4Gi limits: memory: 4Gi
  2. Save and close the systemlink-admin-values.yaml file.
Configure how long an execution persists in a database.
  1. In the systemlink-values.yaml file, modify the daysToPersistExecutions value.
    Note The started_at value dictates the number of days an execution persists in the database. For safety reasons, set this value to a minimum of 2. This value helps the system avoid deleting an execution from the database before completion.
  2. Save and close the systemlink-admin-values.yaml file.
Limit the scheduling of pods to a specific node.

Use the following parameters in the node-selectors.yaml file.

  • notebookExecutionNodeSelector
  • notebookExecutionTolerations

Use the kubectl command to taint or to label the nodes in the command line.

kubectl taint nodes <node>notebook_execution=true:NoSchedule kubectl label nodes <node>notebook.executor=true