Your browser does not fully support modern features. Please upgrade for a smoother experience.
Developing distributed multi-core and many-corearchitecture using java agents: History
Please note this is an old version of this entry, which may differ significantly from the current revision.
Contributor: Predrag Tekic

In this paper java agent architecture for utilizing available multi-core and many-core hardware is presented.Architecture is developed using JADE (Java Agent DEvelopment Framework) and OpenCL standard for programming multi-core and many-core devices. A JADE-based system can be distributed across available machine sand OpenCL promises portability of the developed code between heterogeneous devices. OpenCL is an open, royalty free, standard developed by Khronos group for parallel programming of heterogeneous devices (CPU’s, GPU’s, ... )from different vendors. Developed java agents communicate with each other in accordance with FIPA specification and are independent from operating system of the specific machine they run on. In this paper two java agents are presented. First agent inspects available hardware with OpenCL support and sends message to the second agent which runs simulation utilizing all the available devices with OpenCL support discovered by the first software agent.

  • JADE
  • OpenCL
  • multi-core
  • Java Agent
  • GPU

Recently, there has been a breakthrough in computer processor technology. Multi-core and many-core processors are replacing single core processors. Graphics Processing Units (GPUs) have an important role in today’s high performance computing applications. High performance computing was a privilege of small group of scientists with budget to fund expensive large computer clusters or specially manufactured High performance computers. Nowadays, with massively produced multi-core and many-core processors it is available to almost every commodity desktop/personal computer.

Large processing power potential of new multi-core and many-core processors (CPUs and GPUs) has attracted researchers and developers to start considering to utilize power of those new processors in solving their specific scientific problems.There are number of scientific fields which are profiting from this trend in computer hardware industry, among them is computational fluid dynamics (CFD). This field of science in recent years, is starting to make use of new and more powerful multi-core and many-core processors in order to solve more and more complex numerical simulations.

In this paper we have proposed software solution which will be able to automatically detect, and make use of any device available for large scientific calculations and therefore reduce time needed for specific scientific calculation. Proposed solution should create, at runtime, a cluster of hardware devices able to perform parallel numerical computations and execute specific task on all oft he available devices in that cluster.In the following pages we will explain software technology we have chosen for our software solution and the architecture of the proposed software solution


A. FIPA

The Foundation for Intelligent Physical Agents (FIPA)is an international organization helping to promote the industry of intelligent agents. FIPA is developing specifications supporting interoperability among agents and agent-based applications.FIPA Abstract Architecture includes: Distributed computing platforms or programming languages, Messaging platforms, Security services, Directory services, and, Intermittent connectivity technologies.Also FIPA Abstract Architecture defines the following concepts: A model of services and discovery of services available to agents and other services, Message transport interoperability, Supporting various forms of ACLrepresentations, Supporting various forms of content language,and, Supporting multiple directory services representations.FIPA abstract architecture specification describes how to make the agent system, agents and services that rely on the system, in Figure 1. Mapping FIPA-abstract architecture on the concrete realization is shown.


Agents living in one environment can communicate by sending messages to each other. Messages are encoded in an Agent-Communication-Language.Services provide support services for agents.

Services are generally implemented as software that is accessed via method invocation. Service root is provided to an agent on start-up, service root will provide a set of service-locators such as: message-transport-services,agent-directory-services and service-directory-services.Agent-directory-service provides a location where agents register their descriptions as agent-directory-entries.

Agent-directory-entry consists of at least two key-value-pairs Agent-name and Agent-locator. Agent-name is globally unique name and Agent-locator consists of one or more transport-descriptions. Each transport-descriptions contain transport-type, transport-specific-address and zero or more transport-specific-properties.Also agent-directory-entry may contain other descriptive attributes (services offered by the agent, cost of using the agent, restrictions on using the agent, etc.)Service-directory-service provides discovering of services and a location for registration of service-directory-entries. Service-directory-entry consisting of at least one key-value-pairs: Service-name, Service-type and Service-locator. Service-locator contains one or more key-value tuples that consists of a signature type, service signature and service address. Also service-directory-entry may contain other descriptive attributes (cost of using the service, restrictions on using the service, etc.)Agent message consists of sender name, receiver names and message content. Every message must have one sender and zero or more receivers. Message content can be determined by the ontologies, in Figure 2 message structure is shown
Before transport message is encoded into a payload and then included in a transport-message. Transport-message consists of payload and envelope. Envelope defines transport-description: sender address, receiver address, transport protocol, encoding-representation etc.In order to obtain the parameters needed to transport messages agent communicate with directory agent. The parameters that are needed are placed in the agent locator.Communication begins by a search of the directory service for the agents ( 1 : Query) . Based on the name of the destination agent, the starting agent from the directory agents obtains agent-directory-entry which contains allthe necessary parameters for communication ( Transport -type, Transport- specific -address , Transport- properties). The initial agent can send a message by the first type of transport (e.g. , HTTP protocol ) , and then change the type of transport ( e.g. SMTP protocol ) if the destination agent is able to communicate using both.FIPA specification supports two types of security mechanisms: message validation and encryption of the messages. Validation of the message includes the ability to detect changes of the messages that occurred after sending the message. If some of the protection mechanisms are applied in the description of the message(envelope) additional parameters must be placed. These additional parameters will allow the use of protective mechanisms.

B. JADE

JADE (Java Agent DEvelopment Framework) is free software Framework that is complied with the FIPA specifications and implemented in the Java language.JADE was initially developed by the University of Parma. Copyright holder and distributor for JADE software is Telecom Italia. JADE consists of run-time environment, a library of classes (used by programmers for developing agents) and graphical tools for administrating and monitoring the activity of running agents.Container is running instance of the JADE runtime environment, it can contain several agents. Platform contains several containers; one container in platform is special container called Main container. Main container is always active in a platform, all other containers register with it; it contains special agents AMS (Agent Management System) and DF (Directory Facilitator). The AMS (Agent Management System) provides the naming service and represents the authority in the platform. DF(Directory Facilitator) provides service for finding agents
JADE provides communication between agents by use of asynchronous message passing, The JADE asynchronous message passing paradigm is shown in Figure 3. For each agent JADE runtime posts messages sent by other agents in the agent message queue and notify agent that he got message. When the agent will process message is completely up to the programmer.

This entry is offline, you can click here to edit this entry!
Academic Video Service