Information Technology Reference
In-Depth Information
MPI Implementation of the Multi-Agent System
Message passing interface (MPI) is the technology used in this project to simulate the environment
that an Agent system would be operated in. Traditionally, MPI is the foundation for distributed parallel
communications between running processes on the same machine or on different machines. MPI is
primarily used to build applications for problem solving on datasets that would require large amounts
of time to calculate using a single a process. However, the versatility of MPI has enabled this technol-
ogy to be used for this project.
The role of MPI for this project is to facilitate the communication mechanism between the agents.
A request sent to the system is packaged into an MPI data structure and sent to the correct information
agent using the MPI_Send and MPI_Recv commands. This communication behavior is common for
all of the agents.
The way MPI handles IO also corresponds to the structure of the Agent System developed for this
project. MPI allows for a primary IO source that divides the workload and initiate communication with
the other process. In the case of this project, the Master Control Client corresponds to this IO source
for MPI, thus all job requests originate from the Master Control Client.
The one limitation presented to this project from MPI is the inability for MPI to spawn or create
processes. As described earlier, the control agents control the creation and deletion of agents. With the
inability to create a new Agent process, a flag was added to each Agent to indicate whether or not an
agent existed. In this case that the agent was created, a command was sent to create the agent, thus
emulating the procedure required to create a new Agent. Due to the inability to create a new Agent pro-
cess, the Control Agents have now way maintaining a one-to-many relationship with the corresponding
information agents. Instead the MPI limitation keeps the ratio as a one to one relationship.
The E-Learning Agent system was developed exclusively using the C++ programming language. In
order to maintain compatibility with MPI, all of the agents are derived from a single program execut-
able. Each Agent's job function is determined by the process ID provided to each process by the MPI
Figure 3. Flowchart of agent startup
Agent Startup
MPI Startup
Get Process ID
Process ID = 0
Process ID % =
ProcessID % = 0
Master Control Agent
Control Agent
ProcessID / =
Maintenance Agent
ProcessID / =
Notification and
Recommendation Agent
ProcessID / =
Student Info Agent
Search WWH ::




Custom Search