UWB and UW Seal Distributed Systems Laboratory
(DSL)
Computing and Software Systems       University of Washington, Bothell   
Faculty:
Munehiro Fukuda
CSS499 Undergraduate Research
Overview and Prerequisites
Students
Research Topics:
AgentTeamwork
M++
Resources:
Publications
AgentTeamwork (Int'l Journal of Applied Intelligence)
M++ Manual
Undergrad. Assistants Recruitment
Related Courses:
CSS430: Operating Systems
CSS432: Network Design
CSS434: Parallel & Distributed Computing

Mission Statement:

The Distributed Systems Laboratory (DSL) has been devoted to research, development, and practical use of mobile agents. These agents are programs that can carry their live data with them and autonomously migrate over network. To execute mobile agents, each computing node runs a mobile-agent execution engine that receives agents from other nodes, schedules their execution, and transfers them to their next destination.

We have developed two execution engines. One is UWAgents: java-based mobile agents and the other is M++: self-migrating threads. The former implements agents as Java threads and allows them to orchestrate the remote execution of user jobs in a grid computing environment. The latter implements agents as C++ native threads and intends to have them represent numerous simulation entities in multiagent applications.

Related to M++ and UWAgents, our current focus includes the following two topics:

  1. AgentTeamwork: (funded by NSF SCI #0438193, Jan 05 - Dec 07)
    This is a mobile-agent-based middleware that benefits remote computer users who hope to mutually offer their desktop computing resource to Internet group members while their computer is left unattended. Key to this grid is the use of mobile agents. Each agent represents a client user, carries his/her job request, searches for resources available for the request, executes the job at suitable computers, and migrates it to others when the current one has become unavailable for use. All the features of job migration will be encapsulated in a user program wrapper that is implemented on a Java layer between a mobile agent and the corresponding user program. The wrapper maintains all execution state of the user program, is carried by the mobile agent upon a job migration, and restores its user program at a destination. For this purpose, a user program must be preprocessed with ANTLR to include check-pointing functions before its execution. These functions periodically save the execution state of a user program into its corresponding program wrapper that can be thus smoothly carried by an agent.

  2. M++ Applications: (previously funded by JSPS #11780187)
    M++ self-migrating threads are C++ compiled objects, capable of constructing computational networks and autonomously migrating themselves over a cluster system. The main goal of M++ is to provide a cluster computing paradigm for multi-agent simulation that has gained popularity in the areas of artificial life ecological simulations, and biological modeling. This type of simulation usually requires autonomous objects, each having its own goals and behaviors, to interact with each other in a synthetic world. The M++ self-migrating threads match the characteristics of such objects in multi-agent simulations, and can thus describe them with a narrow semantics gap. Fine granularity and large scalability are two fundamental characteristics of this type of simulations that require fast thread context switch and migration. With the scheduling policy we have designed, M++ manages its threads in pin-downed pages, so that Myrinet's network interface card can directly access and transfer those threads without unnecessary coping operations. We have completed the M++ system, and have programmed applications with M++ such as ant farm, growing neural network, and remote planet exploration.

Facilities:

The DSL has dedicated laboratory space within the UW Bothell Computing & Software Systems (CSS) Program's 11550 square-foot Center for Integrated Teaching, Learning, and Scholarship (CITLS, http://depts.washington.edu/csscts/). The DSL includes two Linux cluster systems: (1) a Myrinet-2000 cluster of eight DELL machines, each with 2.8GHz Pentium-4 CPU and 512MB memory, and (2) a Giga Ethernet cluster of 24 DELL computing nodes, each with 3.2GHz Pentium-4 CPU and 512MB memory. Both the clusters are connected to a dual-processor NFS server.

All computers within the CITLS are connected to gigabit Ethernet within the laboratory and via 100Mbps Ethernet to the UWB campus backbone and the Internet.

Contact:

Mail:
Munehiro Fukuda, Ph.D.
University of Washington, Bothell
Computing and Software Systems, Box 358534
18115 Campus Way N.E.
Bothell, WA 98011-8246

E-mail address: mfukuda@u.washington.edu
Ph: +1-425-352-3459,   Fax: +1-425-352-5216