Apparatus, method and system for aggregating computing resources
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-013/00
G06F-015/173
H04L-029/08
G06F-009/50
출원번호
US-0175597
(2014-02-07)
등록번호
US-9497264
(2016-11-15)
발명자
/ 주소
Miloushev, Vladimir
Nickolov, Peter
Hester, Becky L.
Marinov, Borislav
출원인 / 주소
CA, Inc.
대리인 / 주소
Baker Botts L.L.P.
인용정보
피인용 횟수 :
0인용 특허 :
36
초록▼
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
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.
대표청구항▼
1. A grid switch apparatus for aggregating memory in a distributed computing system, the distributed computing system having a plurality of servers, the grid switch apparatus communicating with the servers, the grid switch apparatus comprising: an interface configured to receive a first message from
1. A grid switch apparatus for aggregating memory in a distributed computing system, the distributed computing system having a plurality of servers, the grid switch apparatus communicating with the servers, the grid switch apparatus comprising: an interface configured to receive a first message from a first server in response to a first thread attempting to access a first memory;a processing unit configured to determine a second server that contains the first memory;an interface configured to send a second message to the second server; andwherein the grid switch apparatus is a multiprocessor computer comprising: a plurality of processors;at least one memory device;at least one input/output device;wherein the memory device stores a routing table comprising: a process identification for an aggregated process; anda server table comprising: a first server identification for the first server;a second server identification for the second server; anda total amount of memory respectively allocated on each of the first server and the second server for the aggregated process. 2. The grid switch apparatus of claim 1, wherein the routing table further comprises: a plurality of resource routing tables,wherein each resource routing table of the plurality of resource routing tables comprises a plurality of resource routing entries,wherein each resource routing entry of the plurality of resource routing entries represents to a respective unit of a respective resource allocated to the aggregated process, andwherein each resource routing entry of the plurality of resource routing entries comprises: an identifier for the respective unit of the respective resource that the routing entry represents;a server identification of a server on which the respective resource is currently allocated; anda local resource identification for the respective resource on the server on which the respective resource is currently allocated. 3. The grid switch apparatus of claim 2, wherein the plurality of resource routing tables comprises: a memory routing table that represents a memory resource;a synchronization object routing table; anda thread routing table,wherein the memory routing table comprises, for each page existing in a member process context, a plurality of page entries, the plurality of page entries comprising: a first page entry representing a first memory page at a first logical address; anda second page entry representing a second memory page at a second logical address,wherein the synchronization object routing table comprises a plurality of synchronization object entries, the plurality of synchronization object entries comprising: a first synchronization object entry representing a first semaphore with a first handle; anda second synchronization object entry representing a second semaphore with a second handle,wherein the thread routing table comprises a plurality of thread entries, the plurality of thread entries comprising: a first thread entry representing the first thread with a first handle, anda second thread entry representing a second thread with a second handle. 4. The grid switch apparatus of claim 3, wherein the memory routing table omits, for each of the plurality of page entries, dynamic state information identifying a respective physical memory page assigned to a respective logical page. 5. The grid switch apparatus of claim 3, wherein the synchronization object routing table omits, for each of the plurality of synchronization object entries, dynamic state information identifying a respective count valve of a respective semaphore. 6. The grid switch apparatus of claim 2, wherein the first message is an access request for the first thread to access a particular resource,wherein the processing unit is configured to: determine that the particular resource is represented by a particular identifier in a particular resource routing table of the plurality of resource routing tables;locate a particular resource routing entry in the particular resource routing table, the particular resource routing entry comprising: the particular identifier;the second server identification; andthe local resource identification for the particular resource on the second server; anddetermine that the particular resource is on the second server based on the particular resource routing entry, andwherein the second message comprises the local resource identification for the particular resource on the second server. 7. The grid switch apparatus of claim 2, wherein each resource routing entry of the plurality of resource routing entries omits information identifying a specific dynamic state of the respective resource. 8. The grid switch apparatus of claim 1 further comprising a memory, wherein the first message is an access request for the first thread to access a resource,wherein the memory device stores a resource routing table comprising a resource routing entry for the resource,wherein the resource routing entry comprises: a resource identifier representing the resource;a server identifier representing the second server; anda local resource identifier that locally identifies the resource on the second server;wherein the processing unit is configured to: determine that the resource is represented by the resource identifier based on the first message;locate the resource routing entry in the resource routing table; anddetermine that the resource is on the second server based on the server identifier in the resource routing entry, andwherein the second message comprises the local resource. 9. The grid switch apparatus of claim 1 further comprising: a high-performance peripheral interconnect; anda plurality of host adapters for a grid interconnect,wherein the grid interconnect is a network that provides communications and data transfer between the first server, the second server, and the grid switch apparatus. 10. A method for aggregating memory in a distributed computing system using a grid switch apparatus, the distributed computing system having a plurality of servers, the grid switch apparatus communicating with the servers, and the method comprising: receiving, via a receiving interface of the grid switch apparatus, a first message from a first server in response to a thread attempting to access a first memory;determining, via a processing unit of the grid switch apparatus, a second server that contains the first memory; andsending, via a sending interface of the grid switch apparatus, a second message to the second server;wherein the first message is an access request for the thread to access a resource,wherein the grid switch apparatus comprises a memory storing a resource routing table comprising a resource routing entry for the resource,wherein the resource routing entry comprises: a resource identifier representing the resource;a server identifier representing the second server; anda local resource identifier that locally identifies the resource on the second server;determining, via the processing unit, that the resource is represented by the resource identifier based on the first message;locating, via the processing unit, the resource routing entry in the resource routing table; anddetermining, via the processing unit, that the resource is on the second server based on the server identifier in the resource routing entry, andwherein the second message comprises the local resource. 11. The method of claim 10, wherein the grid switch apparatus comprises a memory storing a resource routing table, the resource routing table comprising: a process identification for an aggregated process; anda server table comprising: a first server identification for the first server;a second server identification for the second server; anda total amount of memory respectively allocated on each of the first server and the second server for the aggregated process;a plurality of resource routing tables,wherein each resource routing table of the plurality of resource routing tables comprises a plurality of resource routing entries,wherein each resource routing entry of the plurality of resource routing entries represents to a respective unit of a respective resource allocated to the aggregated process, andwherein each resource routing entry of the plurality of resource routing entries comprises: an identifier for the respective unit of the respective resource that the routing entry represents;a server identification of a server on which the respective resource is currently allocated; anda local resource identification for the respective resource on the server on which the respective resource is currently allocated. 12. The method of claim 11, wherein the plurality of resource routing tables comprises: a memory routing table that represents a memory resource;a synchronization object routing table; anda thread routing table,wherein the memory routing table comprises, for each page existing in a member process context, a plurality of page entries, the plurality of page entries comprising: a first page entry representing a first memory page at a first logical address; anda second page entry representing a second memory page at a second logical address,wherein the synchronization object routing table comprises a plurality of synchronization object entries, the plurality of synchronization object entries comprising: a first synchronization object entry representing a first semaphore with a first handle; anda second synchronization object entry representing a second semaphore with a second handle,wherein the thread routing table comprises a plurality of thread entries, the plurality of thread entries comprising: a first thread entry representing the first thread with a first handle, anda second thread entry representing a second thread with a second handle. 13. The method of claim 11, wherein the first message is an access request for the first thread to access a particular resource,wherein the method further comprises: determining, via the processing unit, that the particular resource is represented by a particular identifier in a particular resource routing table of the plurality of resource routing tables;locating, via the processing unit, a particular resource routing entry in the particular resource routing table, the particular resource routing entry comprising: the particular identifier;the second server identification; andthe local resource identification for the particular resource on the second server; anddetermining, via the processing unit, that the particular resource is on the second server based on the particular resource routing entry, andwherein the second message comprises the local resource identification for the particular resource on the second server. 14. Non-transitory computer-readable media storing computer-readable instructions for aggregating memory in a distributed computing system via a grid switch apparatus, the system having a plurality of servers, the grid switch apparatus communicating with the servers, and the computer-readable instructions, when executed by the grid switch apparatus, instructing the grid switch apparatus to perform processes comprising: receiving, via a receiving interface of the grid switch apparatus, a first message from a first server in response to a thread attempting to access a first memory;determining, via a processing unit of the grid switch apparatus, a second server that contains the first memory; sending, via a sending interface of the grid switch apparatus, a second message to the second server;wherein the first message is an access request for the thread to access a resource,wherein the grid switch apparatus comprises a memory storing a resource routing table comprising a resource routing entry for the resource,wherein the resource routing entry comprises: a resource identifier representing the resource;a server identifier representing the second server; anda local resource identifier that locally identifies the resource on the second server;determining, via the processing unit, that the resource is represented by the resource identifier based on the first message;locating, via the processing unit, the resource routing entry in the resource routing table; anddetermining, via the processing unit, that the resource is on the second server based on the server identifier in the resource routing entry, and wherein the second message comprises the local resource.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (36)
Gilbert, Matthew M.; Boom, Douglas D., Apparatus and method for dynamic resource allocation in a network environment.
Chen Steve S. (Chippewa Falls) Simmons Frederick J. (Neillsville) Spix George A. (Eau Claire) Wilson Jimmie R. (Eau Claire) Miller Edward C. (Eau Claire) Eckert Roger E. (Eau Claire) Beard Douglas R., Cluster architecture for a highly parallel scalar/vector multiprocessor system.
Sudo Yoshiaki (Chigasaki JPX), Load distribution method and system for distributed threaded task operation in network information processing apparatuse.
Van Der Sanden, Edwin Wilhehmus Petrus Cornelus; Valtchev, Plamen Ivanov; Stewart, Donald MacLeod, Method and apparatus for composite user interface generation.
Spalink, Jan-Dieter; Gullette, Brian R. D.; Hatchell, Andrew; Nortman, Randall C.; Babyak, Kevin; Babyak, Michael, Method and system for classifying information available on a computer network.
Chrysos, George Z.; Dean, Jeffrey A.; Hicks, Jr., James E.; Waldspurger, Carl A.; Weihl, William E., Method for scheduling threads in a multithreaded processor.
Overby ; Jr. Linwood Hugh ; Rajaraman Balachandar, Methods, systems and computer program products for preemptive avoidance of constraints for shared resources.
Kimmel Jeffrey S. ; Alfieri Robert A. ; de Forest Miles A. ; McGrath William K. ; McLeod Michael J. ; O'Connell Mark A. ; Simpson Guy A., Operating system for a non-uniform memory access multiprocessor system.
Glider Joseph S. (Palo Alto CA) Jaffe David H. (Belmont CA), Resource management in a multiple resource system where each resource includes an availability state stored in a memory.
VanHuben Gary Alan ; Blake Michael A. ; Mak Pak-kin, SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum.
Ryan Jeffrey M. ; Brobst Curtis H. ; Chou Chih-Hsiang, System for distributing a plurality of threads associated with a process initiating by one data processing station among data processing stations.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.