diff --git a/content/img/containerized_application.graphml b/content/img/containerized_application.graphml new file mode 100644 index 0000000..66dbfd6 --- /dev/null +++ b/content/img/containerized_application.graphml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + Container + + + + + + + + + + + Container + + + + + + + + + + + Home computer + + + + + + + + + + + Home computer +OS + + + + + + + + + + + Container software + + + + + + + + + + + HPC cluster + + + + + + + + + + + HPC cluster OS + + + + + + + + + + + Container software + + + + + + + + + + + applications are exactly the same + + + + + + + + + + + = + + + + + + + + + + + Because containers are the same + + + + + + + + + + + OS in container +image + + + + + + + + + + + Application +in container image + + + + + + + + + + + OS in container +image + + + + + + + + + + + Application +in container image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/img/containerized_application.svg b/content/img/containerized_application.svg new file mode 100644 index 0000000..594d899 --- /dev/null +++ b/content/img/containerized_application.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + Container + + Container + + + + + + + Home computer + + + + + + + Home computer + OS + + + + + + + Container software + + + + + + + HPC cluster + + + + + + + HPC cluster OS + + + + + + + Container software + applications are exactly the same + = + Because containers are the same + + + + + + + OS in container + + + + + + + Application + + + + + + + OS in container + + + + + + + Application + + + + + + + + + + + + + + + diff --git a/content/img/normal_application.graphml b/content/img/normal_application.graphml new file mode 100644 index 0000000..26f02df --- /dev/null +++ b/content/img/normal_application.graphml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + Home computer + + + + + + + + + + + Home computer +OS + + + + + + + + + + + Application + + + + + + + + + + + HPC cluster + + + + + + + + + + + HPC cluster OS + + + + + + + + + + + Application + + + + + + + + + + + applications are not exactly the same + + + + + + + + + + + + + + + + + + + + + + Because operating systems differ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/img/normal_application.svg b/content/img/normal_application.svg new file mode 100644 index 0000000..d6b76f8 --- /dev/null +++ b/content/img/normal_application.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + Home computer + + + + + + + Home computer + OS + + + + + + + Application + + + + + + + HPC cluster + + + + + + + HPC cluster OS + + + + + + + Application + applications are not exactly the same + + Because operating systems differ + + + + + + + + + + + + + + + + diff --git a/content/intro_and_motivation.rst b/content/intro_and_motivation.rst index a1c6abd..7f39d85 100644 --- a/content/intro_and_motivation.rst +++ b/content/intro_and_motivation.rst @@ -7,5 +7,57 @@ Intro about containers (on HPC) * Learn about the possibilities with containers on HPC clusters -Here some motivational paragraphs and some (many!) references. +What even is a container? +------------------------- + +Containers take their name from shipping containers: + +.. figure:: https://upload.wikimedia.org/wikipedia/commons/3/36/Shipping_container%2C_Bellarena_-_geograph.org.uk_-_1859736.jpg + + Figure 1: A shipping container in its natural habitat + +This analogue is based on the idea is that containers have a barrier +between the insides of the container and outside of the container. +This makes shipping them between ports easy. + +Based on this analogue one might think that the container is just a +storage format. + +Instead it is a way of running **an application in a self-contained +environment with all the tools that this specific application needs**. + +More traditional container launchers like docker, podman and kubernetes +also manage containers' resource usage and various other aspects. When +using apptainer, we do not need to worry about these features. + +.. admonition:: How traditional containers work + + Traditional containers use linux namespaces. + +Let's consider the following case: + +1. User installs and runs an application on a their home computer +2. They want to run the exact same application on their HPC cluster +3. The operating system / available software is different on the HPC cluster +4. Even if the program runs, it is necessarily not the **exact same program** as operating system has changed + +.. figure:: img/normal_application.svg + +With containers the user would run the exact same container on both systems: + +.. figure:: img/containerized_application.svg + +.. admonition:: Key point + + Containers are a way of launching an application in a self-contained + environment. + + Container can refer to: + + +Image sources +------------- + +- Shipping container, Bellarena by Rossographer, `CC BY-SA 2.0 `__, via `Wikimedia Commons `__ +