CS 584. Discrete Optimization Problems A discrete optimization problem can be expressed as (S, f) S is the set of all feasible solutions f is the cost.

Slides:



Advertisements
Similar presentations
Artificial Intelligent
Advertisements

Algorithm Engineering Parallele Suche Stefan Edelkamp.
Review: Search problem formulation
Announcements Course TA: Danny Kumar
Uninformed search strategies
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
CS 484. Discrete Optimization Problems A discrete optimization problem can be expressed as (S, f) S is the set of all feasible solutions f is the cost.
Problem Solving Agents A problem solving agent is one which decides what actions and states to consider in completing a goal Examples: Finding the shortest.
Solving Problems by Searching Currently at Chapter 3 in the book Will finish today/Monday, Chapter 4 next.
CS 480 Lec 3 Sept 11, 09 Goals: Chapter 3 (uninformed search) project # 1 and # 2 Chapter 4 (heuristic search)
CMSC 471 Spring 2014 Class #4 Thu 2/6/14 Uninformed Search Professor Marie desJardins,
Blind Search1 Solving problems by searching Chapter 3.
May 12, 2013Problem Solving - Search Symbolic AI: Problem Solving E. Trentin, DIISM.
Parallel Graph Algorithms
Touring problems Start from Arad, visit each city at least once. What is the state-space formulation? Start from Arad, visit each city exactly once. What.
14 Jan 2004CS Blind Search1 Solving problems by searching Chapter 3.
Distributed Process Scheduling Summery Distributed Process Scheduling Summery BY:-Yonatan Negash.
CISC October Goals for today: Foster’s parallel algorithm design –Partitioning –Task dependency graph Granularity Concurrency Collective communication.
Review: Search problem formulation
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
UnInformed Search What to do when you don’t know anything.
1 Solving Problems by Searching. 2 Terminology State State Space Initial State Goal Test Action Step Cost Path Cost State Change Function State-Space.
Informed Search CSE 473 University of Washington.
High Performance Computing 1 Parallelization Strategies and Load Balancing Some material borrowed from lectures of J. Demmel, UC Berkeley.
Search Algorithms for Discrete Optimization Problems
CS 584. Discrete Optimization Problems A discrete optimization problem can be expressed as (S, f) S is the set of all feasible solutions f is the cost.
Strategies for Implementing Dynamic Load Sharing.
Solving problems by searching
8:38:34 PMICS 573: High-Performance Computing11.1 Search Algorithms for Discrete Optimization Problems Discrete Optimization - Basics Sequential Search.
Distributed Process Management1 Learning Objectives Distributed Scheduling Algorithms Coordinator Elections Orphan Processes.
Metaheuristics The idea: search the solution space directly. No math models, only a set of algorithmic steps, iterative method. Find a feasible solution.
Search Algorithms for Discrete Optimization Problems Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar Adapted for 3030 To accompany the text.
Review: Search problem formulation Initial state Actions Transition model Goal state (or goal test) Path cost What is the optimal solution? What is the.
Vilalta&Eick: Informed Search Informed Search and Exploration Search Strategies Heuristic Functions Local Search Algorithms Vilalta&Eick: Informed Search.
Dynamic Load Balancing Tree and Structured Computations CS433 Laxmikant Kale Spring 2001.
Load Balancing and Termination Detection Load balance : - statically before the execution of any processes - dynamic during the execution of the processes.
Designing and Evaluating Parallel Programs Anda Iamnitchi Federated Distributed Systems Fall 2006 Textbook (on line): Designing and Building Parallel Programs.
Parallel Search Algorithm
Chapter 3 Parallel Algorithm Design. Outline Task/channel model Task/channel model Algorithm design methodology Algorithm design methodology Case studies.
Distributed Verification of Multi-threaded C++ Programs Stefan Edelkamp joint work with Damian Sulewski and Shahid Jabbar.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l inference l all learning.
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l all learning algorithms,
Search Tamara Berg CS 560 Artificial Intelligence Many slides throughout the course adapted from Dan Klein, Stuart Russell, Andrew Moore, Svetlana Lazebnik,
CS 584. Load Balancing Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Search exploring the consequences of possible actions.
Searching and optimization.  Applications and techniques  Branch-and-bound search  Genetic algorithms  Successive refinement  Hill climbing.
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Lecture 3: Uninformed Search
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Uninformed search strategies A search strategy is defined by picking the order of node expansion Uninformed search strategies use only the information.
Parallel Graph Algorithms Sathish Vadhiyar. Graph Traversal  Graph search plays an important role in analyzing large data sets  Relationship between.
CS 420 Design of Algorithms Parallel Algorithm Design.
Dynamic Load Balancing Tree and Structured Computations.
Best-first search is a search algorithm which explores a graph by expanding the most promising node chosen according to a specified rule.
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dr. Xiao Qin Auburn University
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dynamic Mapping Dr. Xiao Qin Auburn University
Chapter 3 Solving problems by searching. Search We will consider the problem of designing goal-based agents in observable, deterministic, discrete, known.
Chapter 3.5 Heuristic Search. Learning Objectives Heuristic search strategies –Best-first search –A* algorithm Heuristic functions.
Lecture 3: Uninformed Search
Parallel Graph Algorithms
Uninformed Search Strategies
L21: Putting it together: Tree Search (Ch. 6)
CS 584.
Principles of Computing – UFCFA3-30-1
Search Exercise Search Tree? Solution (Breadth First Search)?
CS 584 Lecture7 Assignment -- Due Now! Paper Review is due next week.
Adaptivity and Dynamic Load Balancing
CMSC 471 Fall 2011 Class #4 Tue 9/13/11 Uninformed Search
Presentation transcript:

CS 584

Discrete Optimization Problems A discrete optimization problem can be expressed as (S, f) S is the set of all feasible solutions f is the cost function Goal: Find a feasible solution x opt such that f(x opt ) <= f(x) for all x in S

Discrete Optimization Problems Examples VLSI layout Robot motion planning Test pattern generation In most problems, S is very large S can be converted to a state-space graph and then can be reformulated to a search problem.

Discrete Optimization Problems NP-hard Why parallelize? Consider real-time problems robot motion planning speech understanding task scheduling Faster search through bigger search spaces.

Search Algorithms Depth First Search Breadth First Search Best First Search Branch and Bound Use cost to determine expansion Iterative Deepening A* Use cost + heuristic value to determine expansion

Parallel Depth First Search Critical issue is distribution of search space. Static partitioning of unstructured trees leads to poor load balancing.

Dynamic Load Balancing Consider sequential DFS

Parallel DFS Each processor performs DFS on a disjoint section of the tree. (Static load assignment) After the processor finishes, it requests unsearched portions of the tree from other processors. Unexplored sections are stored in the stack Pop off a section from the stack and give it to somebody else.

Parallel DFS Problems Splitting up the work How much work should you give to another processor? Determining a donor processor Who do you request more work from?

Work Splitting Strategies When splitting up a stack, consider Sending too little or too much increases work requests Ideally, rather than splitting the stack, you would split the search space. HARD Nodes high in tree --> big subtrees, & vice-versa

Work Splitting Strategies To avoid sending small amounts of work, nodes beyond a specified stack depth are not sent. Cut-off depth Strategies Send only nodes near bottom of stack Send nodes near cut-off depth Send 1/2 of nodes between bottom and cut-off

Load Balancing Schemes (Who do I request work from?) Asynchronous Round Robin each processor maintains target Ask from target then increment target Global Round Robin target is maintained by master node Random Polling randomly select a donor each processor has equal probability

Speedups of DFS

Best-First Search Heuristic is used to direct the search Maintains 2 lists Open  Nodes unsearched  Sorted by heuristic value Closed  Expanded nodes Memory requirement is linear in the size of the search space explored.

Parallel Best-First Search Concurrent processors pick the most promising node from the open list Newly generated nodes are placed back on the open list Centralized Strategy

Expand the node to generate successors Expand the node to generate successors Expand the node to generate successors at designated processor Global list maintained best node nodes Put expanded Get current Pick the best node from the list Place generated nodes in the list Pick the best node from the list Place generated nodes in the list Unlock the list Pick the best node from the list Place generated nodes in the list Unlock the list Lock the list

Centralized Best-First Search Termination condition A processor may find a solution but not the best solution. Modify the termination criteria (how?) Centralization leads to congestion Open list must be locked when accessed Extra work

Decentralizing Best-First Search Let each processor maintain its own open list Issues: Load balancing Termination (make sure it is the best)

Communication Strategies Random Periodically send some of the best nodes to a random processor Ring Periodically exchange best nodes with neighbors Blackboard Select best node from open list If l-value is OK then expand If l-value is BAD then get some from blackboard If l-value is GREAT then give some to blackboard

Ring Communication

Blackboard

What about searching a graph? Problem: node replication Possible solution: Assign each node to a processor Use hash function Whenever a node is generated, check to see if it already has been searched Costly

Speedup Anomalies Due to nature of the problem, speedup can vary greatly from one execution to the next. Two anomaly types: Acceleration Deceleration

Termination Detection Dijkstra's Token Termination Detection When idle, send idle token to next processor When idle token is received again, all done Tree-Based Termination Detection Associate a weight of 1 with initial work load Assign portions of the weight When finished give the weight portion back When processor 0 has weight of 1 --> all done.