You can request an interactive PBS job for any activity for which the environment needs to be the same as for a batch job. Interactive jobs are also what you should use if you have something that needs more resources than are appropriate to use on a login node. When the interactive job starts, you will get a prompt, and you will have access to all the resources assigned to the job. This is a requirement to test or debug, for example, MPI jobs that run across many nodes.
Submitting an interactive job
There are two ways you can submit an interactive job to PBS: By including all of the options on the command line, or by listing the options in a PBS script and submitting the script with the command-line option specifying an interactive job.
Submitting an interactive job from the command line
To submit from the command line, you need to specify all of the PBS options that would normally be specified by directives in a PBS script. The translation from script to command line is simply to take a line, say,
#PBS -A example_flux
remove the #PBS, and the rest is the option you should put on the command line. More options will be needed, but that would lead to
$ qsub -A example_flux
For an interactive job, several options that are appropriate in a PBS script may be left off. Since you will have a prompt, you probably don’t need to use the options to send you mail about job status. The options that must be included include the accounting options, the resource options for number of nodes, processors, memory, and walltime, and the -V option to insure that all the nodes get the correct environment. The -I flag signals that the job should run as an interactive job. (Note: in the example that follows, the character indicates that the following line is a continuation of the one on which it appears.)
$ qsub -I -V -A example_flux -q flux -l nodes=2:ppn=2,pmem=1gb,walltime=4:00:00,qos=flux
The above example requests an interactive job, using the account example_flux and two nodes with two processors, each processor with 1 GB of memory, for four hours. The prompt will change to something that says the job is waiting to start, followed by a prompt on the first of the assigned nodes.
qsub: waiting for job 12345678.nyx.engin.umich.edu to start [grundoon@nyx5555 ~]$
If at some point before the interactive job has started you decide you do not want to use it, Ctrl-C will cancel it, as in
^CDo you wish to terminate the job and exit (y|[n])? y Job 12345678.nyx.engin.umich.edu is being deleted
When you have completed the work for which you requested the interactive job, you can just logout of the compute node, either with exit or with logout, and you will return to the login node prompt.
[grundoon@nyx5555 ~]$ exit [grundoon@flux-login1 ~]$
Submitting an interactive job using a file
To recreate the same interactive job as above, you could create a file, say interactive.pbs, with the following lines in it
#!/bin/bash #PBS -V #PBS -A example_flux #PBS -l qos=flux #PBS -q flux #PBS -l nodes=2:ppn=2,pmem=1gb,walltime=4:00:00
then submit the job using
$ qsub -I interactive.pbs