# Concurrent data structures for hypercube machine

## Abstract

To efficiently implement parallel algorithms on parallel computers, concurrent data structures (data structures which are simultaneously updatable) are needed. In this paper, three implementations of a priority queue on a distributed-memory message passing multiprocessor with a hypercube topology are presented. In the first implementation, a linear chain of processors is mapped onto the hypercube, and then a heap data structure is mapped onto the chain, where each processor stores one level in the heap. A similar approach is taken for the second implementation, but in this case, a banyan heap data structure is mapped onto the linear chain of processors. Again, each processor in the chain becomes responsible for one level of the data structure. For the third implementation, the banyan heap data structure is again used, but the mapping is not onto linear chain of processors. Instead, the banyan heap is mapped onto processors column by column, so that the algorithm can make better use of the concurrent processing capabilities of the hypercube topology in order to reduce bottlnecking in the first processor, an effect noted in the use of the linear chain employed by the first two implementations. The key advantage of banyan heap over the heap is that with banyan heap it is possible to retrieve elements at different percentile levels.

## Keywords and Phrases

Concurrent Data Structure Hypercube Banyan Heap Parallel Algorithm## Preview

Unable to display preview. Download preview PDF.

## References

- 1.J. Bisweis and J. C. Browne, “Simultaneous Update of Priority Structures,” Proceedings of International Conference on Parallel Processing, August 1987, pp. 124–131.Google Scholar
- 2.M. J. Carey and C. D. Thompson, “An efficient Implementation of Search trees on [log
*N*+1] processors,” IEEE Transactions on Computers, Vol. C-33, No. 11, Nov. 1984, pp. 1038–1041.Google Scholar - 3.Y. Saad and M. Schultz, “Topological Properties of Hypercubes,” IEEE Transactions of Computers, Vol. 37, No. 7, July 1988, pp. 867–872.CrossRefGoogle Scholar
- 4.M. R. Meybodi, “New Designs for Priority Queue Machine,” Proceedings of PARBASE-90: Conference on Databases, Parallel Architectures, and their Applications, Miami Beach, Florida, March 6–9, 1990, pp. 123–128.Google Scholar
- 5.M. R. Meybodi, “Tree Structured Dictionary Machines for VLSI-A Survey,” CS Technical Report, Ohio University, Athens, Ohio, 47501.Google Scholar
- 6.M. R. Meybodi, “Implementing Priority Queues on Hypercube Machine,” Annual Parallel Processing Symposium, Fullerton, Califonia, April 4–6, 1990, pp. 132–157.Google Scholar
- 7.C. Moler and D. S. Scott, “Communication Utilities For The iPSC.,” iPSC Tech. Report, August 1986.Google Scholar
- 8.J. E. Brandenburg and D. S. Scott, “Embeddings of Communication Tree and Grid into Hypercubes,” iPSC Technical Report, August 1986.Google Scholar
- 9.V. N. Rao and V. Kumar, “Concurrent Access of Priority Queue,” IEEE Transactions on Computers, Vol. 37, No. 12, Dec. 1988, pp. 1657–1665.CrossRefGoogle Scholar
- 10.W. J. Dally, A VLSI Architecture for Concurrent Data Structures, Kluwer Academic Publishers, 1987.Google Scholar
- 11.M. J. Quinn, Designing Efficient Algorithms for parallel Computers, McGraw Hill, 1987.Google Scholar
- 12.C. D. Thompson, “The VLSI Complexity of Sorting,” IEEE Transactions on Computers, Vol. C-32, No. 12, Dec. 1983, pp. 373–386.Google Scholar
- 13.A. R. Omondi and J. D. Brock, “Implementing a Dictionary on Hypercube Machine,” Proceedings of International Conference on Parallel Processing, August 1987, pp. 707–709.Google Scholar
- 14.K. H. Cheng, “Efficient Designs of Priority Queue,” Proceedings of International Conference on Parallel Processing, August 1988, pp. 363–366.Google Scholar
- 15.J. H. Chang, O. H. Ibarra, M. J. Chang, and K. K. Rao, “Systolic Tree Implementation of Data Structures,” IEEE Transactions on Computers, Vol. 37, No. 6, June 1988, pp. 727–735.CrossRefGoogle Scholar
- 16.J. D. Ullman, Computational Aspect of VLSI, Computer Science Press, 1984.Google Scholar
- 17.T. A. Standish, Data Structures Techniques, Addison Wesley, 1980.Google Scholar
- 18.E. Horowitz and A. Sahni, Fundamentals of Data structures, Computer Science Press, 1983.Google Scholar
- 19.H. T. Kung and P. L. Lehman, “Concurrent Manipulation of Binary Search Trees,” ACM Transactions on Database Systems, Vol. 5, No. 3, Sept. 1980, pp. 354–382.CrossRefGoogle Scholar
- 20.P. L. Lehman and S. B. Yao, “Efficient Locking for Concurrent Operations on B-Trees,” ACM Transactions on Database Systems, Vol. 6, No. 4, Dec. 1981, pp. 650–670.CrossRefGoogle Scholar
- 21.C. S. Ellis, “Concurrent Search and Insertion in AVL Trees,” IEEE Transactions on Computers, Vol. C-29, No. 9 September 1980, pp. 811–817.Google Scholar
- 22.C. S. Ellis, “Concurrent Search and Insertion in 2–3 Trees,” Acta Information, Vol. 14, 1980, pp. 63–86.CrossRefGoogle Scholar
- 23.J. L. Bentley and H. T. Kung, “A Tree Machine for Searching Problems,” Proceeding of the International Conference on Parallel Processing, 1979.Google Scholar
- 24.C. E. Leiserson, “Systolic Priority Queues,” Dept. of Computer Science, Carnegie Melon University, Pittsburgh, PA, Report CMU-CS-115, 1979.Google Scholar
- 25.T. A. Ottmann, A. L. Rosenberg, and L. J. Stockmeyer, “A Dictionary Machine for VLSI,” IEEE Transaction on Computers, Vol. C-31, No. 9, Sept. 1982, pp. 892–897.Google Scholar
- 26.H. T. Kung and C. E. Leiserson, “Systolic Arrays (for VLSI),” Proceedings of Symposium on Sparse Matrix Computations and their Applications, Nov. 1978, pp. 256–282.Google Scholar
- 27.A. K. Somani and V. K. Agarwal, “An Efficient VLSI Dictionary Machine,” Proceedings of 11th Annual International Symposium on Computer Architecture, 1985, pp. 142–150.Google Scholar
- 28.M. J. Atallah and S. R. Kosaraju, “A Generalized Dictionary Machine for VLSI,” IEEE transactions on Computers, Vol. C-34, No. 2, Feb. 1985, pp. 151–155.Google Scholar
- 29.H. Schmeck and H. Schroder, “Dictionary Machines for Different Models of VLSI,” IEEE Transaction on computers, Vol. C-34, No. 5, May 1985, pp. 472–475.Google Scholar
- 30.A. L. Fisher, “Dictionary Machines with Small Number of Processors,” Proceedings of International Symposium on Computer Architectures, 1984, pp. 151–156.Google Scholar
- 31.D. Knuth, The Art of Computer Programming, Vol. 3, 1973.Google Scholar
- 32.E. M. Reingold and W. J. Hansen, Data Structures, Little, Brown and Company, 1983.Google Scholar
- 33.N. J. Nilsson, Problem Solving Methods in Artificial Intelligence, McGraw Hill, 1971.Google Scholar
- 34.F. Dehne and N. Santoro, “Optimal VLSI Dictionary Machines on Meshes,” Proceedings of International Conference on Parallel Processing, August 1987, pp. 832–840.Google Scholar
- 35.L. R. Goke and G. L. Lipovski, “Banyan Networks for Partitioning Multiprocessor Systems,” Proceedings of the First Annual Symposium on Computer Architecture, 1973, pp. 21–28.Google Scholar
- 36.A. L. Tharp, File Organization and Processing, John Wiley and Sons, 1988.Google Scholar
- 37.A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison Wesley, 1974.Google Scholar
- 38.R. Nix, “An Evaluation of Pagodas,” Tech. Rep. 164, Computer Science Dept. Yale Univ.Google Scholar
- 39.D. D. Sleator and R. E. Tarjan, “Self Adjusting Heaps,” SIAM J. Comput. Vol. 15, No 1, Feb. 1986, pp. 52–59.CrossRefGoogle Scholar
- 40.J. Vuillemin, “A Data Structure for Manipulating Priority Queues,” Comm. ACM, Vol. 21, No. 4, 1985, pp. 309–315.CrossRefGoogle Scholar
- 41.M. R. Meybodi, “Binary Search Mesh: A Concurrent Data Structure for Hypercube,” Computer Science Technical Report, Ohio University, Athens, Ohio, Jan. 1992.Google Scholar
- 42.M. R. Meybodi “Banyan Heap Machine,” Proceedings of Sixth International Parallel Processing Symposium, University of Southern California, Los Angeles, CA, March 1992.Google Scholar