Usually, such environments have five different components: clients that submit problems to servers, servers that solve problems sent by clients, a database that contains informations about software and hardware resources, a scheduler that chooses an appropriate server depending of the problem sent and the informations contained in the database, and finally monitors that get informations about the status of the computational resources. In DIET, a server is built upon a Server Daemon (SeD). We have a hierarchical set of agents including Leader Agents (LA) and Master Agents (MA). Now we detail the basic functionalities of these different components.
A client is an application which uses DIET to solve problems. Many kinds of clients should be able to connect to DIET from a web page, a PSE such as Matlab or Scilab, or from a compiled program.
- Master Agent (MA)
An MA receives computation requests from clients. These requests refer to some DIET problems listed on a reference web page. Then the MA collects computation abilities from the servers and chooses the best one. The reference of the chosen server is returned to the client. A client can be connected to an MA by a specific name server or a web page which stores the various MA locations.
- Local Agent (LA)
An LA aims at transmitting requests and information between MAs and servers. The information stored on an LA is the list of requests and, for each of its subtrees, the number of servers that can solve a given problem and information about the data distributed in this subtree. Depending on the underlying network topology, a hierarchy of LAs may be deployed between an MA and the servers. No scheduling decision is made by an LA.
- Server Daemon (SeD)
A SeD is the point of entry of a computational server. It manages a processor or a cluster. The informations stored on a SeD are the list of the data available on a server (eventually with their distribution and the way to access them), the list of problems than can be solved on it, and every informations concerning its load (CPU capacity, available memory, etc.).