Add Gothic
This commit is contained in:
parent
5e055979f9
commit
0d606942ec
@ -22,7 +22,7 @@ Multiple versions are available. As of August 22, 2022, the latest
|
|||||||
installed version is **Gothic 8.3 QA**.
|
installed version is **Gothic 8.3 QA**.
|
||||||
|
|
||||||
Future releases will be placed in the PSI Modules system, therefore,
|
Future releases will be placed in the PSI Modules system, therefore,
|
||||||
loading it through PModules it will be possible. However, in the
|
loading it through PModules will be possible at some point. However, in the
|
||||||
meantime one has to use the existing installations present in
|
meantime one has to use the existing installations present in
|
||||||
`/data/project/general/software/gothic`.
|
`/data/project/general/software/gothic`.
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ meantime one has to use the existing installations present in
|
|||||||
|
|
||||||
### General requirements
|
### General requirements
|
||||||
|
|
||||||
When running Gothic in interactive or batch mode, there has to consider
|
When running Gothic in interactive or batch mode, one has to consider
|
||||||
the following requirements:
|
the following requirements:
|
||||||
|
|
||||||
* **Use always one node only**: Gothic runs a single instance.
|
* **Use always one node only**: Gothic runs a single instance.
|
||||||
@ -40,12 +40,12 @@ multiple nodes if the Slurm allocation definition is ambiguous.
|
|||||||
* **Use one task only**: Gothic spawns one main process, which then will
|
* **Use one task only**: Gothic spawns one main process, which then will
|
||||||
spawn multiple threads depending on the number of available cores.
|
spawn multiple threads depending on the number of available cores.
|
||||||
Therefore, one has to specify 1 task (`--ntasks=1` or `-n 1`).
|
Therefore, one has to specify 1 task (`--ntasks=1` or `-n 1`).
|
||||||
* **Use multiple CPUs**: since Gothic will spawn multiple threads, then$
|
* **Use multiple CPUs**: since Gothic will spawn multiple threads, then
|
||||||
multiple CPUs can be used. Therefore, adding `--cpus-per-task=<num_cpus>`
|
multiple CPUs can be used. Adding `--cpus-per-task=<num_cpus>`
|
||||||
or `-c <num_cpus>` is, in general, recommended.
|
or `-c <num_cpus>` is in general recommended.
|
||||||
`<num_cpus>` must never exceed the maximum number of CPUS in a compute
|
Notice that `<num_cpus>` must never exceed the maximum number of CPUS
|
||||||
node (usually *88*).
|
in a compute node (usually *88*).
|
||||||
* **Use multithread**: Gothic is a OpenMP based software, therefore,
|
* **Use multithread**: Gothic is an OpenMP based software, therefore,
|
||||||
running in hyper-threading mode is strongly recommended. Use the option
|
running in hyper-threading mode is strongly recommended. Use the option
|
||||||
`--hint=multithread` for enforcing hyper-threading.
|
`--hint=multithread` for enforcing hyper-threading.
|
||||||
* **[Optional]** *Memory setup*: The default memory per CPU (4000MB)
|
* **[Optional]** *Memory setup*: The default memory per CPU (4000MB)
|
||||||
@ -55,19 +55,20 @@ can always set the `--mem=<mem_in_MB>` option. This is in general
|
|||||||
|
|
||||||
### Interactive
|
### Interactive
|
||||||
|
|
||||||
In general, **is not allowed to run CPU intensive interactive jobs in the
|
**Is not allowed to run CPU intensive interactive jobs in the
|
||||||
login nodes**. Only applications capable to limit the number of cores are
|
login nodes**. Only applications capable to limit the number of cores are
|
||||||
allowed to run for longer time. Also, **running in the login nodes is not
|
allowed to run for longer time. Also, **running in the login nodes is not
|
||||||
efficient**, since resources are shared with other processes and users.
|
efficient**, since resources are shared with other processes and users.
|
||||||
|
|
||||||
Is possible to submit interactive jobs to the cluster by allocating a
|
Is possible to submit interactive jobs to the cluster by allocating a
|
||||||
full compute node, or even by allocating a few cores only.
|
full compute node, or even by allocating a few cores only. This will grant
|
||||||
|
dedicated CPUs and resources and in general it will not affect other users.
|
||||||
|
|
||||||
In general, is strongly recommended use the `hourly` partition, which
|
For interactive jobs, is strongly recommended to use the `hourly` partition,
|
||||||
in usually has a good availability of nodes.
|
which usually has a good availability of nodes.
|
||||||
|
|
||||||
For longer runs, one should use the `daily` (or `general`) partition,
|
For longer runs, one should use the `daily` (or `general`) partition.
|
||||||
however, getting interactive access to nodes on these partitions is
|
However, getting interactive access to nodes on these partitions is
|
||||||
sometimes more difficult if the cluster is pretty full.
|
sometimes more difficult if the cluster is pretty full.
|
||||||
|
|
||||||
To submit an interactive job, consider the following requirements:
|
To submit an interactive job, consider the following requirements:
|
||||||
@ -78,9 +79,9 @@ using the Slurm option `--x11` is necessary.
|
|||||||
one has to define a scratch area with the `GTHTMP` environment variable.
|
one has to define a scratch area with the `GTHTMP` environment variable.
|
||||||
There are two options:
|
There are two options:
|
||||||
1. **Use local scratch**: Each compute node has its own `/scratch` area.
|
1. **Use local scratch**: Each compute node has its own `/scratch` area.
|
||||||
This is independent to any other node, therefore not visible by other nodes.
|
This area is independent to any other node, therefore not visible by other nodes.
|
||||||
Using the top directory `/scratch` for interactive jobs is the simplest way,
|
Using the top directory `/scratch` for interactive jobs is the simplest way,
|
||||||
and it can be defined before or after the allocation creation:
|
and it can be defined before or after the allocation creation, as follows:
|
||||||
```bash
|
```bash
|
||||||
# Example 1: Define GTHTMP before the allocation
|
# Example 1: Define GTHTMP before the allocation
|
||||||
export GTHTMP=/scratch
|
export GTHTMP=/scratch
|
||||||
@ -105,18 +106,18 @@ allocation! In example:
|
|||||||
mkdir -p $GTHTMP
|
mkdir -p $GTHTMP
|
||||||
```
|
```
|
||||||
Creating sub-directories makes the process more complex, therefore
|
Creating sub-directories makes the process more complex, therefore
|
||||||
using just `/scratch` is simpler.
|
using just `/scratch` is simpler and recommended.
|
||||||
2. **Shared scratch**: Using shared scratch allows to have a
|
2. **Shared scratch**: Using shared scratch allows to have a
|
||||||
directory visible from all compute nodes and login nodes. Therefore,
|
directory visible from all compute nodes and login nodes. Therefore,
|
||||||
one can use `/shared-scratch` to achieve the same as in **1.**, but
|
one can use `/shared-scratch` to achieve the same as in **1.**, but
|
||||||
creating a sub-directory needs to be done just once.
|
creating a sub-directory needs to be done just once.
|
||||||
|
|
||||||
However, `/scratch` usually provides better performance and in addition
|
Please, consider that `/scratch` usually provides better performance and,
|
||||||
will offload the main storage, therefore using **local scratch** is strongly
|
in addition, will offload the main storage. Therefore, using **local scratch**
|
||||||
recommended, and only use the shared scratch when strongly necessary.
|
is strongly recommended. Use the shared scratch only when strongly necessary.
|
||||||
* **Use the `hourly` partition**: Using the `hourly` partition is
|
* **Use the `hourly` partition**: Using the `hourly` partition is
|
||||||
recommended for running interactive jobs, since latency is in general
|
recommended for running interactive jobs (latency is in general
|
||||||
lower. However, `daily` and `general` are also available if you expect
|
lower). However, `daily` and `general` are also available if you expect
|
||||||
longer runs, but in these cases you should expect longer waiting times.
|
longer runs, but in these cases you should expect longer waiting times.
|
||||||
|
|
||||||
These requirements are in addition to the requirements previously described
|
These requirements are in addition to the requirements previously described
|
||||||
@ -136,7 +137,7 @@ salloc --partition=hourly -N 1 -n 1 -c $num_cpus --hint=multithread
|
|||||||
|
|
||||||
### Batch job
|
### Batch job
|
||||||
|
|
||||||
The Slurm cluster is in general used by non interactive batch jobs. Users
|
The Slurm cluster is mainly used by non interactive batch jobs: Users
|
||||||
submit a job, which goes into a queue, and waits until Slurm can assign
|
submit a job, which goes into a queue, and waits until Slurm can assign
|
||||||
resources to it. In general, the longer the job, the longer the waiting time,
|
resources to it. In general, the longer the job, the longer the waiting time,
|
||||||
unless there are enough free resources to inmediately start running it.
|
unless there are enough free resources to inmediately start running it.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user