# US 10,503,401 B2 · Opportunistic data analytics using memory bandwidth in disaggregated computing systems

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

- Number: US 10,503,401 B2
- Document ID: US10503401B2
- Status: Granted
- Kind: B2
- Application number: 15/237,109
- Filed: 2016-08-15
- Published: 2017-11-16
- Granted: 2019-12-10
- Earliest claimed: 2016-05-16
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: John A. Bivens; Min Li; Ruchi Mahindru; HariGovind V. Ramasamy; Yaoping Ruan; Valentina Salapura; Eugen Schenfeld
- Web page: https://patentgrep.com/patent/US10503401B2

## CPC

- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 12/14: Protection against unauthorised use of memory {or access to memory}
- G06F 13/385: {for adaptation of a particular data processing system to different peripheral devices}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06N 20/00: Machine learning
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q 30/02: Marketing; Price estimation or determination; Fundraising
- H04L 49/351: for local area network [LAN], e.g. Ethernet switches
- G06F 2212/1041: Resource optimization
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Various embodiments for optimizing memory bandwidth in a disaggregated computing system, by a processor device, are provided. Respective memory devices are assigned to respective processor devices in the disaggregated computing system, the disaggregated computing system having at least a pool of the memory devices and a pool of the processor devices. An iterative learning algorithm is used to define data boundaries of a dataset for performing an analytic function on the dataset using memory bandwidth not currently committed to a primary compute task.

## Claims

### Claim 1

A method for optimizing memory bandwidth in a disaggregated computing system, by a processor device, comprising:
assigning respective memory devices to respective processor devices in the disaggregated computing system, the disaggregated computing system having at least a pool of the memory devices and a pool of the processor devices; and
using an iterative learning algorithm to define data boundaries of a dataset for performing an analytic function on the dataset simultaneous to a primary compute task, unrelated to the analytic function, being performed on the dataset in the pool of memory devices using memory bandwidth not currently committed to the primary compute task such that the analytic function is performed on the dataset being resident in the pool of memory devices using unused memory bandwidth otherwise allocated to the primary compute task associated with the dataset resident in the pool of memory devices to extract information to aide in processing the data resident in the pool of memory devices, thereby efficiently employing the unused memory bandwidth to prevent underutilization of the pool of memory devices;
wherein a first one of the respective processor devices executes the analytic function on the unused memory bandwidth within the pool of memory devices notwithstanding whether the unused memory bandwidth is located within a first one of the respective memory devices assigned to the first one of the respective processor devices such that the first one of the respective processor devices performs the analytic function on data resident in any of the respective memory devices in the pool of memory devices having the unused memory bandwidth, the first one of the respective memory devices directly connected via an optical switch to the first one of the respective processor devices.

### Claim 2 (depends on 1)

The method of claim 1, further including receiving user input for designating certain processor devices of the pool of processor devices to be used to perform computation of the analytic function; and
using the designated processor devices of the pool of processor devices to perform computation of the analytic function when it is determined the designated processor devices are idle.

### Claim 3 (depends on 1)

The method of claim 1, further including monitoring initial data load and ongoing data access patterns of the dataset to build a continually updated data boundary map leveraging the iterative learning algorithm for performing the analytic function.

### Claim 4 (depends on 3)

The method of claim 3, further including performing at least one of:
providing a training phase time threshold (TPTT) defining a predetermined amount of time the ongoing data access patterns are to be observed for building an initial data boundary map, the initial data boundary map iteratively updated to become the continually updated data boundary map;
providing a training phase size threshold (TPST) defining a predetermined quantity of data to be mapped in the initial data boundary map; and
upon not providing the TPTT or the TPST, observing and comparing the ongoing data access patterns to access patterns of previous workloads.

### Claim 5 (depends on 4)

The method of claim 4, wherein the iterative learning algorithm includes accounting for at least one of movement of data blocks of the dataset between a secondary storage and the pool of memory devices, new data block creation, and data block deletion.

### Claim 6 (depends on 5)

The method of claim 5, further including using the continually updated data boundary map to track and target coverage of the analytic function of the dataset in real-time.

### Claim 7

A system for optimizing memory bandwidth in a disaggregated computing system, the system comprising:
at least one processor device, wherein the at least one processor device:
assigns respective memory devices to respective processor devices in the disaggregated computing system, the disaggregated computing system having at least a pool of the memory devices and a pool of the processor devices; and
uses an iterative learning algorithm to define data boundaries of a dataset for performing an analytic function on the dataset simultaneous to a primary compute task, unrelated to the analytic function, being performed on the dataset in the pool of memory devices using memory bandwidth not currently committed to the primary compute task such that the analytic function is performed on the dataset being resident in the pool of memory devices using unused memory bandwidth otherwise allocated to the primary compute task associated with the dataset resident in the pool of memory devices to extract information to aide in processing the data resident in the pool of memory devices, thereby efficiently employing the unused memory bandwidth to prevent underutilization of the pool of memory devices;
wherein a first one of the respective processor devices executes the analytic function on the unused memory bandwidth within the pool of memory devices notwithstanding whether the unused memory bandwidth is located within a first one of the respective memory devices assigned to the first one of the respective processor devices such that the first one of the respective processor devices performs the analytic function on data resident in any of the respective memory devices in the pool of memory devices having the unused memory bandwidth, the first one of the respective memory devices directly connected via an optical switch to the first one of the respective processor devices.

### Claim 8 (depends on 7)

The system of claim 7, wherein the at least one processor device receives user input for designating certain processor devices of the pool of processor devices to be used to perform computation of the analytic function; and
uses the designated processor devices of the pool of processor devices to perform computation of the analytic function when it is determined the designated processor devices are idle.

### Claim 9 (depends on 7)

The system of claim 7, wherein the at least one processor device monitors initial data load and ongoing data access patterns of the dataset to build a continually updated data boundary map leveraging the iterative learning algorithm for performing the analytic function.

### Claim 10 (depends on 9)

The system of claim 9, wherein the at least one processor device performs at least one of:
providing a training phase time threshold (TPTT) defining a predetermined amount of time the ongoing data access patterns are to be observed for building an initial data boundary map, the initial data boundary map iteratively updated to become the continually updated data boundary map;
providing a training phase size threshold (TPST) defining a predetermined quantity of data to be mapped in the initial data boundary map; and
upon not providing the TPTT or the TPST, observing and comparing the ongoing data access patterns to access patterns of previous workloads.

### Claim 11 (depends on 10)

The system of claim 10, wherein the iterative learning algorithm includes accounting for at least one of movement of data blocks of the dataset between a secondary storage and the pool of memory devices, new data block creation, and data block deletion.

### Claim 12 (depends on 11)

The system of claim 11, wherein the at least one processor device uses the continually updated data boundary map to track and target coverage of the analytic function of the dataset in real-time.

### Claim 13

A computer program product for optimizing memory bandwidth in a disaggregated computing system by at least one processor device, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
an executable portion that assigns respective memory devices to respective processor devices in the disaggregated computing system, the disaggregated computing system having at least a pool of the memory devices and a pool of the processor devices; and
an executable portion that uses an iterative learning algorithm to define data boundaries of a dataset for performing an analytic function on the dataset simultaneous to a primary compute task, unrelated to the analytic function, being performed on the dataset in the pool of memory devices using memory bandwidth not currently committed to the primary compute task such that the analytic function is performed on the dataset being resident in the pool of memory devices using unused memory bandwidth otherwise allocated to the primary compute task associated with the dataset resident in the pool of memory devices to extract information to aide in processing the data resident in the pool of memory devices, thereby efficiently employing the unused memory bandwidth to prevent underutilization of the pool of memory devices;
wherein a first one of the respective processor devices executes the analytic function on the unused memory bandwidth within the pool of memory devices notwithstanding whether the unused memory bandwidth is located within a first one of the respective memory devices assigned to the first one of the respective processor devices such that the first one of the respective processor devices performs the analytic function on data resident in any of the respective memory devices in the pool of memory devices having the unused memory bandwidth, the first one of the respective memory devices directly connected via an optical switch to the first one of the respective processor devices.

### Claim 14 (depends on 13)

The computer program product of claim 13, further including an executable portion that receives user input for designating certain processor devices of the pool of processor devices to be used to perform computation of the analytic function; and
an executable portion that uses the designated processor devices of the pool of processor devices to perform computation of the analytic function when it is determined the designated processor devices are idle.

### Claim 15 (depends on 13)

The computer program product of claim 13, further including an executable portion that monitors initial data load and ongoing data access patterns of the dataset to build a continually updated data boundary map leveraging the iterative learning algorithm for performing the analytic function.

### Claim 16 (depends on 15)

The computer program product of claim 15, further including an executable portion that performs at least one of:
providing a training phase time threshold (TPTT) defining a predetermined amount of time the ongoing data access patterns are to be observed for building an initial data boundary map, the initial data boundary map iteratively updated to become the continually updated data boundary map;
providing a training phase size threshold (TPST) defining a predetermined quantity of data to be mapped in the initial data boundary map; and
upon not providing the TPTT or the TPST, observing and comparing the ongoing data access patterns to access patterns of previous workloads.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the iterative learning algorithm includes accounting for at least one of movement of data blocks of the dataset between a secondary storage and the pool of memory devices, new data block creation, and data block deletion.

### Claim 18 (depends on 17)

The computer program product of claim 17, further including an executable portion that uses the continually updated data boundary map to track and target coverage of the analytic function of the dataset in real-time.
