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.
In 31DEC12, the pseudo-AP was 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.