Skip to content


IDL's primary use is in the analysis and display of scientific data through its programming, plotting, and image display facilities.


  • 2-D Plotting & Contouring
  • Surface Plotting & 3-D Graphics
  • Graphic Effects
  • Color Systems
  • Curve & Surface Fitting
  • Image and Signal Processing
  • Eigensystems
  • Linear Systems
  • Sparse Linear Systems
  • Nonlinear Systems and Root Finding
  • Multi-Dimensional Optimization
  • Special & Transcendental Functions
  • Correlation Analysis and Forecasting
  • Hypothesis Testing
  • Multi-Dimensional Gridding and Interpolation
  • Mapping
  • Development and Programming Tools
  • Integrated Development Environment
  • User Interface Toolkit
  • IDL Insight
  • IDL DataMiner Option

Using IDL at NERSC

First load the IDL module

module load idl

and start IDL by running


Or to use the IDL development environment, first log on to Perlmutter via NoMachine and then type:

module load idl

IDL has a rich set of demos. To view them, in the IDL command line, type:


Running IDL procedures via batch job

If you would prefer to run IDL via a batch job, here is a simple demonstration workflow.

Let's assume we would like to run an IDL procedure called

pro idl_hello
print, 'Hello world from IDL'

Here is the batch script that will run our IDL procedure which we will call For more help setting up your batch script, check out our jobscript generator.

#SBATCH -C cpu
#SBATCH -q regular
#SBATCH -t 00:05:00

#OpenMP settings:
export OMP_NUM_THREADS=128
export OMP_PLACES=threads
export OMP_PROC_BIND=spread

#load the idl module
module load idl

#run the application:
srun -n 1 -c 256 --cpu_bind=cores idl -e "idl_hello"

Then to submit your idl job, simply type

sbatch will load IDL and execute the procedure that you specified. The key is the idl -e "idl_hello" which allows IDL to execute your procedure via the command line. We set OMP_NUM_THREADS=128 and -c 256 to give IDL the ability to take advantage of multithreading which is availible in some libraries. For more information about multithreading in IDL see the IDL multi-threading FAQ.

Availability at NERSC

We currently support IDL 8.5 on Perlmutter.

Additional resources

For more information on IDL, please refer to the [IDL software home page](