Resources are the criteria by which the scheduler determines when
and where your job should run. By specifying how long your job needs to run,
how much memory it needs to run and how many processors or nodes in needs to
make available. Your job may also require licenses which need to be explicitly
requested in order to be tracked and ensure your job gets the necessary
licenses.
Depending on your cluster, there may different levels of enforcement for
resources. Most systems rely on an honor system. Taking your resource requests
at face value with no regard to how many resources you will in fact use. Lying,
however, may not go unpunished, since the system uses the resources
youve requested to determine the best place to run your job.
one thing and then doing another may get your job exiled to a node
which does not have the capability to properly run your job, causing it to
slow, crash, or even refuse to run.
Another concept important in regards to resource requesting and allocation
are queues. If youve read previous sections,
queues were mentioned a few times as being involved with resource
requests and resource allocation. To the scheduling system a queue is
nothing more than a series of rules, which can restrict nodes, apply default
resources, or set a jobs priority. Each job submitted to the
system must be submitted to a queue, which applies its rules to the
job, usually in concert with any requests applied with that job. If the rules
and the requests conflict or are at odds, the job may be outright refused, or
may be submitted to the system but never allowed to run.