Astronomical Image Processing System
![]() | This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (March 2014) |
The Astronomical Image Processing System (AIPS) is a package to support the reduction and analysis of data taken with radio telescopes. The software was originally developed by NRAO in the seventies for use with the then under-construction VLA, but the generality inherent in its design allowed it to become the standard data-reduction package for other interferometric arrays such as MERLIN, the VLBA and the EVN, and can also be used to process data from other arrays. Although primarily a tool for analysing data from interferometers, it also has limited ability to work with single-dish data. The official software used by the upgraded VLA (EVLA) and ALMA is CASA, but AIPS remains the dominant data-reduction package in use today.
History
AIPS is what most of us[who?] would now describe as “legacy software”, having been originally coded in a truly ancient dialect of FORTRAN (predating even the venerable FORTRAN IV). AIPS now uses FORTRAN 77, although it has been digested successfully by at least one FORTRAN 90 compiler.
A MODCOMP computer in Charlottesville, Virginia was the first system to actually host a working AIPS system, and it quickly spread to a guest UNIX system hosted on an IBM 360 mainframe. From there, it spread in the early 1980s to VAX/VMS systems, often with an attached floating-point systems array processor (this peculiar device was the moral equivalent of the 80387 floating-point accelerators that some old-timers may remember being part and parcel of many 386 systems). In the late 1980s, UNIX came back into the AIPS universe in a big way, first with the Sun-3 series of Motorola-68020-based systems and then with a series of others, including Cray (Unicos), Convex and Alliant systems.
By the time the 1980s were winding down, the dominance of VMS in the AIPS universe was being seriously questioned. Performance on new upstarts like Sun was starting to challenge their price/performance ratio, and the first SPARCstations totally blew them away. In the early 1990s, AIPS moved to a smorgasbord of UNIX variants: AIX, Stardent (briefly), Ultrix, HP-UX, SGI's Irix and DEC OSF/1. A port to an IBM 3090 was attempted, but failed due to accuracy problems with the non-IEEE floating-point format thereon. In the middle of this flurry of activity, the port to Linux by Jeff Uphoff was made.
The Blacksburg Connection
In the fall of 1993, NRAO got a query from a radio astronomer at Virginia Tech in Blacksburg, requesting permission for one of his students to copy AIPS to his PC for an attempted port to a new system called Linux. (At that time, AIPS was still proprietary code, released to non-profit organizations under a rather cumbersome license and user agreement; this changed later.) Polite skepticism was the immediate reaction of most people then in the NRAO AIPS group, but they allowed the experiment to go ahead. Within several weeks Jeff Uphoff had successfully ported the software to Linux and was able to run the “Dirty Dozen Tasks” (DDT) benchmark, even though it took about a day on a 386 compared with an hour on a SPARC processor.
Faster and Faster, and Make it GNU
Within a few months of the original port, NRAO had Jeff Uphoff on its payroll, and the race was on to improve the performance of AIPS on Intel hardware. In the process, the NRAO Charlottesville Computing Division ended up with many Linux machines performing server duties, and several programmers and scientists volunteered for converted to use on Linux systems. However, it took the use of the EGCS version of the GNU g77 FORTRAN compiler to push the Intel/Linux platform to the forefront of the Radio Astronomy community. In 1995, using EGCS version 1.0.2, AIPS was successfully built under g77. This improved the AIPSMark (a benchmark, defined as 4000 divided by the elapsed time in seconds to run the DDT on a test dataset; bigger AIPSMarks are better and a Sparc IPX is 1.0) on a Pentium Pro 200 from 3.3 to about 5. With further coaxing via aggressive use of optimization parameters, the resulting AIPSMark went over 6. In this fell swoop, the price/performance curve that was previously occupied by Sun, IBM, DEC and HP was shattered once and for all. By 1998, NRAO was ordering Linux/Intel desktops as the workstation of preference for the scientist in place of UltraSPARC systems. In 1999, Linux started to edge out the high-performance public workstations such as Alpha and high-end SPARC.
During this time, another significant change came about. All this exposure to copylefted code was taking its toll. As mentioned earlier, AIPS was originally released under a restrictive user agreement that prohibited redistribution and was unpalatable or even unacceptable to some in the astronomical community. Not only that, but the administrative costs associated with it were a burden. Thus, around 2000 the decision was made to shift AIPS over to the GNU (Free Software Foundation's) GNU General Public License on its next periodic release.
Currently, a new version of AIPS is released towards the end of each year and is continually updated until the release of the next version. A newsletter ("AIPSLETTER") is released twice a year with information on the recent developments.
Usage and design
In general AIPS uses 8 character long "tasks" that have input parameters, and a source and a destination "disk", reminiscent of 1970's era mainframe programming. The "disks" are stored in a catalog, basically predating any notion of filesystems in their modern sense. When using the data, you first load it onto a disk from an external source, usually a FITS file, either UVFITS or FITS-IDI. You then perform your tasks on these disks, writing the result to an output disk.
AIPS uses a primitive command-line interpreter known as POPS.
To new postgraduate students, AIPS is such an idiosyncratic piece of software that a rich and varied niche humour has developed around it.