Machine Configuration
General Information
FabSim3 includes a list of preconfigured machines.
The parameters for each machine are stored in .yml
files.
While some parameters are globally valid, others are specific to the user or the simulation run.
FabSim3 thus uses three different machine configuration files:
- machine-specific configuration file:
$FABSIM3_HOME/fabsim/deploy/machines.yml
- This file is part of the public FabSim3 repository.
- It contains the machine-agnostic settings like the remote url, job scheduler commands, etc.
- You should not need to change this file.
- user-specific configuration file:
$FABSIM3_HOME/fabsim/deploy/machines_user.yml
- This file is not part of the FabSim3 repository, it is created during the installation of FabSim3.
- It contains user-agnostic settings like username, account, etc.
- You should change this file to match your personal remote machine settings once you have installed FabSim3.
- plugin-specific configuration file:
$FABSIM3_HOME/plugins/FabMaMiCo/machines_FabMaMiCo_user.yml
- This file is not part of the FabMaMiCo plugin, you need to create it manually by copying and renaming the exemplary file.
- It contains plugin-specific parameters, like the remote installation path for MaMiCo, etc.
- Adapt this file to your needs and even consider changing it for individual task executions.
.
├─ fabsim/
│ └─ deploy/
│ ├─ machines.yml
│ ├─ machines_user.yml
│ ├─ (machines_user_example.yml)
│ └─ (machines_user_backup.yml)
├─ plugins/
│ └─ FabMaMiCo/
│ ├─ machines_FabMaMiCo_user.yml
│ └─ (machines_FabMaMiCo_user_example.yml)
Parameters that are defined multiple times are resolved in the following order: 1. Plugin-specific configuration file 2. User-specific configuration file 3. Machine-specific configuration file
This means a parameter defined in the plugin-specific configuration file will overwrite the same parameter defined in the user-specific configuration file, which in turn will overwrite the same parameter defined in the machine-specific configuration file.
Parameters can contain placeholders ($placeholder
).
If specified, they are resolved in runtime.
Set up a Remote Machine
Please follow the steps to configure your remote machine for FabSim3:
-
Machine-specific configuration file:
$FABSIM3_HOME/fabsim/deploy/machines.yml
- Check if the remote machine you want to use is already listed in the
machines.yml
file
- Check if the remote machine you want to use is already listed in the
-
User-specific configuration file:
$FABSIM3_HOME/fabsim/deploy/machines_user.yml
- Change the settings in
machines_user.yml
to match your personal remote machine settings - An example is given here:
- Change the settings in
-
Plugin-specific configuration file:
$FABSIM3_HOME/plugins/FabMaMiCo/machines_FabMaMiCo_user.yml
- Copy the exemplary file
machines_FabMaMiCo_user_example.yml
and rename it tomachines_FabMaMiCo_user.yml
- Change the settings in
machines_FabMaMiCo_user.yml
to match your personal plugin/simulation settings - An example is given here:
hsuper: compile_on_login_node: yes cores: 1 partition_name: "small_shared" job_name_template: 'fabmamico_${config}_${machine_name}_${cores}${job_desc}' max_job_name_chars: 80 modules: compile: ["load gcc/13.2.0", "load cmake/3.27.9", "load openmpi/5.0.3-cuda", "load eigen/3.4.0"] run: ["load openmpi/5.0.3-cuda"] postprocess: ["load python/3.11"]
- Copy the exemplary file
You can find a detailed explanation of the parameters on the next page (Parameters).