
Distributed Software Development
More Problem Solving
Chris Brooks
Department of Computer Science
University of San Francisco
Departmentof Computer Science — University of San Francisco – p. 1/??
Distributed Problem Solving
•Last week, we talked about loosely coupled
distributed problems
•Primarily distributed search
•A large data set is divided across clients.
•Clients interact only with a central server; no
client-client communication
Departmentof Computer Science — University of San Francisco – p. 2/??
“Medium-coupled” problems
•In medium-coupled problems, each node can do a
substantial amount of computing on its own
•A final solution will require communication between
nodes.
•Actions taken by one node can affect other nodes.
Departmentof Computer Science — University of San Francisco
Example: scheduling classes
•Before the semester starts, Benson sends every
teacher an email: When and where do you want your
classes?
•Each professor has their own constraints, and can
come up with choices locally:
•Brooks: no classes before 10 am, in Kudlick
•Wolber: No classes on Friday
•Galles: Mornings, nothing on Lone Mountain.
•Brooks is able to eliminate some possible schedules
without consulting with anyone else.
Departmentof Computer Science — University of San Francisco – p. 4/??
Example: scheduling classes
•Some choices require communication with a center
(Benson)
•Only one class in Kudlick at a time.
•Some classes may be constrained by other
departments’ choices
•CS 110 and Calculus I should be at different
times.
•Nodes start with a large set of constraints; some are
eliminated by the center.
•Hopefully at least one viable schedule remains.
•If not, someone is “encouraged” to relax their
constraints.
Departmentof Computer Science — University of San Francisco – p. 5/??
Constraint Satisfaction
•A constraint satisfaction problem is one of assigning
values to variables so as to satisfy a set of
constraints.
•Typically, any solution that satisfies the constraints is
equally acceptable.
•Toy problems:
•N-queens
•map coloring
•Real problems:
•Scheduling CS classes
•Building a car
•Register allocation
Departmentof Computer Science — University of San Francisco