BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
FIG. 1 shows an exemplary practical configuration of multiple nodes;
FIG. 2 shows an exemplary hardware configuration of a node;
FIG. 3 shows an exemplary configuration of a network of nodes on a three-dimensional torus;
FIG. 4 is an example of communications among four nodes;
FIG. 5 is a flowchart of an agent management program; and
FIG. 6 is a diagram illustrating agents in a virtual environment.
DETAILED DESCRIPTION OF THE INVENTION
A preferred embodiment for implementing the present invention will be described in detail with reference to the accompanying drawings. A node of the present invention typically includes two chips and one memory as illustrated at 110 in FIG. 2. One chip includes one central processing unit and two floating-point units. The memory is connected to two chips. The two chips act as follows. One of chips is responsible for performing computation and the other performs communications in some cases and both perform computations in other cases. An exemplary practical configuration of multiple nodes is shown in FIG. 1. A Compute Card in FIG. 1 represents a node in the present invention. Sixteen Compute Cards make up a Node Card, 32 Node Cards make up a Rack, and 64 Racks make up a multinode computer 120. These nodes are interconnected through a fast network to form a network on a three-dimensional torus as illustrated in FIG. 3. A node 310 corresponds to a Compute Card in FIG. 1. Information about distances between nodes on the three-dimensional torus is not used in the present invention.
An agent is an object component running on the node and can transfer from the node to another node. FIG. 6 shows an overview of a simulation that uses multiple agents. A virtual environment 600 is built on a multinode computer 12. Multiple nodes and a large number of agents together perform a simulation of a complicated physical or economic phenomenon. An agent 610 includes an internal model that represents variables and data and a section (function) that determines the internal model. The agent acts in accordance with the result of the determination. The acts include computation, storage, message transmission and reception. Messages are sent to and received from other agents 620, 630.
In a method according to the present invention, each agent records which agent (node) the agent communicated with and how much. Based on the information, a predetermined number of agents are exchanged among all nodes. FIG. 4 shows an example of communications among four nodes. A node 410 communicates with the other nodes. Communications between nodes include communications between an agent and a node. Huge volumes of traffic will be generated between several million agents and nodes. Reduction of the traffic between agents and nodes leads directly to reduction in traffic among the nodes.
A program that manages transfer of such a large amount of agents runs on each node and transfers appropriate agents to another node. The management program uses a smaller amount of resources than that used by the large number of agents, is simple, and operates fast, and therefore its impact on the overall system performance is small. Processes of the management program may be implemented by dedicated hardware.
FIG. 5 shows a flowchart of the agent management program. At step 510, the volumes of traffic between each agent and nodes are stored. At step 520, a node M to which the agent is to be transferred is determined. Then, at step 530, the agent is added to a list of candidate agents to be transferred to the node M. Finally, at step 540, a predetermined number of higher-order agents on the agent list are sent to the node M. The process is performed on each node. It should be noted that the node M to which agents are transferred is not a particular node; agents can be transferred to any of the nodes.
The flow of the process will be described in detail. A set of agents is denoted by A, a set of nodes is denoted by C, a set of agents that belong to node k∈C is denoted by Bk⊂A, and the amount of data transmitted between agents i and i′∈A is denoted by T(i, i′).
At step 510, the amount of data transmitted S between each agent on a given node k and an agent that belongs to each node is obtained and stored on the node k.
At step 520, the amount of data transmitted that will be reduced if the agent i is transferred to node k′∈C is obtained as follows.
ΔR(i,Bk,Bk′)=S(i,bk)−S(i,bk′)
Node kmax that maximize ΔR(i, Bk′, Bk) is obtained.
At step 530, the agent i is added to a set of candidate agents to be transferred to node kmax:
Bpoolk→kmax⊂A [Formula 3]
At step 540, a set of predetermined number of agents, Bk→k′, is selected from Bpoolk→k′ for each node k′∈C in descending order of value ΔR(i, Bk, Bk′) and sent to node k′ (corresponding to node M in the flowchart).
By performing the process on every node at regular time intervals, agents can be reallocated to appropriate nodes. As can be seen from the flowchart described above, each node stores only the volumes of traffic generated by agents that belong to the node and checks only the agents that belongs to the node to select agents to exchange. Therefore, the method according to the present invention does not require complicated negotiations between nodes and operates fast with a remarkably small amount of computation.