From bea5580a41cad9144499815c0b649848295e814f Mon Sep 17 00:00:00 2001 From: George Bisbas Date: Mon, 28 Nov 2022 19:56:09 +0000 Subject: [PATCH] docs: Update compiler summary image --- examples/compiler/00_index.ipynb | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/examples/compiler/00_index.ipynb b/examples/compiler/00_index.ipynb index 6878c38702..68ec165aa2 100644 --- a/examples/compiler/00_index.ipynb +++ b/examples/compiler/00_index.ipynb @@ -8,7 +8,7 @@ "\n", "In Devito, an `Operator` carries out three fundamental tasks: generation of low-level code, JIT compilation, and execution. Overall, the lowering process performed by an `Operator` – from high-level equations to dynamically compiled and executable code – consists of multiple compiler passes, summarized in the Figure bellow. The following series of notebooks will describe these compilation passes in a hands-on fashion. We will explore the heart of the `Operator` class, which orchestrates code generation and compilation. For more details, see the [Operator class](https://github.com/devitocodes/devito/blob/master/devito/operator/operator.py).\n", "\n", - "![compiler-stages](https://user-images.githubusercontent.com/478143/57969349-6a6ad980-7976-11e9-89ae-8866e383e2e9.png)\n", + "![compiler-stages](https://raw.githubusercontent.com/gist/georgebisbas/cab358b6ee2c834c1eb7100dabf832de/raw/bfbe3ba8cc8ce6d58c57eebd39941b5868ffd942/devito-outline-4.7.svg)\n", "\n", "The reader of this series of tutorials is expected to be familiar with the basic Devito API (i.e., `Grid`, `Function`/`TimeFunction`, `Operator`, ...). Otherwise, the CFD tutorials in `examples/cfd` are a better place to start.\n", "\n", @@ -25,29 +25,34 @@ " * Domain alignment\n", " * Eq -> LoweredEq\n", "* Clustering\n", - "* Symbolic optimization via the Devito Symbolic Engine (DSE)\n", - "* Tree-fication\n", + "* Symbolic optimization via a set of compilation passes operating on symbolic expressions\n", + "* Tree-fication (from symbolic expressions to Abstract Syntax Tree)\n", " * Clusters -> ScheduleTree\n", " * ScheduleTree -> Iteration/Expression Tree (IET)\n", " * IET examples\n", " * [Part A: top-down inspection](https://github.com/devitocodes/devito/blob/master/examples/compiler/03_iet-A.ipynb)\n", " * [Part B: bottom-up construction](https://github.com/devitocodes/devito/blob/master/examples/compiler/04_iet-B.ipynb)\n", "* IET analysis\n", - "* Loop optimization via the Devito Loop Engine (DLE)\n", + "* Loop optimization via a set of compilation passes operating on the IET\n", " * Classic transformations (SIMD, blocking, ...)\n", - " * OpenMP parallelism\n", - " * MPI parallelism\n", + " * OpenMP shared-memory parallelism\n", + " * MPI distributed-memory parallelism\n", "* Finalization\n", "\n", "### References\n", "\n", - "F. Luporini, M. Lange, M. Loubotin, N. Kukreja, J. Huckelheim, C. Yount, P. Witte, P. Kelly, G. Gorman, F. Herrmann. _Architecture and Performance of Devito, A System for Automated Stencil Computation_. Submitted to SIAM Journal on Scientific Computing, 2018. [arXiv:1807.03032]" + "F. Luporini, M. Lange, M. Loubotin, N. Kukreja, J. Huckelheim, C. Yount, P. Witte, P. Kelly, G. Gorman, F. Herrmann. _Architecture and Performance of Devito, A System for Automated Stencil Computation_. ACM Trans. Math. Softw. 46, 1, Article 6 (March 2020), 28 pages. [https://dl.acm.org/doi/10.1145/3374916]" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -61,7 +66,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.1" + "version": "3.10.6" } }, "nbformat": 4,