An Anomaly in Unsynchronized Pointer Jumping in Distributed Memory Parallel Machine Model

Abstract

Pointer jumping is one of the most fundamental operations in parallel computing. Pointer jumping on a list of n elements consists of O (log 2 n) jumping steps. Traditionally, these steps are synchronized. That is, at the end of each jumping step, processors wait until all the processors complete their work for the current step. Theoretically, however, pointer jumping doesn’t require synchronization. Without jeopardizing the correctness of execution, a processor may proceed to the next step as soon as it completes the current step. We implemented both synchronized and unsynchronized pointer jumping on a parallel computer with distributed memory. We expected the unsynchronized implementation to run faster because processors were not forced to idle. To the contrary, we observed an anomaly: the unsynchronized implementation ran more slowly. We present empirical data and explain how the absence of synchronization causes such an anomaly to occur.

6 Figures and Tables

Cite this paper

@inproceedings{Chung2004AnAI, title={An Anomaly in Unsynchronized Pointer Jumping in Distributed Memory Parallel Machine Model}, author={Sun Chung}, year={2004} }