Benchmarking at the Mont-Blanc prototype

:!: Special user permissions are required for creating reservations at SLURM. Please contact hca.sysadmin@bsc.es before following the guide above specifying the application do you want to benchmark as well as the total amount of nodes and the time you will need to reserve. :!:

When executing benchmarks or applications with the target of measuring the performance of the prototype, is it a must to ensure that there is no contention on the compute nodes.

This contention is usually at the interconnection, so isolating the execution of your application or benchmark to ensure that is the only job running at the prototype at the same important is of great importance. The way to do this is to create a temporal reservation of the nodes by using the job scheduler SLURM.

Reservation creation

A reservation can be created with the scontrol command, the sintaxis is the following:

scontrol create reservation starttime=YYYY-MM-DDTHH:MM:SS {duration=[minutes]|endttime=YYYY-MM-DDTHH:MM:SS} nodes=${slurm_nodelist} flags=maint user=${users}

Few considerations:

  • starttime and endtime can be specified also with the following syntax
    • now[+${N}[minutes|hours]]
  • nodes accepts SLURM syntax lists and also the word ALL, which will reserve all the nodes
    • SLURM nodelist: mb-[1-3,5,7-10]
  • user accepts a comma separated list of users which will be allowed to submit jobs to the reserved nodes

Here an example for creating a reservation for all the nodes in 10 hours with a duration of 3 hours and allowing the users dmorgan and jbauer to submit jobs. The output of the command is the name of the reservation, which will be used afterwards to submit the jobs.

dmorgan@mb-login-12:~$ scontrol create reservation starttime=now+10hours endtime=now+13hours nodes=ALL flags=maint users=dmorgan,jbauer
Reservation created: jbauer_40

Checking a reservation

For showing reservations information the command scontrol is also used. The output will be something similar to the following:

dmorgan@mb-login-12:~$ scontrol show reservation jbauer_40
ReservationName=jbauer_40 StartTime=2015-11-14T02:46:40 EndTime=2015-11-14T05:46:40 Duration=03:00:00
   Nodes=mb-[1-930],mb-login-[1-15] NodeCnt=945 CoreCnt=1890 Features=(null) PartitionName=(null) Flags=MAINT,SPEC_NODES
   Users=jbauer Accounts=(null) Licenses=(null) State=INACTIVE

Please notice that all the nodes are reserved, even the ones that are not available. Nevertheless, the reservation will work, ensuring that even the nodes that are not available will be reserved in the case they start working again.

Submitting a job to a created reservation

The procedure to submit a job is the same but, in this case, we must specify to the sbatch command the reservation to submit to with the –reservation option. Here an example:

dmorgan@mb-login-12:~$ sbatch --reservation=jbauer_40 ./jobScript.sh

Deleting a reservation

:!::!: Even though the reservation is deleted automatically after the time specified by the user is reached, we do encourage the users to delete the reservation as soon as their experiments are finished to allow other users to use the cluster :!::!:

The command to execute is the following:

dmorgan@mb-login-12:~$ scontrol delete reservationname=jbauer_40

More information

More information about reservations can be found at the following link.

QR Code
QR Code benchmarking (generated for current page)