Browse Prior Art Database

Parallel Execution of Non-Uniform Component-Based Dependency-Driven Workloads

IP.com Disclosure Number: IPCOM000020019D
Original Publication Date: 2003-Oct-17
Included in the Prior Art Database: 2003-Oct-17
Document File: 3 page(s) / 59K

Publishing Venue

IBM

Abstract

Disclosed is a system that executes a componentized, non-uniform, dependency-based workload in parallel. A componentized, non-uniform, dependency-based workload is a workload comprised of the following attributes: comprised of logical units of work (componentized); logical units of work are not inherently related, they can be of completely different types; logical units of work may require that other units of work be executed first.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

  Parallel Execution of Non-Uniform Component-Based Dependency-Driven Workloads

Overview

Disclosed is a system that executes a componentized, non-uniform, dependency-based workload in parallel. A componentized, non-uniform, dependency-based workload is a workload comprised of the following attributes: comprised of logical units of work (componentized); logical units of work are not inherently related, they can be of completely different types; logical units of work may require that other units of work be executed first. Figure 1.1 is an example of the previously described workload. The disclosed system executes the specified workload in parallel, ensuring that the allocated processors are fully utilized. The system consists of the following:

Processes:

Controller: The Controller is a process whose primary task is to determine whether dependencies for a set component has been satisfied thereby allowing the execution of the component to occur.

Processor: The Processor is a process responsible for spawning subordinate worker processes capable of executing a component. The number of worker processes is limited by a specified maximum thereby allowing a limitation on the amount of system resources being consumed. The primary objective of the Processor is to ensure that the maximum number of worker processes is executing components at any given moment.

Data Elements:

Completed Components Table: The Completed Components Table is used to keep track of which components have been executed. This synchronized table is updated by the Processor and read by the Controller. Any update to the Completed Components Table must have a corresponding Completion-Event sent to the controller. Execution Queue: The Execution Queue is used to keep track of components whose dependencies have been satisfied and are ready for execution. This data structure is especially utilized when the Processor can no longer spawn subordinate worker processes and components must wait until a worker process has completed its' execution of a component. Any insertion into the Execution Queue must have a corresponding Insertion-Event sent...