# US 8,751,600 B2 · Administering globally accessible memory space in a distributed computing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,600 B2
- Document ID: US8751600B2
- Status: Granted
- Kind: B2
- Application number: 13/710,611
- Filed: 2012-12-11
- Published: 2013-07-04
- Granted: 2014-06-10
- Earliest claimed: 2012-01-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Tsai-Yang Jea; Yuan Yuan Nie
- Web page: https://patentgrep.com/patent/US8751600B2

## CPC

- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In a distributed computing system that includes compute nodes that include computer memory, globally accessible memory space is administered by: for each compute node: mapping a memory region of a predefined size beginning at a predefined address; executing one or more memory management operations within the memory region, including, for each memory management operation executed within the memory region: executing the operation collectively by all compute nodes, where the operation includes a specification of one or more parameters and the parameters are the same across all compute nodes; receiving, by each compute node from a deterministic memory management module in response to the memory management operation, a return value, where the return value is the same across all compute nodes; entering, by each compute node after local completion of the memory management operation, a barrier; and when all compute nodes have entered the barrier, resuming execution.

## Claims

### Claim 1

A method of administering globally accessible memory space in a distributed computing system, the distributed computing system comprising a plurality of compute nodes coupled for data communications by one or more data communications networks, each compute node comprising computer memory, the method comprising:
for each compute node:
mapping a memory region of a predefined size beginning at a predefined address;
executing one or more memory management operations within the memory region, including, for each memory management operation executed within the memory region:
executing the operation collectively by all compute nodes, where the operation includes a specification of one or more parameters and the parameters are the same across all compute nodes;
reallocating, by each compute node in a collective operation, a buffer;
receiving, by each compute node from a deterministic memory management module in response to the memory management operation, a return value, where the return value is the same across all compute nodes, wherein receiving the return value from the deterministic memory management module further comprises receiving a local memory address of the reallocated buffer within the memory region, where the local memory address is the same address on all compute nodes;
entering, by each compute node after local completion of the memory management operation, a barrier; and
when all compute nodes have entered the barrier, resuming execution.

### Claim 2 (depends on 1)

The method of claim 1 wherein:
executing one or more memory management operations further comprises allocating, by each compute node in a collective operation, a buffer; and
receiving the return value from the deterministic memory management module further comprises receiving a local memory address of the allocated buffer within the memory region, where the local memory address is the same address on all compute nodes.

### Claim 3 (depends on 2)

The method of claim 2 further comprising:
storing, by a first compute node, data in the allocated buffer of a second compute node through use of the first compute node's local memory address.

### Claim 4 (depends on 2)

The method of claim 2 further comprising:
retrieving, by the second compute node, data from the first compute node's allocated buffer through use of the second compute node's local memory address.

### Claim 5 (depends on 1)

The method of claim 1 wherein:
executing one or more memory management operations further comprises deallocating, by each compute node in a collective operation, a buffer; and
receiving the return value from the deterministic memory management module further comprises receiving a result code, where the result code is the same address on all compute nodes.
