qlogin

The simplest thing you can do with the cluster is to just log in to the BIOSTAT node and run things on it interactively (an even simpler option might be to use IDAS). Once you’re logged in, it is just like being logged in remotely to any other computer. However, logging in must be accomplished through the scheduler to balance requests for interactive and non-interactive sessions and to send requests to the proper queues. To set up an interactive session, use qlogin:

$
qlogin -q BIOSTAT

The -q BIOSTAT option specifies that you would like to log in to the BIOSTAT node. You can, of course, try to log in interactively to a different node with -q UI, if one is available, or use -q all.q to log in with the understanding that you will get logged off if someone wants their node back.

IMPORTANT: By default, the above command will allocate all of the available processors on the node to your qlogin request. In other words, you may be requesting dozens of processors that no one else will be able to use until you log out (which you would do by typing exit or Ctrl+D). This is particularly bad if you only need a small number of processors, or if you intend to stay logged in for a long period of time (or both!). To request an interactive session that uses only, say, 4 processors, submit:

$
qlogin -q BIOSTAT -pe smp 4

The -pe option specifies the parallel environment you wish to have for your qlogin session. There are various options, the differences between which get rather technical, but the simplest is SMP (symmetric multiprocessing).

From here, you can do anything you would normally do at a terminal – run commands, run an interactive R session, etc. There are three primary reasons one might be interested in doing this:

AGAIN: Try not to abuse qlogin by staying logged in for long periods of time or requesting far more slots than you are actually going to use. This ties up resources that other people may be trying to use.

Custom qlogin

Personally (PB), I hate the above default, and wrote a very simple script called q_login that I use instead. To use it, download this file, place it in ~/.local/bin or wherever you put your local binaries, and then use this to log into the BIOSTAT queue (requesting only a single core by default):

$
q_login

Or if you want, say, 12 cores:

$
q_login 12

Requesting a specific node

You can request that your qlogin command takes you to a specific type of machine by including various logical flags. For example, to specify that you need to log in to the high memory (384GB) node:

$
qlogin -q BIOSTAT -pe smp 4 -l mem_384G=true 

Similarly, if you want to specifically request the lower-memory node for some reason:

$
qlogin -q BIOSTAT -pe smp 4 -l mem_128G=true 

See here for the full list of flags that one can specify. Note that these flags are much more important on the UI and all.q queues, since there is a far greater variety of machines on those queues than on BIOSTAT. In particular, you might be interested in the -l gpu=TRUE flag if you want to run something on a GPU (there are no GPU machines on the BIOSTAT queue at this time).

The -l flag also applies to jobs submitted with qsub, which we discuss next.