Task Dependency Analysis for Parallel Job Flow Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity and volume of data in scientific and technical analyses require advanced mechanisms for organizing development, ensuring reproducibility, and accountability, particularly in distributed systems where task routines and data are pooled for collaboration and cost-sharing, but existing solutions lack effective oversight and error checking.

Innovation Solution

A system that includes a processor and storage to analyze task dependencies, identify parallelizable tasks, retrieve recent task routines, and generate job flow definitions for efficient execution and data management across federated areas, ensuring proper input and output interfaces, and handling data distribution based on size and format for parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If task routines and data are pooled for collaboration and cost-sharing, then productivity and cost-effectiveness are improved, but reliability and accountability deteriorate due to lack of oversight and error checking

Engineering Contradiction:
ImproveproductivityVSAvoidreliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism through checksum verification and job flow definition validation. The system calculates checksums for input and output data objects, stores them in a job instance log, and verifies data integrity throughout the distributed processing. This feedback loop ensures accountability and reliability while maintaining the benefits of pooled task routines across multiple devices.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces an intermediary layer consisting of job flow definitions and instance logs that mediate between pooled task routines and final results. These intermediaries track the execution of tasks across distributed devices, maintain data object specifications, and provide oversight without preventing collaboration. The intermediary mechanism enables both productivity through pooling and reliability through monitoring.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If data objects are distributed across multiple devices, then productivity through parallel processing is improved, but device complexity increases due to coordination requirements

Engineering Contradiction:
ImproveproductivityVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments data objects into distributed blocks across multiple devices, with each device processing specific portions in parallel. The system divides input data objects into multiple blocks that can be independently processed, then reassembles the output blocks into the final result. This segmentation enables parallel processing productivity while the standardized block interface reduces coordination complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements universal data object specifications and standardized interfaces that work across all devices in the distributed system. The job flow definition format, data object block structure, and checksum verification mechanism are universally applicable regardless of which specific device performs the processing. This universality allows devices to be added or removed without increasing system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If task dependencies are analyzed and enforced, then reliability through error checking is improved, but processing time increases due to sequential constraints

Engineering Contradiction:
ImprovereliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of task dependencies when creating the job flow definition, before actual data processing begins. The system identifies which tasks must be completed sequentially due to data dependencies and which can run in parallel. This preliminary structuring allows the system to maximize parallel processing while maintaining necessary sequential constraints, minimizing overall processing time while ensuring reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic task scheduling that adapts to actual processing conditions. The job flow definition specifies dependencies, but the execution engine can dynamically determine which independent tasks are ready to run based on completed tasks and available resources. This dynamic approach allows the system to maintain reliability through dependency enforcement while minimizing sequential constraints by executing independent tasks as soon as their prerequisites are met.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10740076B2Many task computing with message passing interface
Publication Date: 2020.08.11 SAS INSTITUTE INC
  • US10740076B2 patent drawing
  • US10740076B2 patent drawing
  • US10740076B2 patent drawing

AI summary

An apparatus includes a processor to: receive a request to perform a set of tasks; analyze input data objects used as inputs and output data objects generated as outputs by the set of tasks to identify at least one dependency between tasks and at least one pair of tasks performable in parallel; determine an order of performance of the set of tasks; retrieve executable instructions of a corresponding set of task routines that define input interfaces and output interfaces for the input data objects and output data objects, respectively; generate a job flow definition defining the order of performance, each input interface and each output interface; use the job flow definition to perform the set of tasks; and transmit one of the output data objects to the requesting device as a result report serving as the output of the set of tasks.