Differences
This shows you the differences between two versions of the page.
doku:quick3save [2014/11/25 10:28] – created ir | doku:quick3save [2015/05/28 12:19] (current) – [A simple job submission script] markus | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | | + | ==== Brief Introduction ==== |
- | It is likely that your copy of e2fsck is old and/or doesn' | + | |
- | It is also possible the @j @S is corrupt. | + | |
- | Clearing fields beyond the V1 @j @S... | + | === Login === |
+ | < | ||
+ | ssh < | ||
+ | </ | ||
+ | In the following you will be asked to type //first// your password and //then// your **o**ne **t**ime **p**assword (OTP; sms token). | ||
- | is %N; @s zero. | + | [[doku: |
- | now = %T) is in the future. | + | |
- | (by less than a | + | === VSC 3 === |
+ | |||
+ | Once you have logged into VSC-3, type: | ||
+ | * **module avail** | ||
+ | * **module list** | ||
+ | * **module unload // | ||
+ | * **module load // | ||
+ | == Note: == | ||
+ | |||
+ | - **//xyz//** format corresponds exactly to the output of **module avail**. Thus, in order to load or unload a selected module, copy and paste exactly the name listed by **module avail**.\\ | ||
+ | - a list of **module load/ | ||
+ | |||
+ | When all required/ | ||
+ | |||
+ | === SLURM (Simple Linux Utility for Resource Management) === | ||
+ | |||
+ | |||
+ | Contrary to previous VSC* times, the scheduler on VSC-3 is [[http:// | ||
+ | For basic information type: | ||
+ | * **sinfo** | ||
+ | * **scontrol show // | ||
+ | * **squeue** | ||
+ | ==== A simple job submission script==== | ||
+ | |||
+ | vi check.slrm\\ | ||
+ | < | ||
+ | # | ||
+ | # | ||
+ | #SBATCH -J chk | ||
+ | #SBATCH -N 2 | ||
+ | #SBATCH --ntasks-per-node=16 | ||
+ | #SBATCH --ntasks-per-core=1 | ||
+ | |||
+ | mpirun -np 32 a.out | ||
+ | |||
+ | </ | ||
+ | * **-J** | ||
+ | * **-N** | ||
+ | * **--ntasks-per-node** | ||
+ | * **--ntasks-per-core** | ||
+ | * **mpirun -np 32 a.out** | ||
+ | * in SLURM **srun** is preferred over **mpirun**, so an equivalent call to the one on the final line above could have been **srun -l -N2 -n32 a.out** where the **-l** just adds task-specific labels to the beginning of all output lines. | ||
+ | |||
+ | ==Job submission=== | ||
+ | |||
+ | < | ||
+ | [username@l31 ~]$ sbatch check.slrm | ||
+ | [username@l31 ~]$ squeue | ||
+ | [username@l31 ~]$ scancel | ||
+ | # is obtained from the previous command | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===Another simple job submission script=== | ||
+ | |||
+ | This example is for using a set of 4 nodes to compute a series of jobs in two stages, each of them split into two separate subjobs. \\ | ||
+ | |||
+ | vi check.slrm\\ | ||
+ | < | ||
+ | # | ||
+ | # | ||
+ | #SBATCH -J chk | ||
+ | #SBATCH -N 4 | ||
+ | #SBATCH --ntasks-per-node=16 | ||
+ | #SBATCH --ntasks-per-core=1 | ||
+ | |||
+ | export I_MPI_PMI_LIBRARY=/ | ||
+ | |||
+ | scontrol show hostnames $SLURM_NODELIST | ||
+ | |||
+ | srun -l -N2 -r0 -n32 job1.scrpt & | ||
+ | srun -l -N2 -r2 -n32 job2.scrpt & | ||
+ | wait | ||
+ | |||
+ | srun -l -N2 -r2 -n32 job3.scrpt & | ||
+ | srun -l -N2 -r0 -n32 job4.scrpt & | ||
+ | wait | ||
+ | |||
+ | </ | ||
+ | == Note: == | ||
+ | the file ' | ||
+ | it is important to send the jobs into the background | ||
+ | with **-r2** one can define an offset in the node list, in particular the **-r2** means taking nodes number 2 and 3 from the set of four (where the list starts with node number 0), hence a combination of -N -r -n allows full control over all involved cores and the tasks they are going to be used for; |