In running numerous important tasks in you will notice references to an “array processor.” This used to be
an expensive device attached to computers which allowed them to run some
tasks 100 times faster than
they would run without the device. To support our less fortunate colleagues, we wrote a software emulation of the
array processor which we call the pseudo array processor. This uses highly optimized routines running on
data stored in the “AP memory.” By now, the hardware devices are all gone and only the software
emulation remains. We have found that this is still a good model to obtain highly optimized software
performance.
The pseudo-AP now uses dynamic memory allocated by the calling task as needed rather than a fixed amount of
memory that would be much too large for some problems and too small for others. The largest tasks,
including IMAGR and CALIB in self-cal mode, have changed to use rather large amounts of memory if needed to
reduce the number of times the visibility data need to be read. Two new verbs appeared at this time: SIZEFILE
returns the size of a disk file and SETMAXAP sets the maximum computer memory that may be used for the
pseudo-AP. The latter allows the user to limit the AP on smaller or busier machines or to permit really large
memory usage when large amounts of memory are available. See HELP SETMAXAP for a discussion of the essential
considerations.
The pseudo-AP has been changed to use only double precision integers and floats. This avoids serious overflow issues with the large number of data samples from modern telescopes and provides much greater accuracy especially in the gridding and Fourier transforming of visibility data.