gsrc

117
DUSD(Labs) GSRC GSRC bX update bX update December 2002 December 2002 Aaron Ng, Marius Eriksen and Aaron Ng, Marius Eriksen and Igor Markov Igor Markov University of Michigan University of Michigan

Upload: tayten

Post on 14-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

GSRC. bX update December 2002 Aaron Ng, Marius Eriksen and Igor Markov University of Michigan. Context. The C.A.D. and the Fabrics themes are trying to identify obstacles to UDSM design and intercept them early - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: GSRC

DUSD(Labs)

GSRCGSRC

bX updatebX updateDecember 2002December 2002

Aaron Ng, Marius Eriksen and Igor MarkovAaron Ng, Marius Eriksen and Igor MarkovUniversity of MichiganUniversity of Michigan

Page 2: GSRC

12/09/02 2

ContextContext

The C.A.D. and the Fabrics themes are trying to The C.A.D. and the Fabrics themes are trying to identifyidentify

obstacles to UDSM design and intercept them earlyobstacles to UDSM design and intercept them early

The The Bookshelf / Bookshelf.exeBookshelf / Bookshelf.exe projects deal with projects deal with

the scalability of design technologies the scalability of design technologies Design Design time & costtime & cost depend on tools and environments depend on tools and environments

Availability of tools; Benchmarking; LimitationsAvailability of tools; Benchmarking; Limitations Interfacing and chainingInterfacing and chaining

Design Design time & costtime & cost depend on the required level of expertise depend on the required level of expertise

Design Design time & costtime & cost depend on the degree of reuse depend on the degree of reuse

Page 3: GSRC

12/09/02 3

OutlineOutline

ContributionsContributions

FeaturesFeatures

DemoDemo

ImplementationImplementation

Challenges, limitations and future focusChallenges, limitations and future focus

Page 4: GSRC

12/09/02 4

ContributionsContributions

1.1. Automation Automation • enabling large-scale computational experimentsenabling large-scale computational experiments

and production tool runsand production tool runs• reducing required effort, level of expertisereducing required effort, level of expertise

and level of commitmentand level of commitment• scheduling tool runs according to methodologiesscheduling tool runs according to methodologies• minimizing redundant input, increasing reuse and sharingminimizing redundant input, increasing reuse and sharing• performing sanity checksperforming sanity checks• reporting results of tool runs online (publicly or not)reporting results of tool runs online (publicly or not)

Page 5: GSRC

12/09/02 5

AnalogyAnalogy

The GSRCbookshelf

to

is like a disk to a computer

Bottom-up

Top-down

Page 6: GSRC

12/09/02 6

ContributionsContributions (cont’d) (cont’d)

2.2. Abstract representation of design flowsAbstract representation of design flows unnecessary details are hidden, handled by bXunnecessary details are hidden, handled by bX

(e.g., (e.g., file locationsfile locations)) easy composition and evaluation of complex flowseasy composition and evaluation of complex flows users users can spend more time on design and evaluationcan spend more time on design and evaluation,,

less time on book-keeping and maintenanceless time on book-keeping and maintenance

flexibility and ease of reuseflexibility and ease of reuse flows are abstracted from their application flows are abstracted from their application easier to reuse easier to reuse abstraction and reuse expose computational parallelismabstraction and reuse expose computational parallelism

Page 7: GSRC

12/09/02 7

ContributionsContributions (cont’d) (cont’d)

3.3. EncapsulationEncapsulation• solvers and designs (design benchmarks)solvers and designs (design benchmarks)

may be submitted in multiple files,may be submitted in multiple files,but bX treats them as single entitiesbut bX treats them as single entities

• flowsflows manipulated by bX as single entitiesmanipulated by bX as single entities flows can be composed of jobs or other (sub)-flowsflows can be composed of jobs or other (sub)-flows

• support for high-level concepts: users, dependencies, etcsupport for high-level concepts: users, dependencies, etc• security concerns about CAD IP can be addressedsecurity concerns about CAD IP can be addressed

Page 8: GSRC

12/09/02 8

ContributionsContributions (cont’d) (cont’d)

4.4. Improved reproducibility of resultsImproved reproducibility of results• shared repositoryshared repository

documentation, experimental methodologiesdocumentation, experimental methodologies results of experimentsresults of experiments

• shared shared executable infrastructureexecutable infrastructure ““live” solverslive” solvers benchmarksbenchmarks reusable scriptsreusable scripts

Page 9: GSRC

12/09/02 9

FeaturesFeatures

Automation of comput. experiments and reporting of resultsAutomation of comput. experiments and reporting of results

Script ComposerScript Composer for for design flow prototypingdesign flow prototyping

““Sandbox” execution of experiments for securitySandbox” execution of experiments for security

Encapsulation + automatic installation of SW & benchmarksEncapsulation + automatic installation of SW & benchmarks transparent handling of transparent handling of multi-file tar.gz packagesmulti-file tar.gz packages solver uploadssolver uploads: binaries or: binaries or source code in tar.gz with Makefile source code in tar.gz with Makefile benchmark uploadsbenchmark uploads: single files or : single files or tar.gz packagestar.gz packages

Encapsulation of intermediate resultsEncapsulation of intermediate results jobs can have multiple inputs and outputsjobs can have multiple inputs and outputs chaining jobs requires an addressing scheme for inputs and outputschaining jobs requires an addressing scheme for inputs and outputs

Page 10: GSRC

12/09/02 10

FeaturesFeatures (cont’d) (cont’d)

Distributed network of computational hosts Distributed network of computational hosts

exploits the inherent parallelism exposed by reuseexploits the inherent parallelism exposed by reuse load-balancing and load distributionload-balancing and load distribution

policy constraints: policy constraints: access to resources and usage limitsaccess to resources and usage limits

scalabilityscalability: computational hosts can be easily added/removed: computational hosts can be easily added/removed

automatic detection of parallelism in new flowsautomatic detection of parallelism in new flows

Page 11: GSRC

12/09/02 11

DemoDemo

Step-by-step demonstration of a flow in bX, involving:Step-by-step demonstration of a flow in bX, involving: solver MetaPl_Caposolver MetaPl_Capo (VLSI placer), submitted as a (VLSI placer), submitted as a Linux binaryLinux binary

VLSI placement VLSI placement benchmark C432benchmark C432 in tar.gz formin tar.gz form

VLSI placement VLSI placement benchmark Intelbenchmark Intel in tar.gz formin tar.gz form

images of routing congestionimages of routing congestion ( (horizontalhorizontal, , verticalvertical and and combinedcombined))

Example of a script and its reuseExample of a script and its reuse

A look at the Script Composer back-endA look at the Script Composer back-end

Page 12: GSRC

this arrow will be our mouse cursor

throughout the demo

Page 13: GSRC

select the Accounts main menu

Page 14: GSRC

select the registration sub menu and create

a new account for user test

Page 15: GSRC
Page 16: GSRC

select the login main menu and authenticate

Page 17: GSRC
Page 18: GSRC

select the Jobs main menu

Page 19: GSRC

select the submit solver sub menu and upload the

MetaPl_Capo solver

Page 20: GSRC
Page 21: GSRC

Select the submit benchmark sub menu and upload the

C432 benchmark.

Multiple files can be uploaded in a tar.gz package, and bX handles this transparently.

Page 22: GSRC
Page 23: GSRC

Select the submit benchmark sub menu and upload the Intel

benchmark.

This benchmark is also a multi-file tar.gz package.

Page 24: GSRC
Page 25: GSRC

select the submit solver sub menu and upload the

xpm2gif converter

Page 26: GSRC
Page 27: GSRC

select the check status sub menu to check our

account status

Page 28: GSRC

Compose a script in terms of Script Composer API. The script will be uploaded to bX.

Our sample script describes a flow that involves 1 main job and 3 post processing jobs.

Page 29: GSRC

select the submit solver sub menu and upload the script we

just created

Page 30: GSRC
Page 31: GSRC

Create 2 script inputs that will be used to instantiate the script created earlier.

One script input runs a flow on the C432 benchmark and the other runs a

flow on the Intel benchmark.

Page 32: GSRC

select the submit benchmark sub menu and upload the

Intel script input

Page 33: GSRC
Page 34: GSRC

select the submit benchmark sub menu and upload the

C432 script input

Page 35: GSRC
Page 36: GSRC

select the check status sub menu to take a look at

what we have in our account now

Page 37: GSRC

select the start/stop jobs sub menu and start a flow with the C432 benchmark

Page 38: GSRC
Page 39: GSRC

select the check status sub menu to monitor the flow’s progress

Page 40: GSRC

the main job finishes; the 3 post-processing jobs are enqueued

Page 41: GSRC

the 1st post-processing job finishes; the next

one is started

Page 42: GSRC
Page 43: GSRC

the flow finishes; follow the output link to view

the flow’s outputs

Page 44: GSRC

bX automatically captures the stdout and stderr

outputs of a job, as well as all the files created in its

working directory.

A flow’s output is a combination of the outputs of the script and all the jobs

executed in the flow.

The file names are prefixed with the job_id to avoid

name collisions.

Page 45: GSRC

these are the outputs of the MetaPl_Capo solver

Page 46: GSRC

these are the outputs of the 1st post-processing

job (xpm-to-gif conversion)

Page 47: GSRC

these are the outputs of the 2nd post-processing

job (xpm-to-gif conversion)

Page 48: GSRC

these are the outputs of the 3rd post-processing

job (xpm-to-gif conversion)

Page 49: GSRC

these are the outputs of the script

Page 50: GSRC

In the case of the MetaPl_Capo solver,

one of the outputs is a color image of routing

congestion.

Page 51: GSRC
Page 52: GSRC

let’s take a look at the C432 horizontal

congestion

Page 53: GSRC
Page 54: GSRC

let’s take a look at the C432 vertical

congestion

Page 55: GSRC
Page 56: GSRC

select the start/stop jobs sub menu and start a flow with the

Intel benchmark

Page 57: GSRC
Page 58: GSRC
Page 59: GSRC

the main job finishes; the 3 post-processing jobs are enqueued

Page 60: GSRC
Page 61: GSRC
Page 62: GSRC

the flow finishes; follow the output link to view

the flow’s outputs

Page 63: GSRC

click to look at the Intel flow’s XY

routing congestion image output

Page 64: GSRC
Page 65: GSRC

click to look at the Intel horizontal

congestion

Page 66: GSRC
Page 67: GSRC

click to look at the Intel vertical congestion

Page 68: GSRC
Page 69: GSRC

we can also check the output of a single job in the flow.

Click to look at the outputs of the job where the

MetaPl_Capo solver was run with the C432 benchmark

Page 70: GSRC

select the job’s stdout output

Page 71: GSRC
Page 72: GSRC

click to look at the outputs of the job where the

MetaPl_Capo solver was run with the Intel

benchmark

Page 73: GSRC

check stdout output

Page 74: GSRC
Page 75: GSRC

12/09/02 75

ImplementationImplementation

bX is composed of 3 entities:bX is composed of 3 entities:

VicereineVicereine

DiplomatDiplomat

Script ComposerScript Composer

Page 76: GSRC

12/09/02 76

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Page 77: GSRC

12/09/02 77

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Programs submitted by users; Vicereine stores them in its file system as compatibleexecutables.

Information associated with object:• object ID• type• state• name• freestyle description• URL of availability• ID of owner• ID of group• permissions• ‘last accessed’ time• compatible architectures

Page 78: GSRC

12/09/02 78

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Data submitted by users; Vicereine stores them in its file system as regularfiles.

Information associated with object:• object ID• type• state• name• freestyle description• URL of availability• ID of owner• ID of group• permissions• ‘last accessed’ time• compatible architectures

Page 79: GSRC

12/09/02 79

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Users in the bX database. Users can beregistered, or anonymous.

Information associated with object:• object ID• name• password• email address• ‘last accessed’ time

Page 80: GSRC

12/09/02 80

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

An object describing the execution of a solver on (a) benchmark(s).

Information associated with object:• object ID• type• state• solver ID• input ID• input type• output ID• URL of solver• URL of input• runtime parameters for solver• URL of output• ID of owner• ID of group• ID of host that job is assigned to• permissions• runtime limits• email address of owner• ‘last accessed/scheduled’ time• statistics

Page 81: GSRC

12/09/02 81

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Computational hosts registered to bX.Hosts that register supply informationabout themselves. This information is used by Vicereine’s job scheduler.

Information associated with object:• object ID• IP address• URL of availability• host’s level of ‘willingness’• ‘last accessed’ time• system info

Page 82: GSRC

12/09/02 82

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

User groups in the bX database.

Information associated with object:• object ID• name• access permissions to be inherited by

group members• runtime limits to be inherited by group

members

Page 83: GSRC

12/09/02 83

Vicereine’s objects:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Membership relationships between usersand groups.

Information associated with object:• user ID• group ID

Page 84: GSRC

12/09/02 84

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Page 85: GSRC

12/09/02 85

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• upload/add/submit• remove

Page 86: GSRC

12/09/02 86

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• upload/add/submit• remove

Page 87: GSRC

12/09/02 87

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• register• authenticate• get status• modify account

Page 88: GSRC

12/09/02 88

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• start• stop• query• update status

Page 89: GSRC

12/09/02 89

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• register/add

Page 90: GSRC

12/09/02 90

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• add• remove• change permissions• change limits

Page 91: GSRC

12/09/02 91

Vicereine administration:

• solvers• benchmarks• users• jobs• hosts• groups• memberships

Actions associated with object:• add• remove

Page 92: GSRC

12/09/02 92

Diplomat’s objects:

• jobs

Page 93: GSRC

12/09/02 93

Diplomat’s objects:

• jobs

Jobs dispatched from Vicereine to Diplomat. Diplomat executes the job, and

reports back to Vicereine when done.

Information associated with object:• object ID• type• state• solver ID• input ID• input type• output ID• URL of solver• URL of input• runtime parameters for solver• URL of output• ID of host that job is assigned to• runtime limits• email address of owner• statistics

Page 94: GSRC

12/09/02 94

Diplomat administration:

• jobs

Page 95: GSRC

12/09/02 95

Diplomat administration:

• jobs Actions associated with object:• start• stop• query

Page 96: GSRC

12/09/02 96

Interaction:

vicereine

diplomat

diplomat

diplomat

user

Page 97: GSRC

12/09/02 97

Flows:

user User creates a script by specifying Jobs to run and explicit dependencies between Jobs.

vicereine

diplomat

diplomat

diplomat

Page 98: GSRC

12/09/02 98

Flows:

vicereine

diplomat

diplomat

diplomat

user

1) User creates a script with Script Composer

scrip

t com

pose

r

For Example:

Page 99: GSRC

12/09/02 99

Flows:

vicereine

diplomat

diplomat

diplomat

user

2) The script is submitted to bX

scrip

t

scrip

t com

pose

r

Page 100: GSRC

12/09/02 100

Flows:

vicereine

diplomat

diplomat

diplomat

user

3) User makes a request to vicereine to start the flow

scrip

t

Page 101: GSRC

12/09/02 101

Flows:

vicereine

diplomat

diplomat

diplomat

user

4) The script is sent to a diplomat to be executed

scrip

t

Page 102: GSRC

12/09/02 102

Flows:

vicereine

diplomat

diplomat

diplomat

user

5) The flow executes the first node. A request is made to Vicereine to start the job.

Page 103: GSRC

12/09/02 103

Flows:

vicereine

diplomat

diplomat

diplomat

user

6) The flow will then poll Vicereine to check if the job has completed.

(poll)

Page 104: GSRC

12/09/02 104

Flows:

vicereine

diplomat

diplomat

diplomat

user

7) Vicereine dispatches the job to a diplomat.

(poll)

Page 105: GSRC

12/09/02 105

Flows:

vicereine

diplomat

diplomat

diplomat

user

8) Diplomat reports job completion.

(poll)

Page 106: GSRC

12/09/02 106

Flows:

vicereine

diplomat

diplomat

diplomat

user

9) When the job completes, the flow retrieves results and updates book-keeping information.

Page 107: GSRC

12/09/02 107

Flows:

vicereine

diplomat

diplomat

diplomat

user

10) More jobs can be launched.

Page 108: GSRC

12/09/02 108

Flows:

vicereine

diplomat

diplomat

diplomat

user

11) Vicereine’s scheduler dispatches the jobs.

(poll)

Page 109: GSRC

12/09/02 109

Flows:

vicereine

diplomat

diplomat

diplomat

user

12) And so on…

Page 110: GSRC

12/09/02 110

Flows:

vicereine

diplomat

diplomat

diplomat

user

13) And so on…

Page 111: GSRC

12/09/02 111

Flows:

vicereine

diplomat

diplomat

diplomat

user

14) And so on…

Page 112: GSRC

12/09/02 112

Flows:

vicereine

diplomat

diplomat

diplomat

user

15) The flow is completed. The flow reports its completion to Vicereine.

Page 113: GSRC

12/09/02 113

Flows:

vicereine

diplomat

diplomat

diplomat

user

16) The results of the flow and individual jobs are posted.

Page 114: GSRC

12/09/02 114

Challenges, limitations and future focusChallenges, limitations and future focus

Large-scale flows and further automation of their managementLarge-scale flows and further automation of their management via via Script ComposerScript Composer

step-by-step GUI – high level interface; step-by-step GUI – high level interface; no knowledge of PERL necessaryno knowledge of PERL necessary

Improvements to the existing, simplistic job schedulerImprovements to the existing, simplistic job scheduler

Support for type checking and Support for type checking and automatic learningautomatic learning of file types of file types

Make the bX callback layer multi-threaded Make the bX callback layer multi-threaded currently only one RPC request can be serviced at a timecurrently only one RPC request can be serviced at a time

by Diplomat and Vicereineby Diplomat and Vicereine

Page 115: GSRC

12/09/02 115

Challenges, limitations and future focusChallenges, limitations and future focus (cont’d)(cont’d)

Improved, customizable presentation of job resultsImproved, customizable presentation of job results

Support for multiple Support for multiple types of computational hoststypes of computational hosts different architectures and system configurationsdifferent architectures and system configurations

Support for user-supplied, plug-in evaluation and reporting Support for user-supplied, plug-in evaluation and reporting

methodologiesmethodologies more detailed experimental resultsmore detailed experimental results

flow health monitoring, self-healing flowsflow health monitoring, self-healing flows

Planned security featuresPlanned security features e.g., SSL for bX’s http communications & xml-rpc request filteringe.g., SSL for bX’s http communications & xml-rpc request filtering

Page 116: GSRC

12/09/02 116

Challenges, limitations and future focusChallenges, limitations and future focus (cont’d)(cont’d)

Check-pointing of distributed jobs and self-healingCheck-pointing of distributed jobs and self-healing support for migration of suspended jobssupport for migration of suspended jobs

from a crashed computational host to another computational hostfrom a crashed computational host to another computational host

Back-up / restore functionalityBack-up / restore functionality

Metering and metricizing bX Metering and metricizing bX

Distributions of bX for CD-distributionDistributions of bX for CD-distribution

among GSRC member companies among GSRC member companies

Page 117: GSRC

12/09/02 117

Do We Care About OpenAccess ?Do We Care About OpenAccess ?

OpenAccess API should enableOpenAccess API should enable

a single design-through-manufacturing data modela single design-through-manufacturing data model (UDM) (UDM)

How can we not care?How can we not care?

Mark Hahn, Cadence: Mark Hahn, Cadence: OpenAccess and UDM OpenAccess and UDM can enable can enable in-memory integration in-memory integration

This can, in principle,This can, in principle, be supported in bX be supported in bX