|
The Marmot Multi-Agent Library
Welcome to our Homepage
|
[Home] -
[Manual] -
[Let's go] -
[Links]
What is the Marmot Multi-Agent Library?
Introduction:
The history of the Marmot Multi-Agent Library started with a
project
about agent-based, automatic parallelization of
image analysis tasks. As basis for this project a multi-agent system
was implemented as a C library. At this an important design feature was to
allow the re-usage of the agent code for other applications. Thus a library
of several C functions and data types was developed
that provides the basic functionality of a multi-agent system:
- starting/stopping agents as threads of the main C process,
- basic functions for managing the agent's
knowledge base,
(initialize/load the knowledge base,
update/delete information,
give free/store the knowledge base),
- sending/receiving messages for inter-agent communication,
- management of a central blackboard for finding (idle) agents to
delegate jobs.
Limitations:
Basically the library is very flexible as it is written in architecture
independent C code without making use of specific libraries, e.g. for
communication. The only exception is the need of a thread/mutex
variable package, as the agents work as threads and use mutex variables
to synchronize accesses to common lists and memory blocks. The library
uses an interface layer to encapsulate calls of thread/mutex functions.
This interface provides some fundamental functions for
allocating/giving free mutex variables and thread handles,
for locking/unlocking mutex variables and for
creating/joining/detaching threads.
The interface makes use of thread/mutex functions of the operating system,
i.e.,
- DCE thread/mutex functions on
HP-UX 11.xx architectures,
- Posix thread/mutex functions on SGI Irix and
SUN Solaris architectures.
You may decide to use another thread/mutex package without
large effort by adapting the thread/mutex interface of the
Marmot Multi-Agent Library
(here is a
description on how to do this).
Another limitation is that the agents only can work in
shared memory systems! Agents work as threads of the
main process and communicate via shared memory. Thus a
multiprocessor system with global shared memory is the
best choice of hardware for the Marmot Multi-Agent Library.
Current Version of the Marmot Multi-Agent Library
Version 0.90 (since 1998-09-23).
See here for changes from version
0.80 to version 0.90 and for bugs of version 0.80.
Remark: At the moment, there is no further development of the
library.
Overview
Features of the Marmot Multi-Agent Library:
- The library is completely programmed in C.
- It may be compiled nearly on any platform that supports
multithreading and provides mutex variables for
synchronization. Thus it allows
easy porting to new
architectures.
- It is designed for systems with
shared, global memory.
- It may be easily adapted to new applications.
- Actually, it can be used (without modification/extension) on the
following platforms:
- HP-UX 11.xx (Hewlett-Packard)
- SGI Irix (Silicon Graphics)
- SUN Solaris (Sun)
The Manual
|
Here you can find the
online documentation of the
Marmot Multi-Agent Library.
|
Further Information - Links
|
Links to related projects,
WWW-sites and papers.
|
[Home] -
[Manual] -
[Let's go] -
[Links]
Maximilian Lückenhaus, 2000-02-11