Instructor's guide
==================
Editing the material
^^^^^^^^^^^^^^^^^^^^
This website uses `sphinx-lesson `_. Pages can be added in a variety of formats:
- Jupyter notebooks (``.ipynb``), like all the pages for Day 1.
- reStructuredText (``.rst``), as usual for Sphinx-based documentation pages.
- Markdown (``.md``), like all the pages for Day 2.
However, note that we **do not** use plain Markdown, but the `MyST
`_ parser (short for *Markedly
Structured Text*) that allows for richer content. For example, it is possible to
embed Jupyter notebook input and/or output cells *via* `MyST-nb
`_ or even write *entire*
notebooks in plain-text!
Here are some quick guides to ``.rst`` and ``.md`` formats:
- For ``MyST`` https://myst-parser.readthedocs.io/en/latest/using/syntax.html
- For reStructuredText https://docutils.sourceforge.io/docs/user/rst/quickref.html
- For ``MyST-nb`` https://myst-nb.readthedocs.io/en/latest/use/markdown.html
Useful notes on Jupyter notebooks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sometimes it's necessary to hide and/or remove content from a notebook when
using it as training material. This can be accomplished with *tags*.
In JupyterLab
-------------
In this example, we want to remove the cell entirely when rendering it as a webpage.
.. figure:: img/tags-lab.png
:scale: 50%
:alt: Setting tags in with the JupyterLab interface.
:align: center
In Jupyter notebooks
--------------------
In this example, we want to remove the cell entirely when rendering it as a webpage.
.. figure:: img/tags-notebook.png
:scale: 50%
:alt: Setting tags in with the notebook interface.
:align: center
In ``MyST-nb``
--------------
In this example, we only want to show the *output* of executing the cell.
.. code-block:: md
```{code-block} ipython3
:tags: [remove-input]
import py3Dmol as p3d
v = p3d.view(width=400, height=400)
with open("inputs/porphyrin.xyz", "r") as fh:
porphyrin_xyz = fh.read()
v.addModel(porphyrin_xyz, "xyz")
v.setStyle({'stick':{}})
v.zoomTo()
v.show()
```
Learning outcomes
^^^^^^^^^^^^^^^^^
- Familiarize with VeloxChem.
- Show efficient usage on Dardel.
- Give enough information to adapt to HPC clusters similar to Dardel, in particular LUMI-C.
First iteration
^^^^^^^^^^^^^^^
This workshop is an offshoot of the earlier `VeloxChem: quantum chemistry from
laptop to HPC `_. In the future, we
might decide to merge the two into one single lesson, taught in more that 2
half days.
**Day 1 - Thursday 3 March 2022**
- Day 1 is a mix of lectures and interactive work.
- The introductions is longer than usual because it includes a 10-minute
overview on the VeloxChem project.
- Episode 2 :ref:`modern-hpc-architectures` also gives details about
Dardel's architecture.
- Episode 3 is mostly a lecture. It's delivered as a notebook with interactive
plots that attendees can play with live.
- The two "scaling study" episodes are done in breakout rooms after a short
introduction in the main room.
.. csv-table::
:widths: auto
:align: center
:delim: ;
9:00 - 9:20 ; Welcome and introduction to the training course
9:20 - 9:40 ; :doc:`notebooks/first-steps`
9:40 - 9:45 ; Break
9:45 - 10:15 ; :ref:`modern-hpc-architectures`
10:15 - 10:25 ; Break
10:25 - 10:55 ; :ref:`performance-theory`
10:55 - 11:05 ; Break
11:05 - 11:35 ; :ref:`scf-scaling-study`
11:35 - 11:45 ; Break
11:45 - 12:15 ; :ref:`eri-overview`
12:15 - 12:30 ; Wrap-up
**Day 2 - Friday 4 March 2022**
- All episodes are done in breakout rooms after a short introduction in the
main room.
.. csv-table::
:widths: auto
:align: center
:delim: ;
9:00 - 9:10 ; What did we cover yesterday?
9:10 - 9:40 ; :ref:`linrsp-scaling-study`
9:40 - 9:50 ; Break
9:50 - 10:30 ; :ref:`x-ray-cpp`
10:30 - 10:40 ; Break
10:40 - 11:20 ; :ref:`exciton`
11:20 - 11:30 ; Break
11:30 - 12:10 ; :ref:`ntos`
12:10 - 12:15 ; Break
12:15 - 12:30 ; Wrap-up