There are a number of things that can be done to tune VMS/IRAF for a particular host system:
If the system is to be installed on multiple cpu's, or on a particularly small host like a MicroVAX, it may be necessary or desirable to strip the system of all non-runtime files to save disk space. This is done by deleting all the program sources and all the sources for the reference manuals and other printed documentation, but not the online manual pages. A special utility called rmfiles (in the SOFTOOLS package) is provided for this purpose. It is not however necessary to run rmfiles directly to strip the system. This may be done either from DCL or from within the CL.
This will preserve all runtime files, permitting use of the standard runtime system as well as user software development. Stripping the system will not, however, permit relinking standard IRAF executables, as would be required for bug fixes or caching termcap and graphcap entries. The size of the system is reduced by about half. We do not recommend stripping the system libraries, as this would preclude all IRAF related software development or bug fixes, including user written Fortran programs (IMFORT), and we no longer provide a "stripall" option.
The standard distribution of VMS/IRAF is configured to use a shared library for the bulk of the IRAF runtime system code. Use of this shared library considerably reduces the disk requirements of the system, while reducing runtime system memory usage and process pagein time, and speeding up process links during software development.
If the goal of minimizing physical memory utilization is to be achieved when running IRAF, it is essential that the IRAF shared library be "installed" in VMS system shared memory. Further memory savings through memory sharing can be achieved if some of the more commonly used IRAF executables are also installed. This becomes increasingly important as the number of IRAF users increases, but some memory savings may result even if there is only one user, since a single user may spawn batch jobs. Hence, the shared library s_iraf.exe should always be installed if IRAF is used at all, and cl.exe and x_system.exe are used by all IRAF jobs and should be installed if there is usually at least one IRAF user on the system. If there are usually several IRAF users on the system x_images.exe and x_plot.exe are probably worth installing as well.
Installation of task images in system shared memory is done with the VMS INSTALL utility, which requires CMKRNL privilege to execute (also discussed in install.com ). Installation of the IRAF shared library and other task images is most conveniently done by executing the INSTALL.COM command procedure in hlib. The list of files to be installed is in INSTALL.LST. This file should be reviewed and edited during system installation to select those images to be installed on the local host. Then INSTALL.COM may be directly executed to temporarily install the images, but to permanently install the images the system bootstrap procedure should be modified to execute the INSTALL.COM script (or explicitly install the images by name) whenever the system is booted. Note that the global pages used by an installed image are not actually freed until any and all processes using those global pages terminate.
The procedure for installing images will fail if there are insufficient global pages available in the system (for example, the number of global pages required to install the shared library in VMS_ALPHA/IRAF V2.11 is about 2730). If the system has insufficient free global pages to run the INSTALL.COM script one must either increase the number of system global pages (which requires rebooting the system), or one must edit the INSTALL.LST file to reduce the number of images to be installed.
The speed with which large disk files can be read into memory in VMS can degrade significantly if the disk is highly fragmented, which causes a large file to be physically stored in many small fragments on the disk. IRAF performance as well as VMS system throughput can therefore be improved by rendering frequently referenced large files contiguous. Examples of files which it might pay to render contiguous are the executables in bin, all of the runtime files in dev, and the large system libraries in lib (this last is only useful to speed software development, i.e., linking).
The easiest way to render a file contiguous in VMS is to use COPY/CONTIGUOUS to copy the file onto itself, and then purge the old version. Various nonstandard utility programs are available commercially which will perform this function automatically. The contents of an entire disk may be rendered contiguous or nearly contiguous by backing up the disk onto tape and then restoring it onto a clean disk.
Precompilation of a termcap or graphcap entry is a technique used to speed runtime access of the entry for that device. If the entry is not precompiled the termcap or graphcap file must be physically opened and scanned at runtime to read the desired entry. This causes a slight delay when clearing the terminal screen or plotting a graph, hence it may be worthwhile to cache the entries for commonly used video and graphics terminals. We do not recommend that sites attempt to relink the IRAF system to cache new terminal device entries, but system managers may wish to be aware of this option.
The system comes with selected termcap and graphcap entries already precompiled. To see which devices are precompiled, page the cache data files, dev$cachet.dat (for termcap) and dev$cacheg.dat (for graphcap). To cache a different set of entries one must regenerate these files with the mkttydata task in the SOFTOOLS package, and then do a full sysgen relink with the mkpkg utility. Detailed instructions are given in the manual page for mkttydata.
Important Note: If the system is configured to use the IRAF shared library (the default), you must update the system libraries ( Updating ) and rebuild the shared library ( shared ) before relinking the system ( relinking ), else the changes to the termcap and graphcap cache files will have no effect. The use of the shared library is peculiar to VMS/IRAF and is not discussed in the mkttydata documentation.