Advertisement

Parallel Algorithm Design for Branch and Bound

  • David A. Bader
  • William E. Hart
  • Cynthia A. Phillips
Chapter
Part of the International Series in Operations Research & Management Science book series (ISOR, volume 76)

Abstract

Large and/or computationally expensive optimization problems sometimes require parallel or high-performance computing systems to achieve reasonable running times. This chapter gives an introduction to parallel computing for those familiar with serial optimization. We present techniques to assist the posting of serial optimization codes to parallel systems and discuss more fundamentally parallel approaches to optimization. We survey the state-of-the-art in distributed and shared-memory architectures and give an overview of the programming models appropriate for efficient algorithms on these platforms. As concrete examples, we discuss the design of parallel branch-and-bound algorithms for mixed-integer programming on a distributed-memory system, quadratic assignment problem on a grid architecture, and maximum parsimony in evolutionary trees on a sharedmemory system.

Keywords

parallel algorithms optimization branch and bound distributed memory shared memory grid computing 

References

  1. [1]
    K. M. Anstreicher and N. W. Brixius. A new bound for the quadratic assignment problem based on convex quadratic programming. Mathematical Programming, 89: 341–357, 2001.MathSciNetCrossRefzbMATHGoogle Scholar
  2. [2]
    K.M. Anstreicher, N.W. Brixius, J.-P. Goux, and J. Linderoth. Solving large quadratic assignment problems on computational grids. Mathematical Programming, Series B, 91: 563–588, 2002.MathSciNetCrossRefzbMATHGoogle Scholar
  3. [3]
    D. A. Bader. An improved randomized selection algorithm with an experimental study. In Proceedings of the 2nd Workshop on Algorithm Engineering and Experiments (ALENEX00), pages 115–129, San Francisco, CA, January 2000. www.cs.unm.edu/Conferences/ALENEX00/.Google Scholar
  4. [4]
    D. A. Bader and G. Cong. A fast, parallel spanning tree algorithm for symmetric multiprocessors (SMPs). In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS2004), Santa Fe, NM, April 2004.Google Scholar
  5. [5]
    D. A. Bader and G. Cong. Fast shared-memory algorithms for computing the minimum spanning forest of sparse graphs. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS 2004), Santa Fe, NM, April 2004.Google Scholar
  6. [6]
    D. A. Bader, A. K. Illendula, B. M. E. Moret, and N. Weisse-Bernstein. Using PRAM algorithms on a uniform-memory-access shared-memory architecture. In G.S. Brodal, D. Frigioni, and A. Marchetti-Spaccamela, editors, Proceedings of the 5th International Workshop on Algorithm Engineering (WAE 2001), volume 2141 of Lecture Notes in Computer Science, pages 129–144, Århus, Denmark, 2001. Springer-Verlag.Google Scholar
  7. [7]
    D. A. Bader and J. JáJá. SIMPLE: A methodology for programming high performance algorithms on clusters of symmetric multiprocessors (SMPs). Journal of Parallel and Distributed Computing, 58(1): 92–108, 1999.CrossRefGoogle Scholar
  8. [8]
    D. A. Bader and B. M. E. Moret. GRAPPA runs in record time. HPCwire, 9(47), November 23, 2000.Google Scholar
  9. [9]
    D. A. Bader, B. M. E. Moret, and P. Sanders. Algorithm engineering for parallel computation. In R. Fleischer, E. Meineche-Schmidt, and B. M. E. Moret, editors, Experimental Algorithmics, volume 2547 of Lecture Notes in Computer Science, pages 1–23. Springer-Verlag, 2002.Google Scholar
  10. [10]
    D. A. Bader, B. M. E. Moret, and L. Vawter. Industrial applications of high-performance computing for phylogeny reconstruction. In H.J. Siegel, editor, Proceedings of SPIE Commercial Applications for High-Performance Computing, volume 4528, pages 159–168, Denver, CO, 2001. SPIE.Google Scholar
  11. [11]
    A. Bar-Noy, S. Guha, J. Naor, and B. Schieber. Approximating the throughput of multiple machines in real-time scheduling. SIAM Journal on Computing, 31(2): 331–352, 2001.MathSciNetCrossRefzbMATHGoogle Scholar
  12. [12]
    M. Benchouche, V.-D Cung, S. Dowaji, B. LeCun, T. Mautor, and C. Roucairol. Building a parallel branch and bound library. In A. Ferreira and P. Pardalos, editors, Solving Combinatorial Optimization Problems in Parallel:Methods and Techniques, volume 1054 of Lecture Notes in Computer Science, pages 201–231. Springer-Verlag, 1996.Google Scholar
  13. [13]
    R. H. Bisseling. Parallel Scientific Computation: A Structured Approach using BSP and MPI, Oxford University Press, 2004.Google Scholar
  14. [14]
    G. E. Blelloch. Scans as primitive parallel operations. IEEE Transactions on Computers, C-38(11): 1526–1538, 1989.CrossRefGoogle Scholar
  15. [15]
    G. E. Blelloch. Prefix sums and their applications. In J. H. Reif, editor, Synthesis of Parallel Algorithms, pages 35–60. Morgan Kaufman, San Mateo, CA, 1993.Google Scholar
  16. [16]
    BOB++.http://www.prism.uvsq.fr/~blec/Research/BOBO/.Google Scholar
  17. [17]
    N. W. Brixius and K. M. Anstreicher. Solving quadratic assignment problems using convex quadratic programming relaxations. Optimization Methods and Software, 16: 49–68, 2001.MathSciNetzbMATHGoogle Scholar
  18. [18]
    G. Burns, R. Daoud, and J. Vaigl. LAM: An open cluster environment for MPI. In Proceedings of Supercomputing Symposium, pages 379–386, 1994.Google Scholar
  19. [19]
    G. Calinescu, H. Karloff, and Y. Rabani. An improved approximation algorithm for multiway cut. In Proceedings of the 30thAnnual ACM Symposium on Theory of Computing, pages 48–52, 1998.Google Scholar
  20. [20]
    A. Caprara. Formulations and hardness of multiple sorting by reversals. In 3rd Annual International Conference on Computational Molecular Biology (RECOMB99), pages 84–93. ACM, April 1999.Google Scholar
  21. [21]
    W. W. Carlson, J. M. Draper, D. E. Culler, K. Yelick, E. Brooks, and K. Warren. Introduction to UPC and language specification. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences, Bowie, MD, May 1999.Google Scholar
  22. [22]
    R. D. Carr and G. Konjevod. Polyhedral combinatorics. In H. J. Greenberg, editor, Tutorials on Emerging Methodologies and Applications in Operations Research. Kluwer Academic Press, 2004.Google Scholar
  23. [23]
    H. Casanova and J. Dongarra. NetSolve: Network enabled solvers. IEEE Computational Science and Engineering, 5(3): 57–67, 1998.CrossRefGoogle Scholar
  24. [24]
    R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, and R. Menon. Parallel programming in OpenMP. Academic Press, 2001.Google Scholar
  25. [25]
    Q. Chen and M. C. Ferris. FATCOP: A fault tolerant Condor-PVM mixed integer programming solver. SIAM Journal on Optimization, 11(4): 1019–1036, 2001.MathSciNetCrossRefzbMATHGoogle Scholar
  26. [26]
    Computational Infrastructure for Operations Research, home page, 2004. http://www-124.ibm.com/developerworks/opensource/coin/.Google Scholar
  27. [27]
    T. Coleman, J Czyzyk, C. Sun, M. Wager, and S. Wright. pPCx: Parallel software for linear programming. In Proceedings of the Eighth SIAM Conference on Parallel Processing for Scientific Computing, 1997.Google Scholar
  28. [28]
    The Condor Project Homepage, 2004. http://www.cs.wisc.edu/condor/.Google Scholar
  29. [29]
    G. Cong and D. A. Bader. The Euler tour technique and parallel rooted spanning tree. Technical report, Electrical and Computer Engineering Department, The University of New Mexico, Albuquerque, NM, February 2004.Google Scholar
  30. [30]
    M. E. Cosner, R. K. Jansen, B. M. E. Moret, L.A. Raubeson, L.-S. Wang, T. Warnow, and S. Wyman. An empirical comparison of phylogenetic methods on chloroplast gene order data in Campanulaceae. In D. Sankoff and J. Nadeau, editors, Comparative Genomics: Empirical and Analytical Approaches to Gene Order Dynamics, Map Alignment, and the Evolution of Gene Families, pages 99–121. Kluwer Academic Publishers, Dordrecht, Netherlands, 2000.Google Scholar
  31. [31]
    ILOG, CPLEX home page, 2004. http://www.ilog.com/products/cplex/.Google Scholar
  32. [32]
    D. Culler and J. P. Singh. Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann, 1998.Google Scholar
  33. [33]
    J. Dongarra, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, and Andy White, editors. The Sourcebook of Parallel Computing. Morgan Kaufmann, 2002.Google Scholar
  34. [34]
    R. V. Eck and M. O. Dayhoff. Atlas of Protein Sequence and Structure. National Biomedical Research Foundation, Silver Spring, MD, 1966.Google Scholar
  35. [35]
    J. Eckstein. Parallel branch-and-bound algorithms for general mixed integer programming on the CM-5. SIAM Journal on Optimization, 4(4): 794–814, 1994.zbMATHMathSciNetCrossRefGoogle Scholar
  36. [36]
    J. Eckstein, W. E. Hart, and C. A. Phillips. PICO: An object-oriented framework for parallel branch-and-bound. In Inherently Parallel Algorithms in Feasibility and Optimization and Their Applications, Elsevier Scientific Series on Studies in Computational Mathematics, pages 219–265, 2001.Google Scholar
  37. [37]
    D. P. Faith. Distance method and the approximation of most-parsimonious trees. Systematic Zoology, 34: 312–325, 1985.CrossRefGoogle Scholar
  38. [38]
    J. S. Farris. Estimating phylogenetic trees from distance matrices. The American Naturalist, 106: 645–668, 1972.CrossRefGoogle Scholar
  39. [39]
    M. Fellows. Parameterized complexity. In R. Fleischer, E. Meineche-Schmidt, and B. M. E. Moret, editors, Experimental Algorithmics, volume 2547 of Lecture Notes in Computer Science, pages 51–74. Springer-Verlag, 2002.Google Scholar
  40. [40]
    J. Felsenstein. PHYLIP — phylogeny inference package (version 3.2). Cladistics, 5: 164–166, 1989.Google Scholar
  41. [41]
    W. M. Fitch. Toward defining the course of evolution: Minimal change for a specific tree topology. Systematic Zoology, 20: 406–416, 1971.CrossRefGoogle Scholar
  42. [42]
    S. Fortune and J. Willie. Parallelism in random access machines. In Proceedings of the 10th Annual ACM Symposium on Theory of Computing, pages 114–118, 1978.Google Scholar
  43. [43]
    I. Foster and C. Kesselman, Globus: A metacomputing infrastructure toolkit. International Journal of SuperComputer Applications, 11(2): 115–128, 1997.CrossRefGoogle Scholar
  44. [44]
    I. Foster and C. Kesselman. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann, 1999.Google Scholar
  45. [45]
    I. Foster, C. Kesselman, and S. Tuecke. The anatomy of the grid: Enabling scalable virtual organization. International Journal of High Performance Computing Applications, 15(3): 200–222, 2001.CrossRefGoogle Scholar
  46. [46]
    B. Gendron and T. G. Crainic. Parallel branch and bound algorithms: Survey and synthesis. Operations Research, 42: 1042–1066, 1994.MathSciNetCrossRefzbMATHGoogle Scholar
  47. [47]
    P. A. Goloboff. Analyzing large data sets in reasonable times: Solutions for composite optima. Cladistics, 15: 415–428, 1999.CrossRefGoogle Scholar
  48. [48]
    J.-P. Goux, S. Kulkarni, J. T. Linderoth, and M. E. Yoder. Master-Worker: An enabling framework for applications on the computational grid. Cluster Computing, 4: 63–70, 2001.CrossRefGoogle Scholar
  49. [49]
    A. Grama, A. Gupta, G. Karypis, and V. Kumar. An Introduction to Parallel Computing, Design and Analysis of Algorithms. Addison-Wesley, second edition, 2003.Google Scholar
  50. [50]
    A. Grimshaw, A. Ferrari, F. Knabe, and M. Humphrey. Legion: An operating system for wide-area computing. Technical report, 1999. Available at http://legion.Virginia.edu/papers/CS-99-12.ps.Z.Google Scholar
  51. [51]
    W. E. Hart. UTILIB user manual version 1.0. Technical Report SAND2001-3788, Sandia National Laboratories, 2001. Available for download at http://software.sandia.gov/Acro/UTILIB/.Google Scholar
  52. [52]
    D. R. Helman, D. A. Bader, and J. JáJá. A randomized parallel sorting algorithm with an experimental study. Journal of Parallel and Distributed Computing, 52(1): 1–23, 1998.CrossRefzbMATHGoogle Scholar
  53. [53]
    D. R. Helman and J. JáJá. Sorting on clusters of SMP’s. In Proceedings of the 12th International Parallel Processing Symposium, pages 1–7, Orlando, FL, March/April 1998.Google Scholar
  54. [54]
    D. R. Helman and J. JáJá. Designing practical efficient algorithms for symmetric multiprocessors. In Algorithm Engineering and Experimentation, volume 1619 of Lecture Notes in Computer Science, pages 37–56, Baltimore, MD, January 1999. Springer-Verlag.Google Scholar
  55. [55]
    B. Hendrickson and R. Leland. The Chaco user’s guide: Version 2.0. Technical Report SAND94-2692, Sandia National Laboratories, 1994.Google Scholar
  56. [56]
    M. D. Hendy and D. Penny. Branch and bound algorithms to determine minimal evolutionary trees. Mathematical Biosciences, 59: 277–290, 1982.MathSciNetCrossRefzbMATHGoogle Scholar
  57. [57]
    J. JáJá. An Introduction to Parallel Algorithms. Addison-Wesley Publishing Company, New York, 1992.zbMATHGoogle Scholar
  58. [58]
    H. F. Jordan and G. Alaghband. Fundamentals of Parallel Processing. Prentice Hall, 2003.Google Scholar
  59. [59]
    N. Karonis, B. Toonen, and I. Foster. MPICH-G2: A Grid-enabled implementation of the Message Passing Interface. Journal of Parallel and Distributed Computing, 63(5):551–563, 2003.CrossRefzbMATHGoogle Scholar
  60. [60]
    G. Karypis and V. Kumar. MeTiS: A Software Package for Partitioning Unstructured Graphs, Partitioning Meshes, and Computing Fill-Reducing Orderings of Sparse Matrices. Department of Computer Science, University of Minnesota, version 4.0 edition, September 1998.Google Scholar
  61. [61]
    L. Khachian. A polynomial time algorithm for linear programming. Soviet Mathematics, Doklady, 20: 191–194, 1979.Google Scholar
  62. [62]
    S. Kleiman, D. Shah, and B. Smaalders. Programming with Threads. Prentice Hall, Englewood Cliffs, NJ, 1996.Google Scholar
  63. [63]
    L. Ladányi. BCP (Branch, Cut, and Price). Available from http://www-124.ibm.com/developerworks/opensource/coin/.Google Scholar
  64. [64]
    T.-H. Lai and S. Sahni. Anomalies in parallel branch-and-bound algorithms. Communications of the ACM, 27: 594–602, 1984.MathSciNetCrossRefzbMATHGoogle Scholar
  65. [65]
    T.-H. Lai and A. Sprague. Performance of parallel branch-and-bound algorithms. IEEE Transactions on Computing, C-34: 962–964, 1985.Google Scholar
  66. [66]
    G.-J. Li and B. Wah. Coping with anomalies in parallel branch-and-bound algorithms. IEEE Transactions on Computing, C-35: 568–573, 1986.MathSciNetCrossRefGoogle Scholar
  67. [67]
    G.-J. Li and B. Wah. Computational efficiency of parallel combinatorial OR-tree searches. IEEE Transactions on Software Engineering, 18: 13–31, 1990.MathSciNetGoogle Scholar
  68. [68]
    W.-H. Li. Simple method for constructing phylogenetic trees from distance matrices. Proceedings of the National Academy of Sciences USA, 78: 1085–1089, 1981.zbMATHGoogle Scholar
  69. [69]
    J. T. Linderoth. Topics in Parallel Integer Optimization. PhD thesis, Georgia Institute of Technology, Department of Industrial and Systems Engineering, 1998.Google Scholar
  70. [70]
    M. Livny, J. Basney, R. Raman, and T. Tannenbaum. Mechanisms for high through put computing. SPEEDUP, 11, 1997. Available from http://www.cs.wisc.edu/condor/doc/htc_mech.ps.Google Scholar
  71. [71]
    Mallba library v2.0. http://neo.Ice.uma.es/mallba/easy-mallba/.Google Scholar
  72. [72]
    F. Margot. BAC: A BCP based branch-and-cut example. Technical Report RC22799, IBM, 2003.Google Scholar
  73. [73]
    A. Marzetta. ZRAM. PhD thesis, ETH Zurich, Institute of Theoretical Computer Science, 1998.Google Scholar
  74. [74]
    M. Mascagni and A. Srinivasan. Algorithm 806: SPRNG: A scalable library for pseudorandom number generation. ACM Transactions on Mathematical Software, 26: 436–461, 2000. Available for download from http://sprng.cs.fsu.edu/.CrossRefGoogle Scholar
  75. [75]
    F. Mattern. Algorithms for distributed termination detection. Distributed Computing, 2: 161–175, 1987.CrossRefGoogle Scholar
  76. [76]
    F. Mattern. Distributed termination detection with sticky state indicators. Technical report, 200/90, Department of Computer Science, University of Kaiserslautern, Germany, 1990.Google Scholar
  77. [77]
    R. Miller and L. Boxer. Algorithms Sequential and Parallel: A Unified Approach. Prentice Hall, 2000.Google Scholar
  78. [78]
    B. M. E. Moret, S. Wyman, D. A. Bader, T. Warnow, and M. Yan. A new implementation and detailed study of breakpoint analysis. In Proceedings of the 6th Pacific Symposium on Biocomputing, pages 583–594, Hawaii, 2001.Google Scholar
  79. [79]
    Performance visualization for parallel programs, 2004. http://www-unix.mcs.anl.gov/perfvis/publications/index.htm.Google Scholar
  80. [80]
    M. Nediak and J. Eckstein. Pivot, cut, and dive: A heurstic for mixed 0-1 integer programming. Technical Report RRR 53-2001, RUTCOR, October 2001.Google Scholar
  81. [81]
    M. Nei and S. Kumar. Molecular Evolution and Phylogenetics. Oxford University Press, Oxford, UK, 2000.Google Scholar
  82. [82]
    K.C. Nixon. The parsimony ratchet, a new method for rapid parsimony analysis. Cladistics, 15: 407–414, 1999.CrossRefGoogle Scholar
  83. [83]
    C. E. Nugent, T. E. Vollman, and J. Ruml. An experimental comparison of techniques for the assignment of facilities to locations. Operations Research, pages 150–173, 1968.Google Scholar
  84. [84]
    Network Weather Service WWW Page, 2004. http://nws.cs.ucsb.edu/.Google Scholar
  85. [85]
    OpenMP Architecture Review Board. OpenMP: A proposed industry standard API for shared memory programming. www.openmp.org, October 1997.Google Scholar
  86. [86]
    IBM Optimization Solutions and Library, home page, 2004. http://www-306.ibm.com/software/data/bi/osl/.Google Scholar
  87. [87]
    I. Pe’er and R. Shamir. The median problems for breakpoints are NP-complete. Technical Report 71, Electronic Colloquium on Computational Complexity, November 1998.Google Scholar
  88. [88]
    C. Phillips, C. Stein, and J. Wein. Minimizing average completion time in the presence of release dates. Mathematical Programming B, 82: 199–223, 1998.MathSciNetGoogle Scholar
  89. [89]
    POSIX. Information technology—Portable Operating System Interface (POSIX)-Part 1: System Application Program Interface (API). Portable Applications Standards Committee of the IEEE, 1996-07-12 edition, 1996. ISO/IEC 9945-1, ANSI/IEEE Std. 1003.1.Google Scholar
  90. [90]
    J. Pruyne and M. Livny. Interfacing Condor and PVM to harness the cycles of workstation clusters. Journal on Future Generation of Computer Systems, 12(53-65), 1996.Google Scholar
  91. [91]
    P. W. Purdom, Jr., P. G. Bradford, K. Tamura, and S. Kumar. Single column discrepancy and dynamic max-mini optimization for quickly finding the most parsimonious evolutionary trees. Bioinfomatics, 2(16): 140–151, 2000.CrossRefGoogle Scholar
  92. [92]
    PVM: Parallel Virtual Machine, 2004. http://www.csm.ornl.gov/pvm/pvm_home.html.Google Scholar
  93. [93]
    M. J. Quinn. Parallel Programming in C with MPI and OpenMP. McGraw-Hill, 2004.Google Scholar
  94. [94]
    T. K. Ralphs. Symphony 4.0 users manual, 2004. Available from www.branchandcut.org.Google Scholar
  95. [95]
    T. K. Ralphs, L. Ladányi, and M. J. Saltzman. Parallel branch, cut, and price for largescale discrete optimization. Mathematical Programming, 98(1-3), 2003.Google Scholar
  96. [96]
    T. K. Ralphs, L. Ladányi, and M. J. Saltzman. A library for implementing scalable parallel search algorithms. The Journal of SuperComputing, 28(2): 215–234, 2004.CrossRefzbMATHGoogle Scholar
  97. [97]
    J. H. Reif, editor. Synthesis of Parallel Algorithms. Morgan Kaufmann Publishers, 1993.Google Scholar
  98. [98]
    K. Rice and T. Warnow. Parsimony is hard to beat. In Computing and Combinatorics, pages 124–133, August 1997.Google Scholar
  99. [99]
    N. Saitou and M. Nei. The neighbor-joining method: A new method for reconstruction of phylogenetic trees. Molecular Biological and Evolution, 4: 406–425, 1987.Google Scholar
  100. [100]
    D. Sankoff and M. Blanchette. Multiple genome rearrangement and breakpoint phylogeny. Journal of Computational Biology, 5: 555–570, 1998.CrossRefGoogle Scholar
  101. [101]
    H. Shi and J. Schaeffer. Parallel sorting by regular sampling. Journal of Parallel and Distributed Computing, 14: 361–372, 1992.CrossRefzbMATHGoogle Scholar
  102. [102]
    Y. Shinano, M. Higaki, and R. Hirabayashi. Generalized utility for parallel branch and bound algorithms. In Proceedings of the Seventh Symposium on Parallel and Distributed Processing, 1995.Google Scholar
  103. [103]
    D. Skillicorn and D. Talia. Models and languages for parallel computation. Computing Surveys, 30(2): 123–169, 1998.CrossRefGoogle Scholar
  104. [104]
    M. Snir, S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra. MPI: The Complete Reference. MIT Press, Inc., second edition, 1998.Google Scholar
  105. [105]
    J. M. Squyres and A. Lumsdaine. A component architecture for LAM/MPI. In Proceedings of the 10th European PVM/MPI Users’ Group Meeting, number 2840 in Lecture Notes in Computer Science, Venice, Italy, September / October 2003. Springer-Verlag.Google Scholar
  106. [106]
    J. A. Studier and K. J. Keppler. A note on the neighbor-joining method of Saitou and Nei. Molecular Biological and Evolution, 5: 729–731, 1988.Google Scholar
  107. [107]
    Sun Microsystems, Inc., WWW Page, 2004. www.sun.com.Google Scholar
  108. [108]
    Sun Microsystems, Inc. POSIX threads. WWW page, 1995. www.sun.com/developer-products/sig/threads/posix.html.Google Scholar
  109. [109]
    D. L. Swofford and D. P. Begle. PAUP: Phylogenetic analysis using parsimony. Sinauer Associates, Sunderland, MA, 1993.Google Scholar
  110. [110]
    D. L. Swofford, G. J. Olsen, P. J. Waddell, and D. M. Hillis. Phylogenetic inference. In D. M. Hillis, C. Moritz, and B. K. Mable, editors, Molecular Systematics, pages 407–514. Sinauer, Sunderland, MA, 1996.Google Scholar
  111. [111]
    Etnus, L.L.C. TotalView WWW Page, 2004. http://www.etnus.com/Products/TotalView/index.html.Google Scholar
  112. [112]
    S. Tschöke and T. Polzer. Portable parallel branch-and-bound library PPBB-Lib, user manual, library version 2.0. Technical report, University of Paderborn Department of Computer Science, 1996.Google Scholar
  113. [113]
    L. G. Valiant. A bridging model for parallel computation. Commununications of the ACM, 33(8): 103–111, 1990.CrossRefGoogle Scholar
  114. [114]
    Intel GmbH VAMPIR WWW Page, 2004. http://www.pallas.com/e/products/vampir/.Google Scholar
  115. [115]
    B. Wilkinson and M. Allen. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, second edition, 2004.Google Scholar
  116. [116]
    R. Wolski. Dynamically forecasting network performance using the Network Weather Service. Journal of Cluster Computing, 1: 119–132, January 1998.CrossRefGoogle Scholar
  117. [117]
    R. Wolski, J. Brevik, C. Krintz, G. Obertelli, N. Spring, and A. Su. Running Everyware on the computational grid. In SC99 Conference on High Performance Computing, 1999. Available from http://www.cs.utk.edu/~rich/papers/ev-sc99.ps.gz.Google Scholar
  118. [118]
    R. Wolski, N. Spring, and J. Hayes. The Network Weather Service: A distributed resource performance forecasting service for metacomputing. Journal of Future Generation Computing Systems, 15(5-6):757–768, 1999.CrossRefGoogle Scholar
  119. [119]
    Dash Optimization, XPRESS-MP, 2004. http://www.dashoptimization.com/.Google Scholar
  120. [120]
    M. Yan. High Performance Algorithms for Phylogeny Reconstruction with Maximum Parsimony. PhD thesis, Electrical and Computer Engineering Department, University of New Mexico, Albuquerque, NM, January 2004.Google Scholar
  121. [121]
    M. Yan and D. A. Bader. Fast character optimization in parsimony phylogeny reconstruction. Technical report, Electrical and Computer Engineering Department, The University of New Mexico, Albuquerque, NM, August 2003.Google Scholar
  122. [122]
    K. A. Yelick, L. Semenzato, G. Pike, C. Miyamoto, B. Liblit, A. Krishnamurthy, P. N. Hilfinger, S. L. Graham, D. Gay, P. Colella, and A. Aiken. Titanium: A high-performance Java dialect. Concurrency: Practice and Experience, 10(11-13): 825–836, 1998.CrossRefGoogle Scholar
  123. [123]
    O. Zaki, E. Lusk, W. Gropp, and D. Swider. Toward scalable performance visualization with Jumpshot. High Performance Computing Applications, 13(2): 277–288, 1999.CrossRefGoogle Scholar

Copyright information

© Springer Science + Business Media, Inc. 2005

Authors and Affiliations

  • David A. Bader
    • 1
  • William E. Hart
    • 2
  • Cynthia A. Phillips
    • 2
  1. 1.Department of Electrical & Computer EngineeringUniversity of New MexicoUSA
  2. 2.Discrete Mathematics and Algorithms DepartmentSandia National LaboratoriesUSA

Personalised recommendations