Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Update compiler summary image #2037

Merged
merged 1 commit into from
Nov 29, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions examples/compiler/00_index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added it as a GH gist under version control, lemme know for any better alternatives or If I should put in some place in the org

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would probably do what we usually do for these static images and just put the SVG in the repo. That's what we do for fixed png s in the seismic tutorials

"\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",
Expand All @@ -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"
},
Expand All @@ -61,7 +66,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.1"
"version": "3.10.6"
}
},
"nbformat": 4,
Expand Down