Regarding my screw up last Wednesday.  This is my attempt to recover.

The expanding data sets method works by transferring all j element of
the kernel K(i,j) to each processor responsible for calculating
elements i.  So if the kernel size is x X y, y elements of data will
have to be transfered to each processor.  The amount of data to be  
transfered increases as the kernel size increases.  Assuming
inefficiency scales with the amount of data transfered, the efficiency 
for the expanding data sets method decreases with increasing kernel
size. 

The sifting method is just a particular approach to communicating data
sets which uses very little extra memory by only transferring data in
to a processors that is needed.  So in K(i,j) only the data elements j
that are non-zero (or needed) will be transfered.  Where in the
expanding data sets method all j elements are transfered regardless of
the actual value of K(i,j) for a particular j.

Normally the expanding data method is more efficient since it does not
require a large number of data transfers inside the processor that the
shift method requires.  However, the expanding data method requires
more memory which scales as the kernel size increases.  Now, if the
kernel is sparse the efficiency results can be different.  Assume that
in the kernel only K(i,j=0...9) are non-zero yet the kernel size x X Y
can be very large.  Now in the shift method we will shift in only 9
values regardless of the overall kernel size.  So the efficiency of
the shift method is constant with overall increasing kernel size.  On
the other hand the efficiency of the expanding data sets method
decrease as the kernel size increases.