From 87eaf3caea6cd412843d56d03c050b52f3119533 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 31 Mar 2022 14:47:06 -0400 Subject: [PATCH] Formatting and space. --- .gitignore | 1 + .../depth_vs_cellcount-averaged.vega-lite.pdf | Bin 16766 -> 82196 bytes .../depth_vs_cellcount-averaged.vega-lite.svg | 2 +- graphics/gantt_serial.png | Bin 25939 -> 26214 bytes main.tex | 3 +- sections/experiments.tex | 2 +- sections/import.tex | 27 ++++++++++++------ sections/introduction.tex | 4 +-- 8 files changed, 25 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index d8f20a7..9357850 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ pdfa.xmpi main.bbl main.blg vizier.db +/_minted-main diff --git a/graphics/depth_vs_cellcount-averaged.vega-lite.pdf b/graphics/depth_vs_cellcount-averaged.vega-lite.pdf index 6489b81050eec5a8d09bb4261bd56cb5c6e2e72f..062ae5dec0b7e8650541c1488d881f3595cd08c6 100644 GIT binary patch literal 82196 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 SM#)LQYe`_2l+@POVgFx=zJAjH delta 6031 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 B)&2kg diff --git a/graphics/depth_vs_cellcount-averaged.vega-lite.svg b/graphics/depth_vs_cellcount-averaged.vega-lite.svg index b718246..a51b94e 100644 --- a/graphics/depth_vs_cellcount-averaged.vega-lite.svg +++ b/graphics/depth_vs_cellcount-averaged.vega-lite.svg @@ -1 +1 @@ -050100150200250300350400450500Total Cells0510152025Average Dependency Depth \ No newline at end of file +050100150200250300350400450500Total Cells0510152025Average Dependency Depth \ No newline at end of file diff --git a/graphics/gantt_serial.png b/graphics/gantt_serial.png index 0ce001a8c4174dc999304ad4b3753164a073c07b..3faa122c79f1d8a3293c04330bb3a454e28cbe93 100644 GIT binary patch literal 26214 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 w|9ZM%2(asqCB%<3cgbeNVDz4Go|q&ZJbd% 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 z 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 diff --git a/main.tex b/main.tex index fd10064..89b74f2 100644 --- a/main.tex +++ b/main.tex @@ -2,6 +2,7 @@ %\documentclass{vldb} \settopmatter{printacmref=false} +\setcopyright{none} \usepackage{hyperref} \usepackage[a-1b]{pdfx} @@ -49,7 +50,7 @@ \newcommand{\systemname}{Workbook\xspace} -\newcommand{\TheTitle}{Coarse-Grained Dataflow Provenance} +\newcommand{\TheTitle}{Incremental Provenance} \pagestyle{plain} diff --git a/sections/experiments.tex b/sections/experiments.tex index f7f64f6..b47d7e3 100644 --- a/sections/experiments.tex +++ b/sections/experiments.tex @@ -7,7 +7,7 @@ Parallelizing cell execution requires an ICE architecture, which comes at the co In this section, we assess that cost. All experiments were run on a XX GHz, XX core Intel Xeon with XX GB RAM running XX Linux\OK{Boris, Nachiket, can you fill this in?}. -The provenance aware scheduler was integrated into Vizier 1.2\footnote{https://github.com/VizierDB/vizier-scala} --- our experiments use a lightly modified version with support for importing Jupyter notebooks, and the related \texttt{-X PARALLEL-PYTHON} experimental option. +The provenance aware scheduler was integrated into Vizier 1.2\footnote{\url{https://github.com/VizierDB/vizier-scala}} --- our experiments use a lightly modified version with support for importing Jupyter notebooks, and the related \texttt{-X PARALLEL-PYTHON} experimental option. As Vizier relies on Apache Spark, we prefix all notebooks under test with a single reader and writer cell to force initialization of e.g., Spark's HDFS module. These are not included in timing results. \begin{figure*} diff --git a/sections/import.tex b/sections/import.tex index a6c3850..6620a39 100644 --- a/sections/import.tex +++ b/sections/import.tex @@ -20,9 +20,10 @@ For example, python's \texttt{import} statement simply declares imported modules Thus, references to the module's functions within a function or class definition create transitive dependencies. When the traversal visits a function or class declaration statement, we record -An additional complication arises from python's scope capture semantics. -When a function (or class) is declared, it records a reference to all enclosing scopes. Consider the following example code: -\begin{lstlisting} +\begin{figure} + \begin{center} + \begin{subfigure}{0.45\columnwidth} +\begin{minted}{python} def foo(): print(a) a = 1 @@ -31,21 +32,29 @@ def bar(): a = 2 foo() bar() # Prints '1' -\end{lstlisting} - -\begin{lstlisting} +\end{minted} + \end{subfigure} + \begin{subfigure}{0.5\columnwidth} +\begin{minted}{python} def foo(): - a = 2 def bar(): print(a) + a = 2 return bar bar = foo() bar() # Prints '2' a = 1 bar() # Prints '2' -\end{lstlisting} +\end{minted} + \end{subfigure} + \end{center} + \label{fig:scoping} + \caption{Scope capture in python happens at function definition, but captured scopes remain mutable.} +\end{figure} -In the latter instance, when \texttt{bar} is declared, it `captures' the scope of \texttt{foo}, in which \texttt{a = 2}, and overrides assignment in the global scope. +An additional complication arises from python's scope capture semantics. +When a function (or class) is declared, it records a reference to all enclosing scopes. Consider the following example code in \Cref{fig:scoping}. +In the latter code block, when \texttt{bar} is declared, it `captures' the scope of \texttt{foo}, in which \texttt{a = 2}, and overrides assignment in the global scope. In the former instance, conversely, \texttt{bar}'s assignment to \texttt{a} happens in its own scope, and so the invocation of \texttt{foo} reads the instance of \texttt{a} in the global scope. \tinysection{Coarse-Grained Data Flow} diff --git a/sections/introduction.tex b/sections/introduction.tex index a46e08a..4d40868 100644 --- a/sections/introduction.tex +++ b/sections/introduction.tex @@ -27,8 +27,8 @@ We then show generality by discussing the process for importing Jupyter notebook \begin{figure} % \includegraphics[width=\columnwidth]{graphics/depth_vs_cellcount.vega-lite.pdf} \includegraphics[width=0.8\columnwidth]{graphics/depth_vs_cellcount-averaged.vega-lite.pdf} -\caption{Notebook size versus workflow depth in a collection of notebooks scraped from github~\cite{DBLP:journals/ese/PimentelMBF21}: On average, only one out of every 4 notebook cells must be run serially.} -\label{fig:parallelismSurvey} +\caption{Notebook size versus workflow depth in a collection of notebooks scraped from github~\cite{DBLP:journals/ese/PimentelMBF21}: On average, only one out of every 4 notebook cells has serial dependencies.} +\label{fig:parallelismSurvey} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%