Title: sasass
1 A Universal Client for Taskflow-Oriented
Programming with Distributed Components Concepts
and an XML/TclTk Implementation
Hemang Lavana Franc Brglez
Dept. of Computer Science, NC State
University http//www.cbl.ncsu.edu/OpenProjects/Om
niFlow/ Hemang Lavana is now with Cisco
Systems, Inc.
2Outline
Background and Motivation
Taskflow Architecture
OmniFlow Client for taskflows
XML Schema and cdtML
Summary and Conclusions
3EDA Background and Motivation .
Informal problem description Matching S/W
components to task instances Informal taskflow
construction for -- concurrent and distributed
task execution -- serial and distributed
task execution
4Informal Problem Description
Task A1 std. cell placement of netlist N(a)
(_at_host a1)
Task A2 std. cell placement of netlist N(a)
(_at_host a2)
Task B1 block placement of netlist N(b) (_at_host
b1)
Task C1 routing of placed N(a) N(b) (_at_host c1)
Task D1 N(a) N(b) post-layout simulation
(_at_host d1)
Notes tasks may be hierarchical, owned by
distributed team hosts may be under
different file systems !!
5Matching S/W Components to Task Ins.
What are the key challenges in this example?
(1) invoke and execute A1, A2, B1 concurrently
(2) when first 2-of-3 from A1, A2, B1
complete -- abort uncompleted task from A1,
A2, B1 -- invoke and execute C1
(3) when C1 completes, -- invoke and
execute D1
6Concurrent Taskflow Composition
(1) invoke and execute A1, A2, B1 concurrently
.
7Taskflow Aborts and Synchronization
8Serial Taskflow Composition
(3) when C1 completes .
9Related Work
University-based research, e.g. Reuben
(DAC97), Weld (DAC98), JavaCADD (TR98),
CollabTop (DAC99), OpenDesign (ICCD00)
OmniFlow Concepts (TclTk01)
Structured Workflow Modeling and Middleware,
e.g. http//www.icis.qut.edu.au/arthur
http//www-4.ibm.com/software/ts/mqseries/
Collaboration technologies, e.g.
http//www.cpsc.ucalgary.ca/grouplab/groupkit/
Technologies such as XML, OMG, JavaSOFT, COM .
10Taskflow Architecture Programming ...
Problem Abstraction Blackbox (Whitebox) as
Component Instances Taskflow as Intersection of
TaskGraph, DataGraph Task Encapsulation
Architecture
11Problem Abstraction
Given L blackbox components (executable
programs) and data
M whitebox components (compositions of
black/whitebox components) and data
K hosts of LM black/whiteboxes
N owners of LM black/whiteboxes.
Three problems (1) compose a new whitebox
component (2) transfer data within the new
whitebox component (3) schedule
concurrent/serial execution of all component
instances contained in the new whitebox
component.
12WhiteBox as a TaskFlow of Components
- tasks can be sequenced serially or concurrently
- task may be repeated a number of times
- the choice of sequence can be decided by data
- only one entry and one exit point
- enabling/disabling of control edges to control
the scope of execution
- enabling/disabling taskflow for execution with
local or global flow data
13Black/WhiteBox Ports and Data Types
14BlackBox/WhiteBox Connectors (Edges)
singleInvocation control edge
(task-task, opened/closed in GUI)
repeatInvocation control edge
(task-task, opened/closed in GUI)
abortInvocation control edge (task-task,
opened/closed in GUI)
transfer data edge (data-task, task-data
or data-data)
15Taskflow Intersection of Two Graphs
User can re-configure (on/off) all control
edges Each task instance encapsulates FIVE
primitives
16A TaskGraph Example
TaskGraph (parabolaMain) (BEGIN) gt
(parabola) gt (END)
TaskGraph (parabola) (BEGIN) gt (InitA) gt
(A) gt (D) gt (E) gt (END)
(A) gt (A)
(D) gt (A)
(BEGIN) gt (InitB) gt (B) gt (D) gt (E) gt
(END) (B) gt (B) (D)
gt (B) (BEGIN) gt (InitC) gt (C) gt (D) gt
(E) gt (END) (C) gt
(C) (D) gt (C)
TaskGraph (A) or (B) or (C) (BEGIN) gt
(pSolverWeb) gt (download) gt (END)
17A DataGraph Example
DataGraph (parabola) emailaddr -gt
(InitA).emailaddr emailaddr -gt
(InitB).emailaddr
(A).newCost -gt (D).costA (B).newCost -gt
(D).costB (C).newCost -gt (D).costC (D).totalCo
st -gt (E).totalCost
(E).outReport -gt mOutReport
18Task Instance Architecture
19Task Encapsulation Layer (Outline)
Waiting, Enabled, Xecuting, Completed Done,
Aborted, TimedOut, Skipped
20OmniFlow A Universal Client
An Interactive GUI for taskflow tree view
graph view demo
OmniFlow client simulates the behavior of
distributed and connected programs, it is a
program-of-programs with its own highly
interactive GUI environment .
21Taskflow Tree View (Dyn. Generated)
mOut1 fileOut1.r
22Taskflow Graph View (Dyn. Generated)
23OmniFlow Client Demo (parabola)
invoke the taskflow interaction with
tree view interaction with graph view
execution in simulation mode
24XML Schema and cdtML ...
Taskflow Schema using XML (cdtML)
WhiteBox Schema Specification for cdtML
Taskflow Descriptions in cdtML
Example of parabola_main.cdt
Example of parabola_defn.cdt
Example of parabola_body.cdt
25cdtML Taskflow Schema (using XML)
I/O PortList ...
26WhiteBox cdtML Schema (using XML)
ltxsdcomplexType name
"MultiTaskDefn" content"elementOnly"gt
ltxsdsequence minOccurs"0" maxOccurs"1"gt
      ltxsdelement
name"InputList" type"InputList"/gt
      ltxsdelement name"TaskList"
type"TaskList"/gt ltxsdelement
name"TaskGraph"gt ltxsdcomplexType
content"textOnly"gt lt/xsdcomplexTypegt
lt/xsdelementgt lt/xsdsequencegt
ltxsdattribute name"name"gt ltxsdsimpleType
base"xsdstring"/gt lt/xsdattributegt lt/xsdcompl
exTypegt
27Taskflow Descriptions in cdtML ...
28Example of parabola_main.cdt
29Example of parabola_defn.cdt
ltCdtmlgt ltMultiTaskDefn name"task_parabola"
bodyRef"parabola_body.cdttask_parabola"gt
ltTitlegt Taskflow task_parabola lt/Titlegt
ltDescriptiongt ...
ltInputListgt ltInput port"emailaddr"
type"temporary"gt ...
ltTaskListgt ltBegin/gt ltTask
instance"(InitA)" taskRef"par"/gt ltTask
instance"(InitB)" taskRef"par"/gt
... ltTaskGraphgt (BEGIN) gt (InitA)
lt/TaskGraphgt lt/MultiTaskDefngt lt/Cdtmlgt
30Example of parabola_body.cdt
ltCdtmlgt ltMultiTaskBody name"task_parabola"
sleep2"gt ltBeginFork/gt ltTaskInstance
instance"(A)" hostgemini"gt
ltJoinConditiongt ltUserAbortgt
evalAbortCondition OR (D) Enabled (D)
Executing lt/UserAbortgt lt/JoinConditiongt
ltDataMuxgt ltSetInput port"root"gt
ltLocalValuegt taskA lt/LocalValuegt ...
ltEndJoin/gt ltDataGraphgt emailaddr -gt
(InitA).emailaddr emailaddr -gt
(InitB).emailaddr ... lt/DataGraphgt lt/Mult
iTaskBodygt lt/Cdtmlgt
31Taskflow User-Entry (via XML Editor)
32Taskflow GUI and Scheduling Engine
33Experimental Results ...
early DA projects reported in ICCD'00,
demos at DAC99, DAC'00 a number of projects
reported in PhD Thesis'00 (largest
taskflow has 9150 task instances,
longest path of 1600 task instances) demos
at DAC 2001
scalability of the taskflow scheduler minimum
execution time sequential tasks
concurrent tasks
34Scalability of the OmniFlow Scheduler
Task Longest Overhead Instances
Path seconds/task -------- ------ ------------
300 100 0.396 300 200 0.412
9150 1600 0.381
for a SUN workstation under unix/solaris.
Comparable performance has been observed on
workstations under linux/macOS/windowsNT
35Issues
validating tcl-xml parser incr Tcl on Mac
mclistbox/tree widget graph dependencies in
xml debugging cdtml taskflows
36Summary and Conclusions
Using XML user encapsulates networked
component programs, as task instances and
programs their interconnections.
Omniflow client reads XML description --
and dynamically renders a highly interactive GUI.
The user-configurable environment may be
preferable to hard-wired flow environments of
today.
For more info about OmniFlow client, thesis, and
paper reprints/preprints, see http//www.cbl.ncsu.
edu/OpenProjects/OmniFlow/