Launching an iDev session GVA2023

Overview

idev (short for interactive development) sessions on TACC are a method of accessing one of the compute nodes directly rather than sending a slurm job off using the sbatch command. In this course, it will let us view the text that would normally print to the screen. We will further benefit from TACC setting up a reservation for us that will allow us to skip the queue and immediately launch an interactive session so we spend our class time working rather than waiting.

Learning Objectives

  1. Learn the importance of launching an idev session
  2. Launch an idev instance
  3. Check if you are currently in an idev session.

Tutorial

Importance of using idev sessions


As mentioned in the introduction tutorial, idev sessions are important to get off the head node and not negatively impact all other TACC users. As mentioned in the bowtie2 tutorial failure to do so has actually caused TACC to crash in previous years, and none of us (you included) want to be part of that happening again. As such most tutorials will contain a warning box similar to this and a link back to this page to ensure you are staying on an idev node and not being a bad TACC citizen.

Launching an iDev session with a reservation

As we discussed in our first tutorial the head node is a space shared by all and we don't like stepping on each others toes.  An idev (or interactive development) session is a way to move off the head node and onto a single compute node, but work interactively to see if your commands actually work, give you much quicker feedback, and if everything goes as you hope, your data. idev sessions are not used as often as the queue system (which will be discussed on Friday) as in general its not necessary to see every line a program spits out once you are familiar with the type of data you will get. Additionally, we are going to use a priority access reservation set up special for the summer school that you normally would not have access to but should guarantee immediate starting of your idev session.

Your idev command line will contain 5 flags: -m, -r, -A, -n, -N. Using the `idev -h` command, can you figure out what these 3 flags mean and what you told the system you wanted to do?

 Click here to see if you are correct...

From the OPTIONS: section of the idev help output:

-m     minutes            sets time in minutes (default: 30)

-r     reservation_name   requests use of a specific reservation

-A     account_name       sets account name (default: -A none)

  -n     total_tasks        Total number of tasks

  -N     nodes              Number of nodes

So you will request an idev node using the reservation named Genome-Day, where Day is the day of the class I (Mon, Tue, Wed, Thur, Fri) and asked that it be charged to the account named UT-2015-05-18.

Working outside of class time

The reservation is set to run specifically 9-12 each morning while the class is in session. If you are attempting to work on an idev node outside of those times, you still can and should use idev, just exclude the -r option.


The question becomes 'how long do we need to request the idev node for'? As the reservation only runs between 9am and 12pm each day this week, you need to request the enough minutes to set it to end a few minutes before 12:00 so the session will start. If you set it to end after 12:00 it won't actually launch.

Copy and paste the following command replacing the trailing 3 ? marks with the number of minutes you want your idev session to last:

Starting an idev session
idev -r Genome-Tue -A UT-2015-05-18 -m ??? -n 48 -N 1

The very first line of output should be. 

 -> Reservation      : Genome-Tue

A few lines down from that you should see 

 -> Reservation name : Genome-Tue  (reservation ACTIVE  )
 -> Queue            : normal         (reservation         )

You may be prompted asking how many tasks per node you would like if this is the first idev session you are launching.

The two most common choices would be 48 and 1 for 48 and 1 max possible independent commands at the same time. As long as you are letting the individual programs allocate the number of threads (ie --threads for some programs, -p or -j for others), this choice will not matter. If you want to run multiple commands at the same time (say with a commands file which puts each individual command in the background) you would need to select at least a number equal to the number of commands you want running at the same time (or 48 as the max).

Because the selection you make is stored in the file located at $HOME/.idevrc you either need to edit that file, or supply additional options to the idev command. If you want to permanently change the default, use the nano program, to edit the numerical value on the idev_tpn_noormal line. If you want to leave the default alone, and modify it just for the idev session you are currently creating, add one of the following options:

  1. -n 1 -N 1
  2. -n 48 -N 1

Note that in the above, it is the lowercase n that determines the number of tasks per node (1 and 48 respectively). The upper case N deals with how many different nodes (computers) you want access to. Programs can not interact across different nodes, so for idev sessions, you only ever want 1 "N"ode. There will be more information about this in Friday when working with the sbatch command.


If for any reason you don't see the lines above let me know. As mentioned above, trying to complete most of the tutorials on the head node will cause problems for you or everyone.


You may see something like the following

We need a project to charge for interactive use. 
We will be using a dummy job submission to determine your project(s). 
We will store your (selected) project $HOME/.idevrc file. 
Please select the NUMBER of the project you want to charge.\n 
1 OTHER_PROJECTS
2 UT-2015-05-18


Please type the NUMBER(default=1) and hit return:


If you see the text prompting for a number MAKE SURE you select the number associated with the 'UT-2015-05-18' project.

Finally, everyone will then see something like the following:

 -> Job is now running on masternode= c401-011...OK
 -> Sleeping for 7 seconds...OK
 -> Checking to make sure your job has initialized an env for you....OK
 -> Creating interactive terminal session (login) on master node c401-011.

TACC Stampede2 System
Provisioned on 08-May-2017 at 13:27

If the above takes more than 60 seconds without giving you your prompt back, again get my attention so we can figure out what is going on. I know there were some issues in last weeks course that required assistance from people at TACC.

Verifying you are in an iDev session

It is best to check if you are on an idev session before executing a command that you expect to be taxing for TACC to execute.

The simplest way is to use the following command
hostname

If you are not on an idev node you should see something like login2.stampede2.tacc.utexas.edu where a login node prefixes the stampede2.tacc.utexas.edu address. Otherwise you should see something like: c455-011.stampede2.tacc.utexas.edu where a computer number has prefixed the stampede2 address. Additionally, the "showq" command is available on head node, while it is not available within an idev node.

Launching an iDev session without a reservation

The same command used above can be used, omitting the '-r' flag. The output then becomes much more simple as at most you will be prompted for a choice of what allocation to use.

Starting an idev session
idev -A UT-2015-05-18 -m 30

30-60 minutes is a good amount of time to select, nearly all of the tutorials can be completed in that time. You can use the 'logout' command to exit an idev node if you finish 1 tutorial and are about to start another.


Here is a link back to the GVA2023 home page, but remember you can use your browser navigation to go back to the page you just came from.