-
Notifications
You must be signed in to change notification settings - Fork 298
Kernels (Architecture)
Peng Lyu edited this page Jul 22, 2022
·
17 revisions
Pre-requisites
- Please read Terminology
The core functionalities offered by the Kernels component are
- Kernel discovery and launching. More details in general overview and code architecture
- Discovery. Responsible for finding Jupyter kernel specs on user's machine, connecting to remote jupyter servers and turning Python Environments into Jupyter specs.
- Kernel launcher. Launching the selected Jupyter kernel with proper environment.
- Execution. Handling the messages between the extension and Jupyter kernel.
Below graphs is a bird view of where kernels are from, how they are launched and what's being exposed once kernels are launched and connected:
- The kernel component can list all kernels found from multiple sources. The source of kernels limits how a kernel can be launched.
- Globally installed kernel specs are started as separate processes by default and the extension will connect to it through
zeromq
.- If
zeromq
is not available, then we would attempt to launchjupyter notebook|lab
and connect to the kernels through Jupyter Server API.
- If
- Jupyter servers created outside of the extension can be connected and communicated through Jupyter Server API.
- Lastly, Python environments can be used as "kernel" (see details)
- Globally installed kernel specs are started as separate processes by default and the extension will connect to it through
- Contribution
- Source Code Organization
- Coding Standards
- Profiling
- Coding Guidelines
- Component Governance
- Writing tests
- Kernels
- Intellisense
- Debugging
- IPyWidgets
- Extensibility
- Module Dependencies
- Errors thrown
- Jupyter API
- Variable fetching
- Import / Export
- React Webviews: Variable Viewer, Data Viewer, and Plot Viewer
- FAQ
- Kernel Crashes
- Jupyter issues in the Python Interactive Window or Notebook Editor
- Finding the code that is causing high CPU load in production
- How to install extensions from VSIX when using Remote VS Code
- How to connect to a jupyter server for running code in vscode.dev
- Jupyter Kernels and the Jupyter Extension