|
---
|
|
---
|
|
title: Configuring a standard experiment for NIC5
|
|
title: Configuring a standard experiment for NIC5
|
|
---
|
|
---
|
|
|
|
|
|
Thanks to GitLab CI/CD features and thanks to [Jacamar CI](https://ecp-ci.gitlab.io/docs/admin/jacamar/introduction.html), you can configure a standard experiment for BAMHBI to run on a cluster which you will be able to kickstart from ULiège GitLab with a simple click. For the time being, all CI/CD experiments of the MAST will be run on the NIC5 cluster, notably to benefit from the many MAST resources already stored on NIC5.
|
|
Thanks to GitLab CI/CD features and thanks to [Jacamar CI](https://ecp-ci.gitlab.io/docs/admin/jacamar/introduction.html), you can configure a standard experiment for BAMHBI to run on a cluster which you will be able to kickstart from ULiège GitLab with a simple click. For the time being, all CI/CD experiments of the MAST will be run on the NIC5 cluster, notably to benefit from the many MAST resources already stored on NIC5.
|
|
|
|
|
|
This tutorial details the requirements you should meet beforehand, for both security and storage concerns, then how you can write a suitable CI/CD configuration to create your experiment.
|
|
This tutorial details the requirements you should meet beforehand, for both security and storage concerns, then how you can write a suitable CI/CD configuration to create your experiment.
|
... | @@ -120,7 +121,7 @@ my_nic5_job: |
... | @@ -120,7 +121,7 @@ my_nic5_job: |
|
...
|
|
...
|
|
```
|
|
```
|
|
|
|
|
|
6) However, **it's strongly recommended to write your job instructions in a _nested_ Shell script (``.sh``), i.e., that will be called by your YAML script**. On the one hand, such a script will be pretty **similar to your typical NIC5 submission script**, with a few technical differences (see [Technical considerations](cicd-with-nic5#technical-considerations)). On the other hand, there are multiple good reasons for proceeding this way.
|
|
6) However, **it's strongly recommended to write your job instructions in a _nested_ Shell script (``.sh``), i.e., that will be called by your YAML script**. On the one hand, such a script will be pretty **similar to your typical NIC5 submission script**, with a few technical differences (see [Technical considerations for your nested script](cicd-with-nic5#technical-considerations-for-your-nested-script)). On the other hand, there are multiple good reasons for proceeding this way.
|
|
* The first reason is that YAML syntax is not suitable to write complex sets of instructions which may include loops, conditions, etc.
|
|
* The first reason is that YAML syntax is not suitable to write complex sets of instructions which may include loops, conditions, etc.
|
|
* The second reason is that specific characters, such as `:`, which you may use to start running NEMO (with BAMHBI) with MPI, are ambiguous with respects to YAML syntax.
|
|
* The second reason is that specific characters, such as `:`, which you may use to start running NEMO (with BAMHBI) with MPI, are ambiguous with respects to YAML syntax.
|
|
* Finally, and perhaps most importantly for your colleagues, writing your job instructions in a nested script allows you to comment them to explain what you are doing. This is especially important if you are using a unique configuration.
|
|
* Finally, and perhaps most importantly for your colleagues, writing your job instructions in a nested script allows you to comment them to explain what you are doing. This is especially important if you are using a unique configuration.
|
... | @@ -159,7 +160,7 @@ By step 4 in the previous section, the job is normally already good to run on NI |
... | @@ -159,7 +160,7 @@ By step 4 in the previous section, the job is normally already good to run on NI |
|
exit_codes: 1
|
|
exit_codes: 1
|
|
```
|
|
```
|
|
|
|
|
|
### Technical considerations
|
|
### Technical considerations for your nested script
|
|
|
|
|
|
The script you will call within the YAML job can be virtually identical to what you would write as a script to submit on a cluster by yourself. However, there are a few technical considerations to take into account due to Jacamar CI, on top of paying attention to where you get your forcings from, where you will write your outputs (e.g., on the cluster directly or as job artifacts).
|
|
The script you will call within the YAML job can be virtually identical to what you would write as a script to submit on a cluster by yourself. However, there are a few technical considerations to take into account due to Jacamar CI, on top of paying attention to where you get your forcings from, where you will write your outputs (e.g., on the cluster directly or as job artifacts).
|
|
|
|
|
... | | ... | |