Automatic Code Parallelization with Unused Segment Removal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for automatic parallelization of code are not entirely automated, require access to source code, and use traditional locking techniques, leading to inefficiencies and increased cybersecurity vulnerabilities due to bloated applications with unused code segments.

Innovation Solution

A system and method for automatically parallelizing code segments by profiling execution, identifying parallelizable portions, and transforming them into parallelized code, while also using a robust software modeling tool to optimize and secure code by removing unused regions and leveraging behavioral tracing instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional locking techniques are used for parallelization, then code can be executed in parallel, but device complexity increases and cybersecurity vulnerabilities expand

Engineering Contradiction:
Improveprocessing performanceVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts and removes unused code segments from the application. By analyzing the code base to identify and eliminate unnecessary code portions, the system reduces code complexity and cybersecurity attack surfaces while maintaining the essential parallelized functionality for improved processing performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system discards unused code segments that are identified through code analysis. By removing these unnecessary portions, the patent reduces the overall code base complexity and eliminates potential cybersecurity vulnerabilities associated with unused code, while preserving the parallelized execution capabilities.

Inventive Principle:
Principle #34Discarding and recovering

2Ease of manufacture

If code segments are not optimized, then development is simpler, but processing efficiency decreases and attack surfaces increase

Engineering Contradiction:
Improveease of code developmentVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent implements self-service automation where the system automatically profiles, analyzes, and parallelizes code segments without requiring manual intervention. This automation maintains ease of development while significantly improving processing efficiency through systematic code optimization and parallelization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the execution parameters of code segments by automatically identifying parallelizable portions and transforming them into parallel structures. This parameter change from sequential to parallel execution improves processing efficiency while the automated nature maintains ease of development.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If cybersecurity software size increases to address vulnerabilities, then security coverage improves, but application bloat increases and performance decreases

Engineering Contradiction:
Improvecybersecurity coverageVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and removes unused code segments that contribute to application bloat and cybersecurity attack surfaces. By eliminating unnecessary code while maintaining essential security functionality, the system improves both security coverage and application performance simultaneously.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies partial optimization by focusing specifically on removing unused code segments rather than rewriting entire applications. This targeted approach improves cybersecurity coverage and performance without requiring complete application redesign.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10725897B2Systems and methods for automatically parallelizing sequential code
Publication Date: 2020.07.28 RAMPART AI INC
  • US10725897B2 patent drawing
  • US10725897B2 patent drawing
  • US10725897B2 patent drawing

AI summary

Systems, methods, and apparatus for automatically parallelizing code segments are provided. For example, an environment includes a profiling agent, a parallelization agent, and a verification agent. The profiling agent executes a code segment and generates a profile of the executed code segment. The parallelization agent analyzes the code segment to determine whether a parallelizable portion is present in the code segment. When a parallelizable portion is present, the parallelization agent determines, based on the profile of the executed code segment, whether to parallelize the parallelizable portion of the code segment. If it is determined to parallelize the parallelizable portion of the code segment, the parallelization agent automatically parallelizes the parallelizable portion of the code segment. The verification agent verifies the functionality and/or correctness of the parallelized code segment.