GPU Task Mapping for Regular Expression Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Adapting SIMD machines, such as GPUs, for parallel processing tasks like regular expression matching is challenging due to varying execution times and inefficiencies in handling branch operations.

Innovation Solution

Efficient task mapping to execution threads is achieved by using a system architecture that includes a string maintenance module, regex compiler, scheduler, and virtual machine on a GPU, employing bytecode execution and indicator variables to optimize processing, and dynamically managing execution cycles and thread allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SIMD machines are used for parallel processing of regular expression matching, then processing throughput is improved, but execution time varies significantly across different threads

Engineering Contradiction:
Improveprocessing throughputVSAvoidexecution time variation
Core Design Contradiction:
ProductivityVSDuration of action of moving object

Solution Approach 1:

The patent applies preliminary action by pre-compiling regular expressions into bytecode before execution, and by pre-organizing string data into fixed-size blocks. This preparation work is done in advance to reduce execution time variations during actual pattern matching operations, allowing threads to process data more uniformly.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamics through dynamic thread allocation and workload balancing mechanisms. The system dynamically adjusts which threads process which regex patterns based on current system state and performance metrics, allowing the processing system to adapt to varying execution requirements and minimize time variations.

Inventive Principle:
Principle #15Dynamics

2Speed

If parallel processing is implemented across multiple threads, then processing speed is improved, but branch operations become inefficient

Engineering Contradiction:
Improveprocessing speedVSAvoidbranch operation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the regular expression matching process into distinct bytecode instructions that can be executed independently by multiple threads. Each thread processes segmented portions of the data with clearly defined control flow, reducing the complexity of branch operations across the parallel system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer in the form of a virtual machine that executes bytecode instructions. This intermediary abstracts the complex branch operations from the underlying hardware, providing a simplified instruction set that is more amenable to parallel execution while maintaining the necessary control flow logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If more execution threads are allocated, then task completion rate is improved, but resource utilization becomes unbalanced

Engineering Contradiction:
Improvetask completion rateVSAvoidresource utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements feedback mechanisms that monitor thread execution progress and resource utilization in real-time. Based on this feedback, the system dynamically adjusts thread allocation and workload distribution to maintain balanced resource utilization while maximizing task completion rate, preventing both over-provisioning and under-provisioning of computational resources.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8887160B2Mapping tasks to execution threads
Publication Date: 2014.11.11 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8887160B2 patent drawing
  • US8887160B2 patent drawing
  • US8887160B2 patent drawing

AI summary

Tasks are mapped to execution threads of a parallel processing device. Tasks are mapped from the list of tasks to execution threads of the parallel processing device that are free. The parallel processing device is allowed to perform the tasks mapped to the execution threads of the parallel processing device for a predetermined number of execution cycles. When the parallel processing device has performed the tasks mapped to the execution threads of the parallel processing device for the predetermined number of execution cycles, the parallel processing device is suspended from further performing the tasks to allow the parallel processing device to determine which execution threads have completed performance of mapped tasks and are therefore free.