Thread Stack Memory Pool Allocation in Distributed Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Productivity
If memory pools are pre-allocated to worker processors, then allocation speed improves, but memory control complexity increases
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.
3Loss of energy
If worker processors independently allocate memory without host processor involvement, then messaging overhead is reduced, but host processor control is lost
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.
Data Source
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.


