IP Library Granted Patent US 8,301,847
Granted Patent B2
US 8,301,847 · App. 13/032,361 · Granted Oct 30, 2012

Managing concurrent accesses to a cache

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,301,847
App. No.
13/032,361
Granted
Oct 30, 2012
Kind
B2
Abstract

Various embodiments of the present invention manage concurrent accesses to a resource in a parallel computing environment. A plurality of locks is assigned to manage concurrent access to a plurality of parts of a resource. A usage of at least one of the plurality of parts of the resource is monitored. The assignment of the plurality of locks to the plurality of parts of the resource is modified based on the usage that has been monitored.

Claims (63)

1. A method for managing concurrent accesses to a resource in a parallel computing environment, the method comprising:

assigning a plurality of locks to manage concurrent access to a plurality of parts of a resource;

monitoring a usage of at least one of the plurality of parts of the resource; and

modifying the assignment of the plurality of locks to the plurality of parts of the resource based on the usage that has been monitored.

2. The method of claim 1 , wherein the resource comprises a data structure.

3. The method of claim 1 , wherein the resource comprises a hash table.

4. The method of claim 1 , wherein modifying the assignment of the plurality of locks balances a load among the plurality of parts of the resource.

5. The method of claim 1 , wherein monitoring the usage further comprises:

determining a number of requests sent to at least one part of the plurality of parts of the resource.

6. The method of claim 1 , further comprising:

determining that a difference between a number of requests sent to a first set of parts assigned to a first lock and a number of requests sent to a second set of parts assigned to a second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

7. The method of claim 1 , wherein monitoring the usage further comprises:

determining an amount of time that at least one part in the plurality of parts is accessed.

8. The method of claim 7 , further comprising:

determining that a difference between a percentage of time that a first lock assigned to a first set of parts and a second lock assigned to a second set of parts are expected to be held exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

9. The method of claim 1 , further comprising:

determining an expected lock hold time for a first lock assigned to a first set of parts;

determining an expected lock hold time for a second lock assigned to a second set of parts;

determining that a difference between the expected lock hold time for the first lock and the expected lock hold time for the second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

10. A system for managing concurrent accesses to a resource in a parallel computing environment, the system comprising:

a processor;

a memory communicatively coupled to the processor; and

an intelligent memory manager communicatively coupled to the processor and the memory, the intelligent memory manager configured for performing a method comprising:

assigning a plurality of locks to manage concurrent access to a plurality of parts of a resource;

monitoring a usage of at least one of the plurality of parts of the resource; and

modifying the assignment of the plurality of locks to the plurality of parts of the resource based on the usage that has been monitored.

11. The system of claim 10 , wherein the method further comprises:

determining that a difference between a number of requests sent to a first set of parts assigned to a first lock and a number of requests sent to a second set of parts assigned to a second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

12. The system of claim 10 , wherein monitoring the usage further comprises:

determining an amount of time that at least one part in the plurality of parts is accessed.

13. The system of claim 12 , wherein the method further comprises:

determining that a difference between a percentage of time that a first lock assigned to a first set of parts and a second lock assigned to a second set of parts are expected to be held exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

14. The system of claim 10 , wherein the method further comprises:

determining an expected lock hold time for a first lock assigned to a first set of parts;

determining an expected lock hold time for a second lock assigned to a second set of parts;

determining that a difference between the expected lock hold time for the first lock and the expected lock hold time for the second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

15. A computer program product for managing concurrent accesses to a resource in a parallel computing environment, the computer program product comprising:

a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

assigning a plurality of locks to manage concurrent access to a plurality of parts of a resource;

monitoring a usage of at least one of the plurality of parts of the resource; and

modifying the assignment of the plurality of locks to the plurality of parts of the resource based on the usage that has been monitored.

16. The computer program product of claim 15 , wherein modifying the assignment of the plurality of locks balances a load among the plurality of parts of the resource.

17. The computer program product of claim 15 , wherein monitoring the usage further comprises:

determining a number of requests sent to at least one part of the plurality of parts of the resource.

18. The computer program product of claim 15 , wherein the method further comprises:

determining that a difference between a number of requests sent to a first set of parts assigned to a first lock and a number of requests sent to a second set of parts assigned to a second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

19. The computer program product of claim 15 , wherein monitoring the usage further comprises:

determining an amount of time that at least one part in the plurality of parts is accessed.

20. The computer program product of claim 19 , wherein the method further comprises:

determining that a difference between a percentage of time that a first lock assigned to a first set of parts and a second lock assigned to a second set of parts are expected to be held exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

21. The computer program product of claim 15 , wherein the method further comprises:

determining an expected lock hold time for a first lock assigned to a first set of parts;

determining an expected lock hold time for a second lock assigned to a second set of parts;

determining that a difference between the expected lock hold time for the first lock and the expected lock hold time for the second lock exceeds a threshold; and

assigning at least one part in the first set of parts to the second lock in response to the difference exceeding the threshold.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: GLOBALFOUNDRIES US INC.
To: MEDIATEK INC.
Reel/Frame 055173/0781 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →