The following system variables contain information about IDL's configuration.
IDL can use multiple system processors to perform some computations in parallel. See Multithreading in IDL for additional information.
The
The
{ !CPU, HW_VECTOR:0L, VECTOR_ENABLE:0L, HW_NCPU:0L,
TPOOL_NTHREADS:0L, TPOOL_MIN_ELTS:0L, TPOOL_MAX_ELTS:0L }
The meaning of the fields of
|
Field
|
Meaning
|
|---|---|
|
HW_VECTOR
|
True (1) if the system supports a vector unit (e.g. Macintosh Altivec/Velocity Engine). False (0) otherwise.
Note - This value is currently always 0 (False) on platforms other than Macintosh.
|
|
VECTOR_ENABLE
|
True (1) if IDL will use a vector unit, if such a unit is available on the current system, and False (0) otherwise.
Note - This value is currently always 0 (False) on platforms other than Macintosh.
|
|
HW_NCPU
|
The number of CPUs contained in the system on which IDL is currently running.
|
|
TPOOL_NTHREADS
|
The number of threads that IDL will use in thread pool computations. The default is to use HW_NCPU threads, so that each thread will have the potential to run in parallel with the others. For numerical computation, there is no benefit to using more threads than your system has CPUs. However, depending on the size of the problem and the number of other programs running on the system, there may be a performance advantage to using fewer CPUs.
If the IDL_CPU_TPOOL_NTHREADS environment variable has been set, then TPOOL_NTHREADS is initialized with this value at startup. On systems shared by multiple users, you may wish to set this environment variable so that IDL uses the specified number of threads instead of defaulting to the number of CPUs present in the underlying hardware. See IDL_CPU_TPOOL_NTHREADS for more information.
|
|
TPOOL_MIN_ELTS
|
The number of elements in a computation that are necessary before IDL will use the thread pool to perform the work. For fewer than TPOOL_MIN_ELTS, the main IDL thread will simply perform the work without using the thread pool. It is important not to use the thread pool for small tasks because the overhead of threading will not be offset by the overhead incurred by operation of the pool, and the overall computation will go slower than if threading is not used.
|
|
TPOOL_MAX_ELTS
|
The maximum number of elements in a computation for which IDL will use the thread pool. If this value is 0 (zero) (the default), then no limit is imposed and any computation with at least TPOOL_MIN_ELTS is a candidate for the thread pool. If your computation is too large for the physical memory available on the system, the virtual memory system of the operating system will begin paging. Under such conditions, the performance of the thread pool can be worse than that of a single threaded computation because the threads end up fighting each other for access to memory. TPOOL_MAX_ELTS can be used to prevent this.
|
A string variable containing the path to the main IDL directory.
Significant portions of IDL's built in functionality are packaged in the form of Dynamically Loadable Modules (DLMs). DLMs correspond to UNIX sharable libraries or Windows DLLs, depending on the operating system in use. At startup, IDL searches for DLM definition files (which end in the .dlm suffix) and makes note of the routines supplied by each DLM. If such are routine is called, IDL loads the DLM that supplies it into memory. To see a list of the DLMs that IDL knows about, use HELP, /DLM (see HELP for more information).
If the IDL_DLM_PATH environment variable is not defined, IDL supplies a default that contains the directory in the IDL distribution where the DLMs supplied by RSI reside. Once
Since all DLM searching happens once at startup time, it would be meaningless to change the value of
Note that using the <IDL_BIN_DIRNAME> token in the IDL_DLM_PATH environment variable can be useful for distributing packages of DLMs with support for multiple operating system and hardware combinations. This token is described in The Path Definition String under EXPAND_PATH.
For example, assume that you have your DLMs installed in /usr/local/mydlm, with support for each platform in a subdirectory using the same naming convention that IDL uses for the platform dependant subdirectories underneath the bin directory of the IDL distribution. The following line, which might be located in a file executed by a UNIX shell when you log in (.cshrc, .login), will add the location of the proper DLM for your current system to IDL's
% setenv IDL_DLM_PATH "/usr/local/mydlm/<IDL_BIN_DIRNAME>:<IDL_DEFAULT>"
(all on a single line). Setting the Windows environment variable IDL_DLM_PATH to a similar string would produce the same result on a Windows system.
Similarly, the <IDL_VERSION_DIRNAME> token can be useful for distributing packages of DLMs with support for multiple IDL versions, operating systems, and hardware platforms. This token is described in The Path Definition String under EXPAND_PATH.
For example, assume that you have your DLMs installed in /usr/local/mydlm. Within the mydlm subdirectory would be a directory for each supported version of IDL. Within each of those subdirectories would be a subdirectory for each operating system and hardware combination supported by that version of IDL. The following line, which might be located in a file executed by your shell when you log in (.cshrc, .login) will add the location of the proper DLM for your current system to IDL's
% setenv IDL_DLM_PATH "/usr/local/mydlm/<IDL_VERSION_DIRNAME>/<IDL_BIN_DIRNAME>:<IDL_DEFAULT>"
(all on a single line). Setting the Windows environment variable IDL_DLM_PATH to a similar string would produce the same result on a Windows system.
An integer variable indicating whether keyboard line editing is enabled (when set to a non-zero value) or disabled (when set to zero). By default,
By default, IDL saves the last 20 command lines. You can change the number of command lines saved in the recall buffer by setting
A string variable listing the directories IDL will search for online help files. On UNIX systems, help files must be Adobe Portable Document Format (.pdf) files or HTML (.html or .htm) files. On Windows systems, help files can be HTML Help (.chm), Windows Help (.hlp), Portable Document Format (.pdf), or HTML (.html or .htm) files.
If the IDL_HELP_PATH environment variable is not defined, IDL supplies a default that contains the directory in the IDL distribution where the help files supplied by RSI reside.
To change the value of
A read-only long-integer variable containing the logical unit number of the file used for journal output.
The MAKE_DLL procedure and the CALL_EXTERNAL function's AUTO_GLUE keyword use the standard system C compiler and linker to generate sharable libraries that can be used by IDL in various contexts (CALL_EXTERNAL, DLMs, LINKIMAGE). There is a great deal of variation possible in the use of these tools between different platforms, operating system versions, and compiler releases. The
The
{ !MAKE_DLL, COMPILE_DIRECTORY:'', COMPILER_NAME:'', CC:'', LD:''}
The meaning of the fields of
| Note |
The following table describes the substitution codes for the CC and LD fields:
An integer variable indicating whether IDL should paginate help output sent to a tty device. Setting
A string variable listing the directories IDL will search for libraries and include files.
| Note |
| Note |
When IDL starts, it reads the IDL_PATH environment variable (or the default value, if IDL_PATH does not exist) and builds a value to be stored in +" symbol and the "<IDL_*>" strings) are described in detail in The Path Definition String under EXPAND_PATH.
By default, as IDL searches directories included in the .pro or .sav files to compile, it creates an in-memory list of all .pro and .sav files contained in each directory. When IDL later searches for a .pro or .sav file, before attempting to open the file in a given directory, IDL checks the path cache to determine whether the directory has already been cached. If the directory is included in the cache, IDL uses the cached information to determine whether the file will be found in that directory, and will only attempt to open the file there if the cache tells it that the file exists. By eliminating unnecessary attempts to open files, the path cache speeds the path searching process. See PATH_CACHE for details.
Once IDL has started, you can alter the value of
!PATH = '/usr2/project/idl_files:' +!PATH
Keep the following in mind when changing the value of
pathsep = PATH_SEP(/SEARCH_PATH)!PATH = 'new_path' + pathsep +!PATH
where new_path is the path to the directory you want to add.
.pro or .sav files. It also allows you to use the "+" character path expansion technique. For example, the following commands add all directories below the new_path directory that contain .pro or .sav files to pathsep = PATH_SEP(/SEARCH_PATH)!PATH = EXPAND_PATH('+new_path') + pathsep +!PATH See EXPAND_PATH for details.
A string variable containing the text string used by IDL to prompt the user for input. The default is IDL>.
A long-integer variable indicating whether informational messages should be printed (0) or suppressed (nonzero). By default,
A structure variable containing information about the version of IDL in use. The structure is defined as follows:
{ !VERSION, ARCH:'', OS:'', OS_FAMILY:'', OS_NAME:'', $
RELEASE:'', BUILD_DATE:'', MEMORY_BITS:0, FILE_OFFSET_BITS:0 }
The meaning of the fields of
If you need to differentiate between different IDL versions in your code, use