Reservations

Getting a reservation

Who?

If you are an IDLab member on a tight deadline and experiencing long waits, you can request a reservation for some dedicated resources on GPULab.

How?

Please email gpulab@ilabt.imec.be mentioning which resources you want to reserve and for which deadline (paper/PhD/project/…). Also mention your GPULab username (or the project name if you want to share the reservation) you want to use the reservation in.

Using your Reservation

When a reservation is made for you, you will receive a reservation ID. This is a UUID, example: 123e4567-e89b-12d3-a456-426614174000

You need to use this reservation ID when starting a GPULab job or a Jupyterhub notebook.

For a GPULab job, place the ID in request.scheduling.reservationId. For example:

{
  "name": "myjob",
  "description": "Example job that uses a reservation",
  "request": {
    "docker": {
      "command": "/project/start_job.sh",
      "image": "debian:stable",
      "storage": [ { "hostPath": "/project_ghent", "containerPath": "/project" } ]
    },
    "resources": {
      "cpus": 2,
      "gpus": 1,
      "cpuMemoryGb": 2,
    },
    "scheduling": {
      "reservationIds": ["123e4567-e89b-12d3-a456-426614174000"],
    }
  }
}

For Jupyterhub, click the “Show Advanced Options” button. Then fill in the ID in the “Reservation ID” field that appears.

Attention

Between the start end end of your reservation, resources will be unavailable for other users.

If you have finished your work before the end of the reservation, please delete your reservation. This is much appreciated, as it will immediately release the resources for use by other users.

You can delete the reservation from the GPULab site: Click the reservation button in the top right, and look for your reservation.

Running jobs before future reservations

Reservations made for other people that start in the future, will make sure you cannot start a job that will still run when the reservation starts.

This is because reservations will never stop a job to enforce the reservation.

To ensure that your jobs can keep starting on clusters with future reservations, you need to explicitly specify a maxDuration which does not extend past the start of this reservation. You can set the maxDuration under scheduling. For example:

{
    "name": "Short job",
    "description": "Job with a max duration of 6 hours",
    "request": {
      "docker": { ... },
      "resources": {... },
      "scheduling": {
        "maxDuration": "6 hours"
      }
    }
}