kubernetes-native julia development

07/30/2021, 7:30 PM7:40 PM UTC
Red

Abstract:

You have access to a k8s cluster, and you want to use it to scale out computations. But first, you need to develop and debug julia code that can take advantage of it!

I will present an ergonomic julia development setup to help make k8s feel like home, using freely available and easily installed tools.

Description:

In this setup, from a julia project directory, you can:

  • drop into a julia REPL that is running on your k8s cluster
  • edit source files locally, use Revise and get back results saved to disk, via a 2-way sync between the local julia project directory and the corresponding directory in the k8s container
  • sync REPL history across local and remote julia sessions
  • easily spin up and use Distributed workers from within the julia session
  • automatically build and use images containing julia, with chosen dependencies baked in a PkgCompiler sysimage, precompiled julia project, and (optionally) CUDA
  • minimize time-to-first-command-completion with cached image builds; first use in a project directory takes a long time to build, but subsequently spinning up is fast
  • set RAM/cpu/disk resources for the main julia session and any Distributed workers
  • set julia (and CUDA) versions independently for each session
  • run your work as a non-interactive job once it is ready

This tries to make minimal assumptions about the k8s setup; requirements are access to the cluster via kubectl and to a container registry that the k8s cluster can pull from.

Tools needing to be installed locally are:

  • kubectl
  • docker buildkit
  • devspace sync

The julia-specific tools developped to make this possible are K8sClusterManagers.jl and julia_pod.

This workflow is developped and used day-to-day at Beacon Biosignals.

Platinum sponsors

Julia Computing

Gold sponsors

Relational AI

Silver sponsors

Invenia LabsConningPumas AIQuEra Computing Inc.King Abdullah University of Science and TechnologyDataChef.coJeffrey Sarnoff

Media partners

Packt Publication

Fiscal Sponsor

NumFOCUS