However, in some systems it is necessary to link to specific libraries or use existing packages.
Some additional parameters need to be changed in the configuration to allow that.
Here we have two examples:
- At **LMU** we need to compile openmpi with a specific list of fabrics, and we need to use the external slurm as well. To do that we provide this additional configuration file:
- At **LMU**:
```yaml
spack:
compiler:"gcc@11.3.0"# desired compiler for spack
root:"$SCRATCH/autoicon-spack"# path to a spack install, will be downloaded to if not present
externals:"slurm"
user_cache_path:"$SCRATCH/autoicon-spackcache"# spack puts data here when bootstrapping, leave empty to use home folder
user_config_path:"$SCRATCH/autoicon-spackconfig"# spack puts data here when bootstrapping, leave empty to use home folder
disable_local_config:false# if true, spack installs into spack source dir
- At **LRZ** we rely on the spack package already available in the system that allows us to reuse most of the packages. To do so we add the following configuration:
- At **LRZ**:
```yaml
spack:
init:"moduleloaduser_spack"# command to load spack environment, e.g. module load spack, use spack/setup-env.sh if empty
root:""# Setting this to an empty string to use the existing module.
compiler:gcc@11.2.0# desired compiler for spack. Matching the one used for the existing packages in LRZ
compiler:"gcc@11.2.0"# desired compiler for spack
root:"$PLATFORM_SCRATCH/autoicon-spack"# path to a spack install, will be downloaded to if not present
externals:"slurm"
user_cache_path:"$PLATFORM_SCRATCH/autoicon-spackcache"# spack puts data here when bootstrapping, leave empty to use home folder
user_config_path:"$PLATFORM_SCRATCH/autoicon-spackconfig"# spack puts data here when bootstrapping, leave empty to use home folder
> **_NOTE:_** At LRZ, the compute nodes don't have git available by default.
To overcome this problem we can compile the model and setup the python environment in the login nodes.
To do that, we can overwrite in which platform these jobs will be running by adding the following content to the file **my_configuration.yml**.
```yaml
Jobs:
BUILD_ICON:
PLATFORM:LRZ_LOGIN
BUILD_PYTHON_ENVIRONMENT:
PLATFORM:LRZ_LOGIN
```
## 4. Platforms
The user needs to provide a platforms file. It can be done in different ways but the easiest is to put the yaml file in the configuration folder.
Because we wanted to execute some of the lightweight runs on the login nodes of the remote platform, it is necessary to define not only the desired platform but also an additional login.
For example, if we use the platform **LMU**, we need to define **LMU_LOGIN** as well.
> **_NOTE:_** If we need to run in a login node (i.e. LRZ_LOGIN) we need to add this as a platform as well. Specifying type=ps .
## 5. Github password-less access
In order to get icon-sources through autosubmit, the password-less through ssh keys should be configured for dkrz gitlab.