In the Evla  W-projection memo it was demonstrated that on some simulated data set the speed gain was around 6 and it was predicted that it can be as around 24 for 25 x 25 facets.

Here we present some benchmark with real data (used for the EVLA test1) between W-Projection algorithm implemented aips++ and the multi-facetted algorithm implemented in classic aips

In trying to do the comparison we have tried to keep things as similar as possible.
The aips IMAGR parameters used are adapted from what Ed Fomalont did for his tests and comparisons.  All  errors in understanding in trying to make the test as "apple to apple" comparison are obviously mine.

Points to be noted:

  1. AIPS IMAGR clean is doing a Clark Clean and not a Cotton-Schwab  (CS) one unless it is stopped and restarted.
  2. AIPS++ Imager always do a CS reconcilliation at the end of a clean.
  3. Also in one particular test the AIPS++ imager was made to do 2 CS style major cycle and that are the images that are going to be shown here.
  4. Used  natural weighting

Scripts:

(AIPS1 run)
task 'imagr'
getn 1
nchav 7
outn 'axaf_high'
in2n 'axaf'
in2cl 'uvwork'
in2d 1
in2s 1
imsize 500
cellsize 2.5
nfield 61
do3d 1
bif 1
eif 2
stokes 'I'
cmethod ' '
uvwtfn 'N'
allokay = 2
boxfile = 'PWD:BOX61'
oboxfile = 'PWD:OBOX61'
bmaj = 11.0
bmin = 11.0
overlap 1
factor 0
niter 20000

(AIPS2 run) all  parameters  as above except for the following:

overlap 2
factor 5
cmethod 'grid'


(AIPS++ run)

include 'imager.g';
imgr:=imager('axaf_all.ms');
zname:='test2';
zfieldid:=1;
# Set data
imgr.setdata(fieldid=zfieldid, spwid=[1,2], nchan=7, start=1, step=1,  mode='none');
# Set image
imgr.setimage( cellx='2.5arcsec', celly='2.5arcsec', nx=4000, ny=4000, stokes="I", facets=1, mode='mfs', spwid=[1,2], nchan=1,start=1, step=1, doshift=F, fieldid=zfieldid);
# Set weightpr
imgr.weight(type='natural');
# Set wproj method
imgr.setoptions(ftmachine='wproject', wprojplanes=128);
# image names model:=spaste(zname, '.ipts'); restored:=spaste(zname, '.icln'); residual:=spaste(zname, '.ires');
 # Set clean beam
imgr.setbeam( bmaj='11.0arcsec', bmin='11.0arcsec');
# Specify cyclefactor so as to do 2 CS major cycle
imgr.setmfcontrol(cyclefactor=0.1)
# Specify clean imgr.clean ( algorithm='mfclark', niter=20000, gain=0.1, threshold = '0Jy', displayprogress=F, model=model,
image=restored, residual=residual);


RESULTS



AIPS1
AIPS2
AIPS++
Time  taken in seconds
185000
153000
8870
Factor w.r.t AIPS++
20.9
17.2
1
rms in full plane microJy
92.9
92.9
73.2
Peak in image mJy
41.9
41.6
42.9


IMAGES



AIPS1 run full image

        Full image of  AIPS1  run

AIPS2 run image

Full image of AIPS2 run

    AIPS++ full image

Full image of AIPS++ run



Zoomed images on the bright center

aisp1 zoom


aips1 zoomed region

aips2 run zoomed image

aips2 run zoomed image

aips++ zoomed image
aips++ zoomed image


COMMENTS


As can be seen from the zoomed images the aips++ image quality
is slightly better (especially the negatives next to the bright source).
This is, most probably, due to  the CS style UV reconciliation done in aips++.
If we were to do a full CS in AIPS the factor between AIPS facetted imaging and AIPS++ w-projection can be larger than 20.

 Also to be noted:

  1. Machine used is (imager-a) a dual Xeon 3 GHz with 2 Gbyte of RAM.
  2. All these runs were done when it was not being used by somebody else.
  3. AIPS++ wprojection used a maximum of 1.1 Gbyte of RAM while AIPS IMAGR used a maximum of ~200MB RAM.