IP Library Granted Patent US 9,176,669
Granted Patent B2
US 9,176,669 · App. 13/833,956 · Granted Nov 3, 2015

Address resource mapping in a shared memory computer system

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 9,176,669
App. No.
13/833,956
Granted
Nov 3, 2015
Kind
B2
Abstract

An algorithm for mapping memory and a method for using a high performance computing (“HPC”) system are disclosed. The algorithm takes into account the number of physical nodes in the HPC system, and the amount of memory in each node. Some of the nodes in the HPC system also include input/output (“I/O”) devices like graphics cards and non-volatile storage interfaces that have on-board memory; the algorithm also accounts for the number of such nodes and the amount of I/O memory they each contain. The algorithm maximizes certain parameters in priority order, including the number of mapped nodes, the number of mapped I/O nodes, the amount of mapped I/O memory, and the total amount of mapped memory.

Claims (25)

1. A computer system having hardware-based non-uniform memory access, the computer system comprising a plurality of nodes, each node having a volatile memory and at least one computing processor, each computing processor being capable of addressing a maximum amount of volatile memory that is less than the collective amount of volatile memory in the plurality of nodes, wherein at least one node also includes an I/O device having I/O memory, each node being configured to calculate a memory layout that includes a portion of the volatile memory of each of a plurality of nodes in the computer system, the memory layout being calculated to minimize an amount of unmapped memory as a function of 1) the number of nodes in the computer system, 2) the amount of volatile memory in each node, 3) the number of nodes that include an I/O device having I/O memory, and 4) the amount of I/O memory in each such I/O device, wherein the computing processor of each node is further configured to access the memory of another node using the calculated memory layout.

2. The computer system of claim 1 , wherein the maximum amount of volatile memory is at least 16 terabytes.

3. The computer system of claim 1 , wherein the I/O device includes a network card, a graphics card, a non-volatile storage device, a coprocessor, or an accelerator card.

4. The computer system of claim 1 , wherein calculating the memory layout comprises minimizing the number of unmapped nodes.

5. The computer system of claim 4 , wherein calculating the memory layout further comprises minimizing the number of unmapped nodes that include an I/O device after minimizing the number of unmapped nodes.

6. The computer system of claim 5 , wherein calculating the memory layout further comprises maximizing the amount of mapped I/O memory after minimizing the number of unmapped nodes that include an I/O device.

7. The computer system of claim 6 , wherein calculating the memory layout further comprises maximizing the amount of mapped volatile memory after maximizing the amount of mapped I/O memory.

8. A method of operating a computer system having hardware-based non-uniform memory access, the computer system having a plurality of nodes, each node having a volatile memory and at least one computing processor, each computing processor being capable of addressing a maximum amount of volatile memory that is less than the collective amount of volatile memory in the plurality of nodes, wherein at least one node also includes an I/O device having I/O memory, the method comprising:

in each node of the computer system, calculating a memory layout that includes a portion of the volatile memory of each of a plurality of nodes in the computer system, the memory layout being calculated to minimize an amount of unmapped memory as a function of 1) the number of nodes in the computer system, 2) the amount of volatile memory in each node, 3) the number of nodes that include an I/O device having I/O memory, and 4) the amount of I/O memory in each such I/O device; and

accessing, by a computing processor in a first node of the computer system, the memory of a second node of the computer system using the calculated memory layout.

9. The method of claim 8 , wherein the maximum amount of volatile memory is at least 16 terabytes.

10. The method of claim 8 , wherein the I/O device includes a network card, a graphics card, a non-volatile storage device, a coprocessor, or an accelerator card.

11. The method of claim 8 , wherein calculating the memory layout comprises minimizing the number of unmapped nodes.

12. The method of claim 10 , wherein calculating the memory layout further comprises minimizing the number of unmapped nodes that include an I/O device after minimizing the number of unmapped nodes.

13. The method of claim 12 , wherein calculating the memory layout further comprises maximizing the amount of mapped I/O memory after minimizing the number of unmapped nodes that include an I/O device.

14. The method of claim 13 , wherein calculating the memory layout further comprises maximizing the amount of mapped volatile memory after maximizing the amount of mapped I/O memory.

15. A computer program product for operating a computer system having hardware-based non-uniform memory access, the computer system having a plurality of nodes, each node having a volatile memory and at least one computing processor, each computing processor being capable of addressing a maximum amount of volatile memory that is less than the collective amount of volatile memory in the plurality of nodes, wherein at least one node also includes an I/O device having I/O memory, the computer program product comprising a non-transitory, tangible computer-readable storage medium on which is stored non-transitory program code for:

instructing each node of the computer system to calculate a memory layout that includes a portion of the volatile memory of each of a plurality of nodes in the computer system, the memory layout being calculated to minimize an amount of unmapped memory as a function of 1) the number of nodes in the computer system, 2) the amount of volatile memory in each node, 3) the number of nodes that include an I/O device having I/O memory, and 4) the amount of I/O memory in each such I/O device; and

instructing a computing processor in a first node of the computer system to access the memory of a second node of the computer system using the calculated memory layout.

16. The product of claim 15 , wherein the maximum amount of volatile memory is at least 16 terabytes.

17. The product of claim 15 , wherein the I/O device includes a network card, a graphics card, a non-volatile storage device, a coprocessor, or an accelerator card.

18. The product of claim 15 , wherein the program code for calculating the memory layout comprises program code for minimizing the number of unmapped nodes.

19. The product of claim 18 , wherein the program code for calculating the memory layout further comprises program code for minimizing the number of unmapped nodes that include an I/O device after minimizing the number of unmapped nodes.

20. The product of claim 19 , wherein the program code for calculating the memory layout further comprises program code for maximizing the amount of mapped I/O memory after minimizing the number of unmapped nodes that include an I/O device.

21. The product of claim 20 , wherein the program code for calculating the memory layout further comprises program code for maximizing the amount of mapped volatile memory after maximizing the amount of mapped I/O memory.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
SECURITY INTEREST Recorded Feb 12, 2016
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037726/0244 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2013
From: JOHNSON, BRIAN JUSTIN; HABECK, MICHAEL JOHN
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 030074/0522 →