Question: I have resources (e.g. GPU) I can only use once at a time. When performing experiments I always need to know on time of a batch files creation, what experiments I want to execute in the future. But I am a person who likes to change its mind, but I hate to quit jobs.

Is there something like Slurm, that runs only on one machine, which I can pass jobs to a queue and remove them if necessary?

I am looking for applications that either work on GPU load (in contrast to batch/at that works on CPU load) or executes the jobs sequentially. This means that only one job runs at a time on one resource (GPU) and the next one starts when the execution of the previous job finished. I also want to be able to manage the queue in order to give jobs a higher priority or delete them.

Answer: 
I found a solution that perfectly fits my needs. I have the issue, that I have only one GPU, but want to have a queue to add jobs to, see their status and, if needed, delete it from the queue again.

After some research on Google, I found [task-spooler (tsp)](http://vicerveza.homeunix.net/~viric/soft/ts/). With this command-line tool, it is fairly easy to add jobs to the queue and follow their results. So far I only use one queue, but it is also scale-able to more.
Would it be acceptable to have the jobs run through a simple queue manager of your own?

```
#!/bin/bash

while ! mkdir /tmp/my_gpu_lockdir; do
    sleep $((RANDOM))
done

trap 'rmdir /tmp/my_gnu_lockdir' ERR EXIT

.... your actual task here ...

```