The Loman Project
CPSC 410Operating Systems
Martin PressChristopher Hewitt
What is the Loman Project?
Addresses the classic computer science ”Traveling Salesman” problem
NPcomplete problems such as ”Traveling Salesman” pose challenges for computation
The Loman Project finds solutions in a distributed manor through utilizing multiple processors, cores, or cluster nodes
Why the Loman Project?
Challenging project requiring solutions to both hardware and software problems
Demonstrates a large variety of operating system principles
First complete test application for the ACMIEEE Segfault Cluster
The Loman Platform
The Loman Project was designed for the Segfault Cluster in the Hunter Creech Lab
Code can also run on other platforms due to portable design: Java graphical user interface C computational backend OpenMPI libraries provide multiprocess
communication support
Meet Segfault
Segfault is a Beowolf Cluster running in the Hunter Creech Computer Lab
An ACMIEEE student project Cluster consists of a head node and many
worker nodes on a private network Code written using OpenMPI libraries can be
executed in parallel on each cluster node
Segfault Cluster
Head node gomez provides worker services: Dynamic Host Configuration Protocol (DHCP) Domain Name Service (DNS) Lightweight Directory Access Protocol (LDAP) Network File System (NFS) Sun Grid Engine (SGE)
Worker nodes perform computationally intensive tasks scheduled by head node
Segfault Cluster
User account information and home directory data is shared across the private cluster network
Tasks can be scheduled through the head node using the Sun Grid Engine
Processes on each node can communicate with each other using OpenMPI function calls
Segfault Cluster
Sun Microsystems 64bit SPARC Solaris 10 Nodes
Problem Approach
Simulated annealing A useful way to approach NPcomplete problems Mimics annealing process in metallurgy Probabilistic algorithm Utilizes a “cooling schedule” with varying
temperatures Inefficient routes are probabilistically tested to
advance search for better solutions
Simulated Annealing
Mathematically, probability in simulated annealing is best described as:
P = e (C1 – C2) / T
P: Probability of accepting new change in route. C
1: New route. C
2: Old route.
T: Temperature of simulation. e: Base of the natural logarithm.
System Design Layout
Computational Backend(Worker Nodes)
Java Execution GUI(Head Node)
Spawned OpenMPIController
ConfigurationFile
Output ResultsFile
Nodal Communication
OpenMPI A robust and open source library for C, C++, and
Fortran A full implementation of MPI2 specifications Nodes pass messages between each other Used for computational fluid dynamics,
particle physics, and simulations in other computationallyintensive fields
Graphical Java Client
Created in a modular fashion to promote encapsulation and cohesion of objects managed by the interface
Heart of user interaction All necessities for creation and execution of the
simulation process User can provide a number of towns, simulation
duration, and other options
Graphical Java Client Preview
Computational C Backend
Creates master and slave processes based on CPU ID
Master process reads input data and sends to slave processes for computation
Master process also collects data over iterations and sends termination messages to slave processes
Slave processes compute a solution each iteration.
Computational C Backend Preview
Operating System Principles
Multithreading For a more responsive user interface
Job Scheduling To prevent cluster load imbalances
Interprocess communication Head node contacts workers to start and halt
File Management File consistency between GUI and backend
Operating System Principles
Multithreading implemented using Java's Runnable interface
Semaphores controlled through MPI send and receive functions
Job scheduling through the Sun Grid Engine File management implemented through Java's
File object and C's stdio library
References
1. "FAQ: General Information." OpenMPI. Rtv. September 15, 2008.http://www.openmpi.org/faq/?category=general
2. Luke, B. (n.d) “Metropolis Monte Carlo Simulation.” Rtv. September 15, 2008.http://fconyx.ncifcrf.gov/~lukeb/metro01.html
3. Nouraniy Y. and Andresenz B.. (1998). “A comparison of simulated annealing cooling strategies.” Rtv. September 15, 2008.http://www.iop.org/EJ/article/03054470/31/41/011/a84109.pdf?requestid=5cfd7756597a4c8a98fac3ff22808c13
4. “System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).” Sun Microsystems. Rtv September 15, 2008.http://dlc.sun.com/pdf/8164556/8164556.pdf
5. "The Problem." The Traveling Salesman Problem. http://www.tsp.gatech.edu/problem/index.html
6. A load of other Sun Microsystems Solaris documentation!7. Google, of course!
The Loman Project
The Distributed Traveling SalesmanUtilizing Simulated Annealing Schedules