Thread Stack Memory Pool Allocation in Distributed Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed processing environments, the overhead of creating threads and allocating stack memory is significant due to messaging requirements across the system bus, leading to latency and wasted interface bandwidth, especially when spawning a large number of worker threads.

Innovation Solution

Implementing a pool method where a host process reserves memory pools specific to each worker processor, allowing worker processors to allocate memory from these pools without additional messaging overhead, while maintaining overall memory control with the host processor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If stack memory is allocated by messaging across the system bus in distributed processing environments, then memory can be assigned to threads, but latency and interface bandwidth are wasted

Engineering Contradiction:
ImprovelatencyVSAvoidmessaging overhead
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The host processor pre-allocates stack memory pools to worker processors before threads are created. This preliminary action eliminates the need for runtime messaging across the system bus when threads need stack memory, thereby reducing latency and interface bandwidth waste while maintaining controlled memory distribution.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If memory pools are pre-allocated to worker processors, then allocation speed improves, but memory control complexity increases

Engineering Contradiction:
Improveallocation speedVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The total stack memory is segmented into separate pools that are pre-allocated to different worker processors. Each worker processor independently manages its assigned pool, which simplifies the allocation process and improves speed while the host processor maintains overall control through the segmentation scheme.

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If worker processors independently allocate memory without host processor involvement, then messaging overhead is reduced, but host processor control is lost

Engineering Contradiction:
Improveinterface bandwidthVSAvoidhost processor control
Core Design Contradiction:
Loss of energyVSAdaptability or versatility

Solution Approach 1:

Worker processors are granted local autonomy to allocate stack memory from their pre-allocated pools without host processor intervention, reducing messaging overhead and interface bandwidth usage. Meanwhile, the host processor maintains global control by pre-defining the pool allocations, creating a balanced distributed memory management system.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20230333894A1Dynamic allocation of stack memory space upon thread start in a distributed processing environment
Publication Date: 2023.10.19 MICRON TECHNOLOGY INC
  • US20230333894A1 patent drawing
  • US20230333894A1 patent drawing
  • US20230333894A1 patent drawing

AI summary

Disclosed in some examples are methods, systems, devices, and machine-readable mediums which utilize a pool method whereby a host process executing on the host processor reserves one or more pools of memory for worker threads of the host process. Upon creation of a new thread corresponding to the host process, the worker processor executing the new thread may assign a portion of the previously reserved pool to the new thread. By giving some control to a worker processor to assign memory from a previously reserved pool, threads may be assigned memory resources without additional message overhead from the host processor to the worker processor while at the same time retaining overall memory control with the host processor.