Dynamic process nets.

2017-02-14T01:42:13Z (GMT) by Ayyub, Shahaan
Kahn Process Nets (PN) is a general model of computation suitable for most stream-based applications. In the PN, network of concurrent processes, connected through FIFO channels, incrementally transform streams of data. Comparably, scientific workflows are specified as a network of partially ordered analytical steps or activities, which are orchestrated for obtaining solutions to e-Science problems. Owing to the structural and characteristic similarities to dataflows, the PN model effectively captures the computational behavior of scientific workflows and provides semantics for creating their formal descriptions. However, it does not address practical implementation issues related to scheduling and resource management, as they are generally specific to the choice of the platform. We are interested in a deterministic and reconfigurable execution of scientific workflow applications on dynamic, distributed and heterogeneous platforms, specifically the Grid. From modelling perspective, this requires mappmg definitions of fundamental workflow components to PN's semantics. Such a mapping allows inheriting and refining PN properties to devise an appropriate model of computation. In this thesis, we present a refinement of the Kahn Process Nets Model of Computation, called Dynamic Process Nets (DPN) that models and orchestrates scientific workflow execution on the Grid. Unlike other PN refinements, DPN semantics exploit finer inter-component parallelism to optimize concurrent execution. Conditions for the deterministic execution of workflow programs are given. Also, a new dynamic reconfiguration technique for a fault-tolerant implementation of DPN is proposed. Under this technique, the communication mode between the components is selected at runtime. This is equivalent to the dynamic selection of the channel in Kahn Process Nets. From implementation's perspective, a novel scheduling model is devised which exploits temporal and spatial parallelism between the DPN components for their well-behaved (i.e. adhering to the DPN semantics) orchestration on the Grid, based on its current state. It also specifies "when" and "how" the components should communicate at runtime. To specify "how", a specialized inter process communication library is used, which supports multiple communication modes without requiring any source code modification to the existing components. Thus, appropriate mode of communication can be selected at runtime making it possible to delay allocation of tightly coupled downstream activities, or pipeline components with strict temporal ordering. This also provides fault tolerance: for instance, as it is possible to separate the execution of tightly coupled components, the failure of a single downstream component would only require rescheduling of either the failed component, or only a small part of the workflow. These issues are not handled in the existing distributed and dynamic scheduling models.