Apparatus, method and system for aggregrating computing resources
First Claim
1. A method for accessing resources in a distributed computing system, the system comprising a plurality of servers, each server having a plurality of resources, each server having a plurality of threads, and each server detecting occasions on which a thread needs access to a resource residing on a different server, the method comprising the steps of:
- a. on a first said occasion, hopping the thread execution to the server where a needed resource is located;
b. on a second said occasion, reassigning the resource to the server on which the thread resides;
c. on a third said occasion, caching the resource to the server on which the thread resides.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for executing applications designed to run on a single SMP computer on an easily scalable network of computers, while providing each application with computing resources, including processing power, memory and others that exceed the resources available on any single computer. A server agent program, a grid switch apparatus and a grid controller apparatus are included. Methods for creating processes and resources, and for accessing resources transparently across multiple servers are also provided.
485 Citations
12 Claims
-
1. A method for accessing resources in a distributed computing system, the system comprising a plurality of servers, each server having a plurality of resources, each server having a plurality of threads, and each server detecting occasions on which a thread needs access to a resource residing on a different server, the method comprising the steps of:
-
a. on a first said occasion, hopping the thread execution to the server where a needed resource is located;
b. on a second said occasion, reassigning the resource to the server on which the thread resides;
c. on a third said occasion, caching the resource to the server on which the thread resides.
-
-
2. A method for choosing an access discipline for conducting an application in a distributed computing system, the method comprising the steps of:
-
a. the system defining a plurality of resource classes based on expected resource usage patterns;
b. the application communicating the resource class to the system for each resource.
-
-
3. A method for grouping resources in a distributed computing system, the system having a plurality of servers, each server having a plurality of resources, the system having an application that uses said resources, the method comprising the step of the application identifying a set of resources that are used together.
-
4. A method for achieving resource locality in a distributed computing system, the system having a plurality of servers, each server having a plurality of resources, each resource identified as belonging to a set, the method comprising the step of causing all resources belonging to the same set to reside on the same server.
-
5. A method for automatically assigning a plurality of resources in a distributed computing system to the same resource set, the method comprising the steps of:
-
a. collecting a first set of statistics about accesses to resources;
b. identifying a first plurality of resources that are closely coupled based on the first set of statistics;
c. assigning the first plurality of resources to a first resource set.
-
-
6. A method for automatically assigning a resource usage pattern class to a first resource set in a distributed computing system, the system having a plurality of servers, each server having a plurality of resources, each resource belonging to a resource set, the method comprising the steps of:
-
a. collecting a first set of access statistics about the first resource set;
b. determining a first resource usage class based on the first set of access statistics;
c. assigning the first resource usage class to the first resource set.
-
-
7. A method for maintaining locality of a resource in a distributed computing system, the system having a plurality of servers, each server having a plurality of resources, the method comprising the steps of:
-
a. assigning a first server as a home server for the first resource;
b. allowing the first resource to be reassigned to the second server in response to a first access to the first resource from a second server;
c. reassigning the first resource back to its home server in response to a second access to the first resource.
-
-
8. A method for balancing load in a distributed computing system, the system comprising a plurality of servers, each server having a plurality of resources, each resource belonging to a resource set, the method comprising the steps of:
-
a. observing the load of each server;
b. selecting a first resource set;
c. causing all resources belonging to the first resource set to be reassigned to a different server.
-
-
9. A method for balancing the execution load in a distributed computing system, the method comprising the step of reassigning memory resources from one server to another.
-
10. A grid switch apparatus for aggregating memory in a distributed computing system, the system having a plurality of servers, the grid switch communicating with the servers, the grid switch comprising:
-
a. an interface for receiving a first message from a first server in response to a first thread attempting to access a first memory;
b. a processing unit for determining a second server that contains the first memory;
c. an interface for forwarding the first message to the second server.
-
-
11. A grid switch apparatus for aggregating memory in a distributed computing system, the system having a plurality of servers, the grid switch communicating with the servers, the grid switch comprising:
-
a. an interface for receiving a first message from a first server in response to a first thread attempting to access a first memory;
b. a processing unit for determining a second server that contains the first memory;
c. an interface for sending a second message to the second server.
-
-
12. A distributed computing system comprising:
-
a. a plurality of servers, each server capable of sending messages in response to attempted resource access;
b. a grid switch apparatus for tracking resources and forwarding said messages;
c. an interconnect for transmitting messages between the servers and the grid switch.
-
Specification