Parallel Algorithms: The Minimum Spanning Tree And Minimum Steiner Tree Problems

Similar documents
CS 157: Assignment 5

Advanced algorithms. topological ordering, minimum spanning tree, Union-Find problem. Jiří Vyskočil, Radek Mařík 2012

The minimum spanning tree and duality in graphs

Parallel Combinatorial Search on Computer Cluster: Sam Loyd s Puzzle

Provably Efficient Non-Preemptive Task Scheduling with Cilk

SRI VENKATESWARA COLLEGE OF ENGINEERING. COURSE DELIVERY PLAN - THEORY Page 1 of 6

New approach to find minimum spanning tree for undirected graphs

2 Approximation Algorithms for Metric TSP

CS161 - Minimum Spanning Trees and Single Source Shortest Paths

Bulldozers/Sites A B C D

Graph Algorithms. A Brief Introduction. 高晓沨 (Xiaofeng Gao) Department of Computer Science Shanghai Jiao Tong Univ.

CSE : ADVANCED ALGORITHMS

Randomized Graph Algorithms

Parallel Algorithm Design. Parallel Algorithm Design p. 1

Maximum flows & Maximum Matchings

IP Packet Filtering using Hash Table for Dedicated Real Time IP Filter

Distributed Data Structures and Algorithms for Disjoint Sets in Computing Connected Components of Huge Network

Design and Analysis of Algorithms. Comp 271. Mordecai Golin. Department of Computer Science, HKUST

International Journal of Scientific & Engineering Research, Volume 4, Issue 7, July ISSN

23.2 Minimum Spanning Trees

VISUAL BASIC COLLECTIONS

VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS

CSEE 4840 Embedded Systems. LABYRINTH Dijkstra s implementation on FPGA

International Journal of Advanced Research in Computer Science and Software Engineering

Week 11: Minimum Spanning trees

Kareem Naaz (KN) Encryption and Decryption using Sorting

Data Structures and Algorithms

CS4961 Parallel Programming. Lecture 18: Introduction to Message Passing 11/3/10. Final Project Purpose: Mary Hall November 2, 2010.

Book List. A Collection of Books. Computer Science

York University Department of Computer Science & Engineering Revised January 27, 2014

Computer Science 1321 Course Syllabus

Algorithms and Data Structures

A Class of Non Invertible Matrices in GF (2) for Practical One Way Hash Algorithm

Chapter 2: Algorithm Complexity Analysis. Chaochun Wei Spring 2018

Lecture 1. Introduction

A Scalable Parallel HITS Algorithm for Page Ranking

Design and Analysis of Algorithms

Algorithms and Data Structures, or

Outline. Computer Science 331. Desirable Properties of Hash Functions. What is a Hash Function? Hash Functions. Mike Jacobson.

CS2 Algorithms and Data Structures Note 1

Smart Sort and its Analysis

COMP 355 Advanced Algorithms

Minimum Spanning Trees My T. UF

Chapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)

Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures

Solving the Travelling Salesman Problem in Parallel by Genetic Algorithm on Multicomputer Cluster

Heap Order Property: Key stored at the parent is smaller or equal to the key stored at either child.

The minimum spanning tree problem

Greedy Algorithms 1 {K(S) K(S) C} For large values of d, brute force search is not feasible because there are 2 d {1,..., d}.

Teaching Scheme BIT/MMC/BCS Database Systems 1

A Deterministic Polynomial-time Algorithm for the Clique Problem and the Equality of P and NP Complexity Classes

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

Distributed minimum spanning tree problem

COMP6700/2140 Recursive Operations

STRUCTURE EXITS, NOT LOOPS

Module 5: Concurrent and Parallel Programming

Efficiency of Functional Languages in Client-Server Applications

ICS 252 Introduction to Computer Design

Using Templates to Introduce Time Efficiency Analysis in an Algorithms Course

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Application of Bounded Variable Simplex Algorithm in Solving Maximal Flow Model

Outline. Computer Science 331. Analysis of Prim's Algorithm

CS 157: Assignment 6

Undirected Graphs. Hwansoo Han

Grouping Genetic Algorithm with Efficient Data Structures for the University Course Timetabling Problem

Homework Assignment #3 Graph

Complexity Analysis in Heterogeneous System

Course overview. The course lessons. Education Think Parallel: Teaching Parallel Programming Today

Minimum Spanning Trees

arxiv: v3 [cs.ds] 18 Apr 2011

COSC 462. Parallel Algorithms. The Design Basics. Piotr Luszczek

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components

Decoupled Software Pipelining in LLVM

Implementing Divide and Conquer Technique for a Big-Data Traffic

Introduction To Algorithms Instructor Manual Edition 3

ITE 205 Software Design and Programming I

Lecture C8: Trees part II 3 C 2 A 4 D. Response to 'Muddiest Part of the Lecture Cards' (16 respondents)

Lecture 1: Introduction & Overview

CNT 4004: Computer Networks I. Tentative Syllabus

Advanced High Performance Computing CSCI 580

Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees

COMPUTER ARCHITECTURE

Virtual University of Pakistan

Clearly there is a close relation between the radius R and the diameter D of a graph, such as R D 2R.

Problem Set 2 Solutions

D.Abhyankar 1, M.Ingle 2. -id: 2 M.Ingle, School of Computer Science, D.A. University, Indore M.P.

Aman Kumar. Department of Computer Science & Engineering, IIT Kanpur 3 November, 2014

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees

Graph Data Processing with MapReduce

Introduction to the Theory of Computation, Sipser, PWS, ISBN X, 1996

1 Syllabus. Fall, Course Syllabus. Course Title: Design and Analysis of Algorithms

A MULTI-DIMENSIONAL DATA ORGANIZATION THAT ASSISTS IN THE PARSING AND PRODUCTION OF A SENTENCE

CSE (Computational Geometry) SYLLABUS

Department of Information Technology

Parallel Programming In C With MPI And OpenMP By Quinn,Michael READ ONLINE

Automatic Photograph Enhancement

High Performance Computing using a Parallella Board Cluster PROJECT PROPOSAL. March 24, 2015

Graphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs

Data Structures and Algorithms

Transcription:

Parallel Algorithms: The Minimum Spanning Tree And Minimum Steiner Tree Problems Katie Zrncic COMP 512 Spring 2005

Introduction Parallel computing is one of the most exciting technologies to achieve prominence since the invention of electronic computers [6]. The goal of this project is to explore the field of parallel computing by implementing parallel algorithms. The first algorithm will solve a common problem finding a minimum spanning tree for a graph. The second will be an approximation algorithm for a harder problem finding a minimum Steiner tree. Problem The Minimum Spanning Tree problem (MST) is defined as follows in [2]. Input: A connected, undirected graph G = (V, E) with a weight function w : E R. Output: An acyclic subset T E that connects all of the vertices and whose total weight is minimized. Minimum spanning trees have many common applications such as designing electronic circuits, computer and telephone networks, and airline routes. Any problem that involves connecting points with a minimum cost can be viewed as an instance of MST. The most common methods for solving the MST problem are to use Kruskal s or Primm s algorithms, which are sequential. Although not mentioned as often, Boruvka s algorithm was actually developed earlier and has a structure that can be readily adapted for parallel processing [4]. For this project, I plan to implement a parallel algorithm based on Boruvka s work. As part of this implementation, I will need to focus on how to convert a sequential algorithm into a parallel one, what data structures to use for the most efficient communication among processes, and how to partition the data and work among the available processors. I am not the first person to create a parallel algorithm for finding minimum spanning trees. However, I believe this is still a valuable piece of my project because it will allow me to explore the area of parallel algorithms and distributed computation. 1

The second piece of my project will be to implement a parallel algorithm for the Minimum Steiner Tree problem. This differs from MST in that additional points may be added to the solution in order to reduce the total edge weight. Therefore the result is a minimum spanning tree covering all of the vertices in the graph plus the added Steiner points. The Minimum Steiner Tree problem is NP-hard, and so approximation algorithms are often used [9]. One approximation method is to start with a minimum spanning tree and then to insert Steiner points as needed. This shows how the two problems are related and may be a good starting place for my Minimum Steiner Tree implementation. Strategic Plan This section of the proposal describes more details about my planned implementation. I will use the C MPI library for my implementation. MPI is a standard, welldocumented parallel message passing library and I am already familiar with programming in C. Therefore I feel that this will be a good environment for me to work in. MPI handles many distributed issues such as communication protocols (blocking/non-blocking, buffering, etc.), which will allow me to concentrate on the interaction between processes, with data and results being sent back and forth. Tactical Plan This project will be implemented using a three-stage plan of attack. This section outlines those stages and gives anticipated timeframes for each stage. 1. Design (2 week): My first step will be to examine the design areas for parallel algorithms, make design decisions, and document why I made those choices. This will result in a detailed plan for the actual implementation. 2. Program and Test (4 weeks): Once a detailed plan is in place, I will work iteratively rather than trying to build the end-product from the start. My milestones will include: 2

a. Create a simple parallel algorithm to demonstrate basic communication between the processes. b. Add functionality for a user to input a graph and pass some information among processors. c. Complete the parallel MST algorithm. (Worst Case Result) d. Implement a Minimum Steiner Tree approximation algorithm with some parallel steps (e.g. finding a minimum spanning tree to start building a Steiner Tree from). (Expected Result) e. Complete a parallel Minimum Steiner Tree algorithm. (Best Case Result) 3. Write Report (2 weeks): Completing the written report will include documenting my final design decisions, describing problems or surprises that were encountered during the project and how I handled them, and documenting any outstanding issues and how I would approach those issues given more time. References 1. Chandy, K. Mani and Taylor, Stephen. An Introduction to Parallel Programming, Jones and Bartlett Publishers, 1992. 2. Cormen, Thomas H., Leiserson, Charles E., and Rivest, Ronald L. Introduction to Algorithms, The MIT Press, 1990. 3. Foster, Ian T. Designing and Building Parallel Programs, Addison-Wesley Publishing Company, 1995. 4. Graham, R. L. and Hell, Pavol. On the History of the Minimum Spanning Tree Problem. Annals of the History of Computing. Volume 7:1, pp. 43 57. January, 1985. 5. Gropp, William, Lusk, Ewing, and Skjellum, Anthony. Using MPI: portable parallel programming with the message-passing interface, The MIT Press, 1999. 6. Lester, Bruce P. The Art of Parallel Programming, Prentice Hall, 1993. 7. Lewis, Ted G. and El-Rewini, Hesham. Introduction to Parallel Computing, Prentice Hall, 1992. 3

8. Quinn, Michael J. Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2004. 9. Weisstein, Eric W. "Steiner Tree." From MathWorld -- A Wolfram Web Resource. http://mathworld.wolfram.com/steinertree.html. 4