29 lines
2.2 KiB
TeX
29 lines
2.2 KiB
TeX
%!TEX root=../main.tex
|
|
|
|
An isolated cell execution notebook (ICE) isolates cells by executing each in a fresh kernel.
|
|
In this section, we review key differences between the ICE model used in systems like Vizier~\cite{brachmann:2020:cidr:your} or Nodebook~\cite{nodebook}, and the monolithic approach of Jupyter.
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\tinysection{Communication Model}
|
|
As in a monolithic kernel notebook, an ICE notebook maintains a shared global state that is manipulated by each individual cell.
|
|
However, these manipulations are explicit: for a variable defined in one cell (the writer) to be used in a subsequent cell (the reader): (i) the writer must explicitly export the variable into the global state, and (ii) the reader must explicitly import the variable from the global state.
|
|
For example, Vizier provides explicit setter and getter functions (respectively) on a global state variable, while Nodebook inspects the Python interpreter's global scope dictionary in between cell executions.
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\tinysection{State Serialization}
|
|
When a state variable is exported, it is serialized by the Python interpreter and exported into a versioned state management system.
|
|
We refer to the serialized state as an \emph{artifact}.
|
|
Each cell executes in the context of a scope, a mapping from variable names to artifacts that can be imported by the cell.
|
|
|
|
By default, Vizier serializes state through Python's native \texttt{pickle} library, although it can be easily extended with codecs for specialized types that are either unsupported by \texttt{pickle}, or for which it is not efficient:
|
|
(i) Python code (e.g., import statements, and function or class definitions) is exported as raw Python code and imported with \texttt{eval}.
|
|
(ii) Pandas dataframes are exported in parquet format and are exposed to subsequent cells through Apache Arrow. % direct access.
|
|
|
|
% We note the need to support transitive dependencies like functions that invoke other functions.
|
|
% Exporting (resp., importing) the former function requires exporting (importing) the latter.
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: "../main"
|
|
%%% End:
|