The Community for Technology Leaders
Green Image
<p><b>Abstract</b>—We examine the design, implementation, and experimental analysis of parallel priority queues for device and network simulation. We consider: 1) distributed splay trees using MPI, 2) concurrent heaps using shared memory atomic locks, and 3) a new, more general concurrent data structure based on distributed sorted lists, which is designed to provide dynamically balanced work allocation (with automatic or manual control) and efficient use of shared memory resources. We evaluate performance for all three data structures on a Cray-T3E900 system at KFA-Jülich. Our comparisons are based on simulations of single buffers and a <tmath>$64 \times 64$</tmath> packet switch which supports multicasting. In all implementations, PEs monitor traffic at their preassigned input/output ports, while priority queue elements are distributed across the Cray-T3E virtual shared memory. Our experiments with up to 60,000 packets and two to 64 PEs indicate that concurrent priority queues perform much better than distributed ones. Both concurrent implementations have comparable performance, while our new data structure uses less memory and has been further optimized. We also consider parallel simulation for symmetric networks by sorting integer conflict functions and implementing an interesting packet indexing scheme. The optimized message passing network simulator can process <tmath>$\sim 500$</tmath>K packet moves in one second, with an efficiency that exceeds <tmath>$\sim 50$</tmath> percent for a few thousands packets on the Cray-T3E with 32 PEs. All developed data structures now form a parallel library. Although our concurrent implementations use the Cray-T3E ShMem library, portability can be derived from Open-MP or MPI-2 standard libraries, which will provide support for one-way communication and shared memory lock mechanisms.</p>
Concurrent data structure, Cray-T3E, data race, distributed data structure, memory lock, priority queue, parallel simulation, virtual shared memory.

S. Liesche and M. D. Grammatikakis, "Priority Queues and Sorting Methods for Parallel Simulation," in IEEE Transactions on Software Engineering, vol. 26, no. , pp. 401-422, 2000.
90 ms
(Ver 3.3 (11022016))