docs/source/grid5000_tutorial.rst in kameleon-builder-2.1.1 vs docs/source/grid5000_tutorial.rst in kameleon-builder-2.1.3
- old
+ new
@@ -200,10 +200,11 @@
The recipe looks like this:
.. literalinclude:: debian7.yaml
:lines: 69-125
+ :language: yaml
The previous recipe build a debian wheezy using qemu.
It looks verbose but normally you as user you wont see it.
You will use it as a template in a way that will be explained later.
The recipe specify all the steps, configurations values that are going to be used
@@ -221,13 +222,13 @@
That you can try out by executing::
$ sudo qemu-system-x86_64 -enable-kvm builds/debian7/debian7.qcow2
-
+--------------------------------
Customizing a software appliance
-================================
+--------------------------------
Now, lets customize a given template in order to create a software appliance that have OpenMPI, Taktuk and tools necessary to compile source code.
Kameleon allows us to extend a given template. We will use this for adding the necessary software. Type the following::
$ kameleon new debian_customized debian7
@@ -277,32 +278,16 @@
$ kameleon build debian_customized.yaml
Then, you can follow the same steps as before to try it out and verify that the software was installed.
Now, let's make things a little more complicated. We will now compile and install TAU in our system.
-So, for that let's create a step file that will look like this::
+So, for that let's create a step file that will look like this:
- - get_tau:
- - exec_in: cd /tmp/
- - exec_in: wget -q http://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.22.2.tar.gz
- - exec_in: wget -q http://www.cs.uoregon.edu/research/tau/pdt_releases/pdt-3.19.tar.gz
- - pdt_install:
- - exec_in: cd /tmp/
- - exec_in: tar -xzf pdt-3.19.tar.gz
- - exec_in: cd /tmp/pdtoolkit-3.19
- - exec_in: ./configure -prefix=/usr/local/pdt-install
- - exec_in: make clean install
+.. literalinclude:: tau_install.yaml
+ :language: yaml
- - tau_install:
- - exec_in: cd /tmp/
- - exec_in: tar -xzf tau-2.22.2.tar.gz
- - exec_in: cd /tmp/tau-2.22.2
- - exec_in: ./configure -prefix=/usr/local/tau-install -pdt=/usr/local/pdt-install/ -mpiinc=/usr/local/openmpi-install/include -mpilib=/usr/local/openmpi-install/lib
- - exec_in: make install
-
-
You have to put it under the directory *steps/setup/* and you can call it tau_install.
In order to use it in your recipe, modify it as follows::
extend: debian7
@@ -369,11 +354,11 @@
then *abort* for stopping the execution and update the step file with the previous line.
If you carry out the building again you will see that now everything goes smoothly.
Again Kameleon will use the checkpoint system to avoid starting from scratch.
---------------------------------
-Creating a Grid'5000 environment.
+Creating a Grid'5000 environment
---------------------------------
Now, let's use the extend and export functionalities for creating a Grid'5000 environment.
With this step we will see how code can be re-used with Kameleon.
Therefore, we can extend the recipe created before::
@@ -457,10 +442,11 @@
With luck the image will be deployed on baremetal after some few minutes.
+------------------------------
Playing with Kameleon contexts
------------------------------
The environment that has just been deployed is a basic debian.
It doesn't have the modules required for infiniband and
@@ -469,11 +455,11 @@
In this case would be good to be able to use the environments already
provided by Grid'5000. This can be done by using Kameleon contexts.
The idea is to re-utilize the same recipe we have written before.
Kameleon already provides a recipe for interacting with Grid'5000 where
-the configuration of the context is as follows:
+the configuration of the contexts is as follows:
* Local context: it is the user's machine.
* Context out: it is the site frontend.
It is used for submitting a job and deploying
@@ -489,19 +475,20 @@
And we can just make a copy of our previous recipe (debian customized) and
we call it for instance debian_customized_g5k.yaml.
This recipe will look like this:
.. literalinclude:: debian_customized_g5k.yaml
+ :language: yaml
-
But there will be a problem with the installation of TAU. Because
we download the tarball directly from its web site which is an
operation not allowed in Grid'5000. Just certain sites are accessible
using a web proxy.
To solve this we have to modify the step *tau_install* like this:
.. literalinclude:: tau_install_g5k.yaml
+ :language: yaml
Here, we change the context for performing the operation of download.
For now on, it will be the local context that is going to download the
tarballs. Then we have to put them into the *in contex* for
this operation we use a pipe. Pipes are a means for communicating
@@ -509,5 +496,30 @@
With those changes we will be able to build a G5k environment with
our already tested configuration. The recipe saves
the environment on the Kameleon workdir on the frontend.
Thus the environment is accessible to be deployed the number of times needed.
+
+-------------
+Atlas example
+-------------
+
+Here, a more complicated example, where we install the benchmark HPL which
+is used to benchmark and rank supercomputers for the TOP500 list:
+
+.. literalinclude:: atlas_debian_g5k.yaml
+ :language: yaml
+
+We have to add to the *steps/setup* directory the following files *install_atlas.yaml* and *install_hpl.yaml* for installing atlas and hpl respectively,
+Atlas:
+
+.. literalinclude:: install_atlas.yaml
+ :language: yaml
+
+HPL:
+
+.. literalinclude:: install_hpl.yaml
+ :language: yaml
+
+
+.. note::
+ The building of this appliance could take around half an hour.