Capturing Branch-and-Bound using Shared Abstract Data-types

  • Don Goodeve
  • Robert Briggs
  • John Davy
Conference paper

Abstract

To support the routine construction of large-scale parallel applications requires an effective mechanism of abstracting from the underlying machine. In this paper, abstraction using Shared Abstract Data-types is illustrated through a case-study of an irregular problem; the Travelling Salesman Problem. This design of a Branch and Bound algorithm to solve this problem is investigated, demonstrating the separation of algorithmic and implementation issues that the SADT approach offers. Issues in the composition of SADTs, and methods of exploiting the shared data weakness/performance tradeoff are discussed.

Keywords

Europe Encapsulation Nash Kelly Dura 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    G M Amdahl. Validity of the single-processor approach to achieving large scale computing capabilities. In AFIPS Conference proceedings, pages 483–485, April 1967.Google Scholar
  2. [2]
    Henri Bal. Programming Distributed Systems. Prentice-Hall, 1990.Google Scholar
  3. [3]
    Henri E. Bal, M. Franz Kaashoek, and Andrew S. Tannenbaum. Orea: A Language for Parallel Programming of Distributed Systems. IEEE Transactions on Soßware Engineering, 18(3), March 1992.Google Scholar
  4. [4]
    Robert Briggs. An Accumulator SADT: Implementation and Concurrent Semantics. Final Year Project Report (Unpublished), School of Computer Studies, University of Leeds, 1995.Google Scholar
  5. [5]
    Andrew A. Chien. Concurrent Aggregates. MIT Press, 1993.Google Scholar
  6. [6]
    M. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. Pitman/MIT Press, 1989.MATHGoogle Scholar
  7. [7]
    J. Darlington, A.J. Field, P.G. Harrison, P.H.J. Kelly, D.W.N Sharp, and Q. Wu. Parallel Programming Using Skeleton Functions. In Parallel Languages and Architectures, Europe 1993, 1993.Google Scholar
  8. [8]
    >Carla Schlatter Ellis. Concurrent Search and Insertion in AVL Trees. IEEE Transactions on Computers, C-29(9), September 1980.Google Scholar
  9. [9]
    Don Goodeve, John Davy, Peter Dew, and Jonathan Nash. Concurrent Sharing through Abstract Data-types: A Case Study. In M. Kara et al., editor, Abstract Machine Models for Parallel and Distributed Computing. IOS Press, 1996.Google Scholar
  10. [10]
    Don Goodeve, John Davy, and Chris Wadsworth. Shared Accumulators. In Transputer Applications and Systems ’95, pages 518–528. IOS Press, 1995.Google Scholar
  11. [11]
    A. Gottlieb, R. Grishman, C. P. Kruskal, K. M. McAuliffe, L. Rudolph, and M. Snir. The NYU Ultracomputer — Designing an MIMD Shared Memory Parallel Computer. IEEE Transactions on Computers, C-32(2):175–189, February 1983.CrossRefGoogle Scholar
  12. [12]
    Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, 12(3):463–492, July 1990.CrossRefGoogle Scholar
  13. [13]
    T. Johnson. A Highly Concurrent Priority Queue. Journal of Parallel and Distributed Computing, 22(2):367–373, 1994.MATHCrossRefGoogle Scholar
  14. [14]
    Nobert Kuck, Martin Middendorf, and Hartmut Schmeck. Generic Branch and Bound on Transputers. In R. Grebe et al., editor, Transputer Applications and Systems ’93, pages 521–535. IOS Press, 1993.Google Scholar
  15. [15]
    Sandeep Kumar and Dharma P. Agrawal. CORE: A Solution to the Inheritance Anomaly in Concurrent Object-Oriented Languages. In A. Kumar and K. Kamel, editors,Parallel and Distributed Computing and Systems ’96, pages 75–81. ICSA, October 14–16, 1993.Google Scholar
  16. [16]
    Ten-Hwang Lai and Sartaj Sahni. Anomalies in Parallel Branch-and- Bound Algorithms.Communications of the ACM, 27(6):594–602, June 1984.MATHCrossRefGoogle Scholar
  17. [17]
    Leslie Lamport. How to make a Multiprocessor Computer that Correctly Executes Multiprocess Programs. IEEE Transactions on Computers, C-28(9):690–691, September 1979.CrossRefGoogle Scholar
  18. [18]
    Vladmir Lanin and Dennis Shasha. Concurrent set manipulation without locking. In 7th ACM Symposium on the Principlies of Database Systems, pages 211–220, March 1988.Google Scholar
  19. [19]
    John D.C. Little, Katta G. Murty, Dura W. Sweeney, and Caroline Karel. An Algorithm for the Travelling Salesman Problem. Operations Research, 11:972–989, 1963.MATHCrossRefGoogle Scholar
  20. [20]
    G.P. McKeown, V.J. Rayward-Smith, S.A. Rush, and H.J. Turpin. Using a Transputer network to solve Branch-and-Bound problems. In P. Welch et al., editor, Transputing ’91, pages 781–799. IOS Press, 1991.Google Scholar
  21. [21]
    Greg Nelson. Systems Programming with Modula-3. Prentice-Hall series in Innovative Computer Science. Prentice-Hall, 1991.Google Scholar
  22. [22]
    V.J. Rayward-Smith, S.A. Rush, and G.P. McKeown. Efficiency considerations in the implementation of parallel branch-and-bound. Annals of Operations Research, 43:123–145, 1993.MathSciNetMATHCrossRefGoogle Scholar
  23. [23]
    Nir Shavit and Dan Touitou. Elimination Trees and the Construction of Pools and Stacks. In 7th Annual Symposium on Parallel Algorithms and Architectures, pages 54–63. ACM Press, April 26th, 1995.Google Scholar
  24. [24]
    Thorsten von Eicken, Anindya Basu, and Vineet Buch. Low-Latency Communication Over ATM Networks Using Active Messages. IEEE Micro, 15(l):46–53, 1995.CrossRefGoogle Scholar
  25. [25]
    Jeanette M. Wing and Chun Gong. Testing and Verifying Concurrent Objects. Journal of Parallel and Distributed Computing, 17:164–182,1993.MathSciNetMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 1996

Authors and Affiliations

  • Don Goodeve
    • 1
  • Robert Briggs
    • 1
  • John Davy
    • 1
  1. 1.School of Computer StudiesUniversity of LeedsLeedsUK

Personalised recommendations