#acl DvGroup:read,write,delete,revert,admin All:read === Slurm Installation for Pax Cluster === Slurm is currently being tested as scheduler for the pax6,pax8 and pax9 blade chassis, containing the machines pax6[0-f] and pax80 to pax9f. At the moment, interactive logins to these machines are possible, this will probably change in a production setup. Currently, you can run all slurm commands on the pax8 machines. The machines are configured into three partitions, nehalem and sandybridge according to CPU architecture and pax for all machines. ==== Kerberos Integration ==== You need to acquire an addressless Kerberos ticket for Slurm to work. This isn't the default on supported DESY machines, you'll have to call {{{kinit -A}}}. On self-maintained machines like notebooks, simply set {{{noaddresses=true}}} in the file {{{/etc/krb5.conf}}}. To check if your ticket is addressless, call {{{klist -v}}}. Slurm was configured to always schedule complete nodes to each job. ==== Slurm Commands ==== The most important commands: ||[[http://slurm.schedmd.com/sinfo.html|sinfo]]||Information about the cluster|| ||[[http://slurm.schedmd.com/squeue.html|squeue]]||Show current job list || ||[[http://slurm.schedmd.com/srun.html|srun]] ||Parallel command execution|| ||[[http://slurm.schedmd.com/sbatch.html|sbatch]]||Submit a batch job|| ||[[http://slurm.schedmd.com/scancel.html|scancel]]||Abort a job|| ||[[http://slurm.schedmd.com/sacct.html|sacct]] ||Show accounting information|| ===== Parallel Execution ===== Slurm has integrated execution support for parallel programs, there is no need to use mpirun or mpiexec. To start a program in a job script or interactive session, use a command like {{{srun -n 4 -N 2 hostname}}}. This will execute the command {{{hostname}}} 4 times on 2 different machines. ===== MPI Support ===== srun can execute MPI programs, but the LD_LIBRARY_PATH must first be set, this is done by loading the right environment module, e.g. {{{module add openmpi-x86_64}}}. For openmpi, the command line option --resv-ports is needed for srun. ==== Job scripts ==== Parameters to slurm can be set on the sbatch command line or starting with a {{{#SBATCH}}} in the script. The most important parameters are: ||-J ||job name|| ||--get-user-env||copy environment variables|| ||-n ||number of cores|| ||-N ||number of nodes|| ||-t ||run time of the job, default is 30 minutes|| ||-A ||account, default the same as UNIX group|| ||-p ||partition of the cluster|| ||--switches||maximum number of switches connecting the allocated nodes|| ||--mail-type||configure email notifications, e.g. use --mail-type=ALL|| ===== Time format ===== The runtime of a job is given as minutes, hours and minutes (HH:MM) or days and hours (DD-HH). The maximum run time was set to 48 hours. ===== Topology aware scheduling ===== The pax machines are connected by a fat tree of Infiniband switches, one switch in each blade center connects the included blade servers and one additional hierarchy level connects these switches. The Slurm scheduler is aware of this and you can request a maximum numbers of switches used in a job with the {{{--switches}}} option. {{{ --switches=1 }}} will ensure that all nodes are allocated in the same blade center. ===== Examples ===== An example job script is in [[attachment:slurm-mpi.job]] ==== Accounting ==== The jobs and their resources usage is stored in a database that is used for the fair share part of the scheduler. You can view your account's jobs with the command {{{sacct}}}. With no parameters,only today's jobs are shown, to view all jobs since May 1st, use the command {{{sacct -S 2014-05-01}}} . To view jobs from other accounts as well, use the {{{--allusers}}} option.