Opened 6 years ago

Closed 6 years ago

#1234 closed help (fixed)

Optimising IDL program

Reported by: taylor Owned by: um_support
Component: Other Keywords:
Cc: Platform: Other
UM Version: <select version>

Description

Hi,

I am a DPhil student in the Climate Processes group within Oxford's Atmospheric Physics department. I am currently working with an IDL program for tracking convective clouds from geostationary satellite data.

The program (which was not written by me) is currently quite inefficient. I do not have much experience with IDL, but I am hoping that it might be possible to speed things up significantly, for example by running the program on multiple cores.

I am writing to ask if you know of anyone with experience of optimising IDL code and/or running IDL on multiple processors, or who might be able to point me in the direction of some useful resources.

Many thanks,

Sarah

Change History (1)

comment:1 Changed 6 years ago by andy

  • Resolution set to fixed
  • Status changed from new to closed

Hi Sarah,

Here are a few comments on optimising your IDL code.

Loops in IDL are slow - try using vector operations such as WHERE when you can.
See page 129 of the NCAS-CMS IDL guide for an example of this
http://cms.ncas.ac.uk/wiki/Documentation

Using timing to see where the slow parts of your code are. This is also on page 129.

You might be able to run multiple instances of your code to get further speed-up. Each instance would run on a section of data and then a final program would pieces together the results.

I don't think there's any code in IDL that will help you to run easily on multiple cores. The above techniques should help you get some speed-up but that's very dependent and what your code does and whether it is I/O or compute bound.

Regards

Andy

Note: See TracTickets for help on using tickets.