Kernel management
When creating a notebook, you select a kernel and a computation mode.
Kernels and modes
Kernel is the element that runs the cells in your notebook. At the moment, Datalore provides kernels for Python, Kotlin, Scala, and R.
You can also select a computation mode. You have two options: Jupyter mode and Reactive mode.
- Jupyter mode
Classic Jupyter-like mode without evaluation order enforcement. Notebook state is not saved after the computation is stopped.
- Reactive mode
Reproducible mode enforcing fixed top-down evaluation order and automatic recalculation of the cells below the modified one. Has the following key benefits:
Interactivity support: when combined with interactive controls, reactive mode allows you to turn notebooks into interactive reports.
Automatically restored notebook state: with reactive mode enabled, notebook state is saved after each cell evaluation to ensure automatic recalculation of only those cells that are below the modified one. This can be particularly helpful when working on big projects.
Easy experimenting: Reactive mode keeps the notebook state consistent by automatically recalculating the cells below the modified one. This means you can edit any cell in your notebook and quickly have all affected cells updated.
Switching machines: you can switch between machines without losing the variables state. This allows you to start with writing code on a basic machine, switch to a more expensive GPU machine only to perform some computation-intensive task, and then switch back to a basic machine. With Jupyter mode selected, switching between machines clears the variables, which means that you would have to recalculate all the cells.
Kernel menu in the editor
Selected from the main menu, the Kernel menu allows you to manage kernels and switch between the modes when working in the editor. You have the following options:
Interrupt kernel: used to stop the currently running task without stopping the kernel.
Restart kernel: used to stop and start the kernel again. The main reason why you might need this is to clean the runtime environment of old variable data.
Reactive mode: used to switch to or from Reactive mode. When changing the mode, you are required to confirm the action and restart the kernel.