Task Group Synchronization for Memory-Efficient Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems, managing a large number of asynchronous operations represented by task objects leads to significant memory consumption and performance issues due to the need to hold onto object references for waiting on task completion, which prevents garbage collection and results in memory resource bottlenecks.

Innovation Solution

Implementing task grouping where task objects are associated with groups that automatically remove completed task objects from memory, allowing for waiting on task completion without retaining memory-intensive references, and protecting failed task objects for exception propagation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If task object references are held to wait for task completion, then task synchronization is enabled, but memory consumption increases significantly

Engineering Contradiction:
Improvetask synchronizationVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the task waiting mechanism into two separate components: task groups that track task completion status, and individual task objects that execute work. This segmentation allows the system to wait for task completion through group-level synchronization without holding references to all individual task objects, thereby reducing memory consumption while maintaining synchronization capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces task groups as intermediary structures between task objects and the waiting mechanism. Task groups act as mediators that track the completion status of multiple task objects without requiring the waiting thread to hold direct references to each task object. This intermediary layer enables synchronization while allowing garbage collection of individual task objects that are no longer needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a large number of task objects are created for parallel execution, then processing throughput increases, but memory resource bottlenecks occur

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory resources
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

By segmenting the management of task objects through task groups, the system can create and manage large numbers of task objects for parallel processing without proportionally increasing memory pressure. Task groups provide a compact representation that aggregates multiple task objects, enabling high throughput while controlling memory resource usage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables automatic discarding of task object references when tasks complete, allowing the garbage collector to recover memory resources. Task groups maintain minimal state information about completed tasks, enabling the system to discard and recover memory resources efficiently while maintaining the ability to track and wait for task completion.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8239865B2Waiting and synchronization of parallel task executions based on task groups and task object representations
Publication Date: 2012.08.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8239865B2 patent drawing
  • US8239865B2 patent drawing
  • US8239865B2 patent drawing

AI summary

A method includes creating a first task group. A plurality of task object representations are added to the first task group. Each representation corresponds to one task object in a first plurality of task objects. A wait operation is performed on the first task group that waits for at least one of the task objects in the first plurality of task objects to complete.