  This paper presents a parallel algorithm for calculating the
eight-directional (D8) up-slope contributing area in digital elevation models
(DEMs). In contrast with previous algorithms, which have potentially unbounded
inter-node communications, the algorithm presented here realizes strict bounds
on the number of inter-node communications. Those bounds in turn allow D8
attributes to be processed for arbitrarily large DEMs on hardware ranging from
average desktops to supercomputers. The algorithm can use the OpenMP and MPI
parallel computing models, either in combination or separately. It partitions
the DEM between slave nodes, calculates an internal up-slope area by replacing
information from other slaves with variables representing unknown quantities,
passes the results on to a master node which combines all the slaves' data, and
passes information back to each slave, which then computes its final result. In
this way each slave's DEM partition is treated as a simple unit in the DEM as a
whole and only two communications take place per node.
