Parallel Execution Environment for Technical Computing Programs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technical computing environments, such as MATLAB, face limitations in handling large and complex data-intensive problems due to sequential execution on a single computer, which can exceed memory capacity and take excessive time, and require advanced users to manage complex parallel programming paradigms for parallel computing.
Innovation Solution
A system and method for executing computer programs in parallel across multiple execution environments, allowing users to easily switch between sequential and parallel modes without requiring knowledge of low-level parallel programming, using technical computing programming language constructs for distribution and control structures like parallel loops and conditional statements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a program is executed sequentially on a single computer, then the execution is simple to manage, but the computing speed and memory capacity are limited
Solution Approach 1:
The patent divides a single program execution into multiple parallel execution environments, where the program is segmented and distributed across multiple computers or processors. This allows the system to maintain simplicity of program management while achieving enhanced computing speed and memory capacity through parallel processing.
Solution Approach 2:
The patent creates a multi-functional execution system where a single program can operate in both sequential mode (on one computer) and parallel mode (across multiple computers or processors). This universal execution capability allows the same program to adapt to different computing resources without requiring separate program versions, thus maintaining ease of operation while enabling improved productivity when needed.
2Productivity
If parallel programming paradigms are used to execute programs on multiple computers, then computing power is leveraged, but the programming complexity increases significantly
Solution Approach 1:
The patent introduces an intermediary execution environment layer that manages parallel programming complexities. This intermediary handles message passing, coordination, and control between multiple computing environments, allowing users to leverage parallel computing power without directly implementing complex parallel programming paradigms. The intermediary abstracts the complexity while enabling productivity enhancement.
Solution Approach 2:
The patent creates copies of the program execution environment across multiple computers or processors. Instead of requiring users to write complex parallel programming code, the system replicates the execution environment and coordinates them automatically. This copying approach allows users to benefit from enhanced computing power while avoiding the complexity of manual parallel programming implementation.
3Productivity
If a program is modified to run in parallel execution environments, then execution speed improves, but the program requires significant changes
Solution Approach 1:
The patent designs the program execution system to be universal, allowing the same program to run in both sequential and parallel modes without modification. The multi-functionality of the execution environment automatically adapts the program for parallel execution when multiple environments are available, thus improving execution speed while requiring minimal to no program changes.
Solution Approach 2:
The patent implements a self-service execution system where the program automatically detects and utilizes available execution environments. The system self-configures parallel execution based on the number and capabilities of available computers or processors, eliminating the need for manual program modification. This self-service capability enables improved execution speed while maintaining program integrity and minimizing modification effort.
Data Source
AI summary
A system and methods are disclosed for executing a technical computing program in parallel in multiple execution environments. A program is invoked for execution in a first execution environment and from the invocation the program is executed in the first execution environment and one or more additional execution environments to provide for parallel execution of the program. New constructs in a technical computing programming language are disclosed for parallel programming of a technical computing program for execution in multiple execution environments. It is also further disclosed a system and method for changing the mode of operation of an execution environment from a sequential mode to a parallel mode of operation and vice-versa.


