milieu approach for software development for the pca program

36
Milieu Approach for Software Development for the PCA Program Yoginder Dandass Mississippi State University Anthony Skjellum Charles Summey Hong Yuan MPI Software Technology, Inc. Ted Bapty Vanderbilt University Ben Abbott Southwest Research Institute

Upload: mostyn

Post on 05-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Milieu Approach for Software Development for the PCA Program. Yoginder Dandass Mississippi State University. Anthony Skjellum Charles Summey Hong Yuan MPI Software Technology, Inc. Ted Bapty Vanderbilt University Ben Abbott Southwest Research Institute. Organization. Goals - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Milieu Approach for Software Development for the PCA Program

Milieu Approach for Software Development for the PCA

Program

Yoginder DandassMississippi State University

Anthony SkjellumCharles Summey

Hong YuanMPI Software Technology, Inc.

Ted BaptyVanderbilt University

Ben AbbottSouthwest Research Institute

Page 2: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 3: Milieu Approach for Software Development for the PCA Program

Goals of the Project

• Study and prototype a modeling language for streaming and threaded resources

• Study and prototype techniques for design space exploration in order to enable PCA scheduling

• Study and prototype techniques for system synthesis and generation

• Contribute findings to the MSI forum

Page 4: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 5: Milieu Approach for Software Development for the PCA Program
Page 6: Milieu Approach for Software Development for the PCA Program

SAPI, SAAL, VM (C/C++ Application)

Applications

Services: implementation

Hardware interface (registers, ports, etc.)

VM - machine dependent implementation

VM - machine independent interface (API)

O/S: machine independent implementation

O/S: machine independent interface (API)SAPI

SAAL

Services (e.g., MPI, VSIPL): C/C++ API

(Intermediate C-like + VM calls)

Mach. D

ep.

Mach. D

ep.

Page 7: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 8: Milieu Approach for Software Development for the PCA Program

Current TechnologyBuild Chain

Mission Compiler /Metacode Processor

Code Compiler

binary

bound & unbound metadata

source code

Mission Compiler /Metacode Processor

Component Model & High-Level Metacode

Component Metacodebound metadata unbound metadata

Page 9: Milieu Approach for Software Development for the PCA Program

1st Generation PCABuild Chain

Mission Compiler /Metacode Processor

Code CompilerResource Mappings

Mission Compiler /Metacode Processor

Component Model & High-Level Metacode

Component Metacodebound metadata unbound metadata

Page 10: Milieu Approach for Software Development for the PCA Program

Interaction of Compilers and PCA Build Chain ToolsM

etacode

High-Level Scheduling, Splitting, Merging, Mapping Tools

Sou

rce code

group

s

Code Translator and Optimizer(splits and merges code for optimization, and maps code to assigned resources)

Ap

portion

edR

esources

Perform

ance

Metad

ata

Tran

slatedC

ode

Metad

ata

API

Page 11: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 12: Milieu Approach for Software Development for the PCA Program

Metadata

• Describes functionality– Machine readable– Source code & language details– Interface and template parameters

• Known resource requirements• Known performance capability• Resource and Performance descriptors:

– Static table– Database query– Parametric functions– Source code in high-level scripting language

Page 13: Milieu Approach for Software Development for the PCA Program

Determining Metadata

• Derive requirements and capabilities from analysis of source/machine code and hardware capability (Compilers can provide this service)

• Execute code on hardware to verify execution model• Refine model for every hardware option

– Analytical modeling will be complex– Simplifying assumptions may make model inaccurate

• Construct database of known values– Could be large– Will be accurate for known hardware configurations– Interpolate/extrapolate

• Construct a predictive model– Math functions– Perl scripts

Page 14: Milieu Approach for Software Development for the PCA Program

XML Metacode

<component name="componentA"> .... <constantdatadef type="float" label="pi"> 3.141593 </constantdatadef> <variableassignment type="double" label="accum"> <constantdataref label="pi"/> <callcomponent name="FIR" dtype="double" cpu="G4"/> <operation optype="multiply"/> </variableassignment></component>

<component name="FIR"> <optimizedsection cpu="G4" dtype="double” pmode=“threaded”> <source lang="C"> ------- </source> </optimizedsection> <optimizedsection cpu="G4" dtype="float” pmode=“streaming”> <source lang=“C”> ------- </source> </optimizedsection></component>

Library component User defined componentMetacode Processor

<component

name=“componentA”>

<source lang=“C”

pmode=“threaded”>

--------------------

--------------------

--------------------

</source>

</component>

Page 15: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 16: Milieu Approach for Software Development for the PCA Program

Dynamic Resource Management

• Needed to account for unknown events– Faults– All possible scenarios may be impossible to

predict– May be prohibitive to generate static resource

& component mappings for all scenarios

• Reduce search space by pre-selecting candidate components at build time

Page 17: Milieu Approach for Software Development for the PCA Program

Application Initiated Morphs

• Application requests resource reconfiguration within allocated resources– May be compiler generated– May be explicitly coded

• Application explicitly requests new mode (components) within allocated resources

• Application explicitly requests additional resources or releases resources

• Application explicitly requests new mode (components) requiring different resources

Page 18: Milieu Approach for Software Development for the PCA Program

System Initiated Morphs

• System modifies allocated resources transparently (without affecting applications’ components)

• System moves application components to execute on a different set of equivalent resources

• System modifies resources allocated to components of an application

• System modifies components and resources allocated to an application

Page 19: Milieu Approach for Software Development for the PCA Program

Application/System Morph Notification and Metadata Interface

ApplicationRuntime System

Hardware

MetadataInterface

MetadataInterface

ApplicationMorph Req.

System MorphNotification

SynchronousMorphs

AsynchronousMorphs

(callback or message-based)

Page 20: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 21: Milieu Approach for Software Development for the PCA Program

Component Concepts

• PCA components are hierarchical• Design and implementation alternatives are explicitly

represented in the hierarchy at any level• A compound component may encapsulate concurrency

between lower-level components• PCA Application is a component composed from a

collection of components, component clustering specifications, abstract VM specifications, and component-VM element mappings

• PCA Mission is composed of PCA Applications, VM instantiation, component to physical VM element mappings, mode-change rules, and mission constraints that govern application behaviors

Page 22: Milieu Approach for Software Development for the PCA Program

Application

Y

X

Component Options

A

B

C

D

E

A1 A2 A3 A4 A5

B1 B2 B3

C1 C2

D1 D2

E1 E2 E3 E4

X1 X2

Y1 Y2 Y3

A2

B1

A3

B2

C1

D1

E3

C3

D2

E1

C1

D2

E4

Page 23: Milieu Approach for Software Development for the PCA Program

Application1

Y1

X1

Component Boundaries

A

B

C

D

E

Application2

Y1

X2

A

B

C

D

E

Application3

Y2

X1

A

B

C

D

E

Application4

Y2

X1

A

B

C

D

E

Page 24: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 25: Milieu Approach for Software Development for the PCA Program

Step 1: Application Modeling

• System design using GME2000– Graphical modeling tool– Graphically design component

hierarchy

• Define design alternatives

• Specify metadata for each component

• Export model using XML format

XMLExported from GME

IRT SystemModeling in GME

Meta-ModelDesign

System ModelDesign

Page 26: Milieu Approach for Software Development for the PCA Program

Step 2: Model Processing

• Parse the XML representation of the model

• Traverse model component hierarchy and retrieve metadata specification of each component

• Dynamically generate makefiles for intermediate code generation and compilation

Parsing

XMLExported from GME

UDMProcessor

XMLProcessor

Make Fileto Generate

Intermediate Code

Page 27: Milieu Approach for Software Development for the PCA Program

Step 3: Intermediate Code

• “High-level Compiler”• Generate the intermediate code for IRT system• Matlab is end-user programming environment• C is the intermediate environment• Translate IRT source from Matlab to C

IRT High-level Compiler

IRT IntermediateSource Code

in C

IRT High-Level

Source Codein Matlab

Page 28: Milieu Approach for Software Development for the PCA Program

Step 4: Binaries

• “Low-level Compiler”• Compile the intermediate code (C code)• Generate architecture-specific executable

binaries• Metadata is expected to be interpreted and

generated for resource management at this level

IRT High-level Compiler

IRT Architecture

Specific Binaries

IRT IntermediateSource Code

in C

Page 29: Milieu Approach for Software Development for the PCA Program

Scheduling Problem

• Non-preemptive schedules for parallel soft real-time applications represented as DAGs

• Metadata specifies execution time probability distributions of tasks (computation and communication)

• Metadata specifies task precedence

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Task Execution Time (ticks)

Pro

bab

ilit

y

Probability 0 0 0 0.05 0.15 0.3 0.25 0.16 0.05 0.03 0.01 0

0 1 2 3 4 5 6 7 8 9 10 11

Page 30: Milieu Approach for Software Development for the PCA Program

Schedules

v4 (2,1/3)(3,1/3)(4,1/3)

v3 (2,1/3)(3,1/3)(4,1/3)

v1 (7,1/3)(8,1/3)(9,1/3)

v0 (4,1/3)(5,1/3)(6,1/3)

v2 (1,1/3)(2,1/3)(3,1/3)

(1,1/3)(2,1/3)(3,1/3)

(7,1/3)(8,1/3)(9,1/3)

(7,1/3)(8,1/3)(9,1/3)

(1, 0.5)(2, 0.35) (3, 0.05)(4, 0.05) (5, 0.05)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 p0 s0 p1

r1

p2 s2

pn: processor n sn: outgoing communication link at processor n rn: incoming communication link at processor n

v0

v1 v3

v4

v2

(v0, v3)

(v0, v3) (v2, v4)

(v2, v4)

Time

Page 31: Milieu Approach for Software Development for the PCA Program

Scheduling Options

0.70

0.80

0.95

0.96

0.97

0.98

0.99

0.99

90.

9999

0.99

999

0.99

9999

0.99

9999

99

0.99

9999

999

1.00

JC=

0.00

, JF

=28

.060

2

JC=

0.10

, JF

=9.

3571

1

JC=

0.20

, JF

=5.

3483

7

JC=

0.30

, JF

=3.

6519

JC=

0.40

, JF

=2.

7249

6

JC=

0.50

, JF

=2.

1541

7

JC=

0.60

, JF

=1.

7811

3

JC=

0.70

, JF

=1.

5057

9

JC=

0.80

, JF

=1.

2964

5

JC=

0.90

, JF

=1.

1356

4

JC=

1.00

, JF

=1

0

0.2

0.4

0.6

0.8

1

Co

mp

ress

ion

Deadline Probability

Jitter

Page 32: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 33: Milieu Approach for Software Development for the PCA Program

Future Work - I

• Extend build chain demonstration for a parallel application using MPI on a cluster of dual Xeons with Linux– GME2000 metamodel– Multiple component implementations with

parametric/predictive metadata– Metacode parsing and processing– Code generation, compilation, and linking– Application initiated software morphs– Fault handling

Page 34: Milieu Approach for Software Development for the PCA Program

Future Work -II

• Continue to contribute to the MSI forum– Metamodeling specification– Metadata specification– APIs

• MPI• VSIPL

– Compiler and build chain tool interaction– VM specifications

Page 35: Milieu Approach for Software Development for the PCA Program

Organization

• Goals• Software Architecture• Build Chain• Metadata• Dynamic Resource Management• Software Components• Prototype Results• Future Work• Conclusion

Page 36: Milieu Approach for Software Development for the PCA Program

Conclusion

• Conceptual architecture for PCA software• Developed prototype build chain tools

– Matlab– C++, MPI, VSIPL

• Working with the MSI forum to specify– Software interfaces– Metadata elements and organization– Component organization– Tool interactions