Update Documentation authored by Peter Heger's avatar Peter Heger
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
## Get access ## Get access
To gain access to RAMSES, you need to fulfill three requirements (in any order): To gain access to Ramses, you need to fulfill three requirements (in any order):
- apply for a project - apply for a project
- secure the connection with ssh keys - secure the connection with ssh keys
...@@ -140,7 +140,7 @@ You can now use it within your session without having to re-enter your SSH Key p ...@@ -140,7 +140,7 @@ You can now use it within your session without having to re-enter your SSH Key p
If you have to use a Windows System: [Key-based authentication in OpenSSH for Windows](https://learn.microsoft.com/en-gb/windows-server/administration/openssh/openssh_keymanagement) If you have to use a Windows System: [Key-based authentication in OpenSSH for Windows](https://learn.microsoft.com/en-gb/windows-server/administration/openssh/openssh_keymanagement)
If you already have access to RAMSES but you are using the CHEOPS key, we advise you to create your own SSH key on your local machine/laptop and then add the public key to your `.ssh/authorized_keys` file in your home on RAMSES. Any text editor will work for this. If you already have access to Ramses but you are using the CHEOPS key, we advise you to create your own SSH key on your local machine/laptop and then add the public key to your `.ssh/authorized_keys` file in your home on Ramses. Any text editor will work for this.
**PLEASE NOTE**: Do no share SSH Keys with other people and do not copy private keys to other computers. Just create new SSH Key pairs on each computer you use regularly. You can also use [SSH Agent Forwarding](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding), where an SSH Key is taken along into a SSH session to a remote computer, eliminating the need to create many keys. **PLEASE NOTE**: Do no share SSH Keys with other people and do not copy private keys to other computers. Just create new SSH Key pairs on each computer you use regularly. You can also use [SSH Agent Forwarding](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding), where an SSH Key is taken along into a SSH session to a remote computer, eliminating the need to create many keys.
...@@ -186,7 +186,7 @@ In this example, if you choose '1', an authentication request is pushed to your ...@@ -186,7 +186,7 @@ In this example, if you choose '1', an authentication request is pushed to your
## Data transfer ## Data transfer
To transfer your data to the cluster, we recommend using [scp](https://tldr.inbrowser.app/pages/common/scp) (**s**ecure **c**o**p**y) - either on the command line (CLI/Terminal) or with a graphical client (e.g. WinSCP).\ To transfer your data to the cluster, we recommend using [scp](https://tldr.inbrowser.app/pages/common/scp) (**s**ecure **c**o**p**y) - either on the command line (CLI/Terminal) or with a graphical client (e.g. WinSCP).
There is no automatic mechanism to sync/copy files between Cheops and Ramses. You have to copy your files yourself. There is no automatic mechanism to sync/copy files between Cheops and Ramses. You have to copy your files yourself.
...@@ -282,8 +282,12 @@ sacctmgr show assoc -n user=$USER format=Account ...@@ -282,8 +282,12 @@ sacctmgr show assoc -n user=$USER format=Account
\[coming soon\] \[coming soon\]
## Environment Modules ## Environment Modules
Ramses offers a wide range of development software (compilers, libraries, debuggers, profilers, etc.) and scientific applications. Many of these programs require to set or change environment variables to work properly, e.g. `PATH`, `LD_LIBRARY_PATH`, or `MANPATH`. Ramses uses the [Environment Modules](http://modules.sourceforge.net) package to take care of these modifications and to access, or switch between, various applications and software versions. The Environment Modules package provides the means to change the environment dynamically by loading, switching, or unloading specific software modules. Module installation is managed by the python framework [EasyBuild](https://easybuild.io/) to automatically resolve software dependencies.
To avoid software conflicts (resulting from incompatibilities, versioning, dependencies, etc.), software is provided as Environment Modules. By using Modules, it is possible to have different versions of software installed on the system.\ To avoid software conflicts (resulting from incompatibilities, versioning, dependencies, etc.), software is provided as Environment Modules. By using Modules, it is possible to have different versions of software installed on the system.\
You can select the module(s) you need directly on the command line or in your scripts. You can select the module(s) you need directly on the command line or in your scripts.
...@@ -298,6 +302,30 @@ Basic commands are: ...@@ -298,6 +302,30 @@ Basic commands are:
- module unload \<module> (module purge \<module>: also unload dependencies) - module unload \<module> (module purge \<module>: also unload dependencies)
``` ```
### Overview of important module commands
| Command | Function |
|--------------------------------|----------------------------|
| `module avail` | Show all available modules |
| `module whatis <module>` | Show a short description of all or a specific module |
| `module display|show <module>` | Show environment changes caused by loading the module |
| `module add|load <module>` | Load module `<module>`: sets all necessary variables and loads additional modules if required |
| `module list` | Show all currently loaded modules |
| `module rm|unload <module>` | Remove module `<module>`: removes module-specific environment settings and dependent modules|
| `module purge` | Remove all currently loaded modules |
### Usage notes
A module can be identified either by its name or by a combination of name and version, for example `intel` or `intel/19.0`, respectively. When only a module name is specified, its default version is loaded - as shown by the command `module avail`.
- Loading a module changes the environment of the shell in which it is loaded
- If already loaded modules are in conflict with a module to add, an according error message is displayed and no further changes are made
- If additional modules are required by the module to load, these are loaded recursively and an according message is displayed
- Removing a module reverts the changes in the environment of the shell
- If other modules depend on the module to remove, these are removed recursively and an according message is displayed
## Getting help ## Getting help
#### HPC support #### HPC support
... ...
......