gsrc
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 PresentationTRANSCRIPT
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
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
12/09/02 3
OutlineOutline
ContributionsContributions
FeaturesFeatures
DemoDemo
ImplementationImplementation
Challenges, limitations and future focusChallenges, limitations and future focus
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)
12/09/02 5
AnalogyAnalogy
The GSRCbookshelf
to
is like a disk to a computer
Bottom-up
Top-down
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
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
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
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
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
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
this arrow will be our mouse cursor
throughout the demo
select the Accounts main menu
select the registration sub menu and create
a new account for user test
select the login main menu and authenticate
select the Jobs main menu
select the submit solver sub menu and upload the
MetaPl_Capo solver
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.
Select the submit benchmark sub menu and upload the Intel
benchmark.
This benchmark is also a multi-file tar.gz package.
select the submit solver sub menu and upload the
xpm2gif converter
select the check status sub menu to check our
account status
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.
select the submit solver sub menu and upload the script we
just created
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.
select the submit benchmark sub menu and upload the
Intel script input
select the submit benchmark sub menu and upload the
C432 script input
select the check status sub menu to take a look at
what we have in our account now
select the start/stop jobs sub menu and start a flow with the C432 benchmark
select the check status sub menu to monitor the flow’s progress
the main job finishes; the 3 post-processing jobs are enqueued
the 1st post-processing job finishes; the next
one is started
the flow finishes; follow the output link to view
the flow’s outputs
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.
these are the outputs of the MetaPl_Capo solver
these are the outputs of the 1st post-processing
job (xpm-to-gif conversion)
these are the outputs of the 2nd post-processing
job (xpm-to-gif conversion)
these are the outputs of the 3rd post-processing
job (xpm-to-gif conversion)
these are the outputs of the script
In the case of the MetaPl_Capo solver,
one of the outputs is a color image of routing
congestion.
let’s take a look at the C432 horizontal
congestion
let’s take a look at the C432 vertical
congestion
select the start/stop jobs sub menu and start a flow with the
Intel benchmark
the main job finishes; the 3 post-processing jobs are enqueued
the flow finishes; follow the output link to view
the flow’s outputs
click to look at the Intel flow’s XY
routing congestion image output
click to look at the Intel horizontal
congestion
click to look at the Intel vertical congestion
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
select the job’s stdout output
click to look at the outputs of the job where the
MetaPl_Capo solver was run with the Intel
benchmark
check stdout output
12/09/02 75
ImplementationImplementation
bX is composed of 3 entities:bX is composed of 3 entities:
VicereineVicereine
DiplomatDiplomat
Script ComposerScript Composer
12/09/02 76
Vicereine’s objects:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
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
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
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
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
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
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
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
12/09/02 84
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
12/09/02 85
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• upload/add/submit• remove
12/09/02 86
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• upload/add/submit• remove
12/09/02 87
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• register• authenticate• get status• modify account
12/09/02 88
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• start• stop• query• update status
12/09/02 89
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• register/add
12/09/02 90
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• add• remove• change permissions• change limits
12/09/02 91
Vicereine administration:
• solvers• benchmarks• users• jobs• hosts• groups• memberships
Actions associated with object:• add• remove
12/09/02 92
Diplomat’s objects:
• jobs
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
12/09/02 94
Diplomat administration:
• jobs
12/09/02 95
Diplomat administration:
• jobs Actions associated with object:• start• stop• query
12/09/02 96
Interaction:
vicereine
diplomat
diplomat
diplomat
user
12/09/02 97
Flows:
user User creates a script by specifying Jobs to run and explicit dependencies between Jobs.
vicereine
diplomat
diplomat
diplomat
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:
12/09/02 99
Flows:
vicereine
diplomat
diplomat
diplomat
user
2) The script is submitted to bX
scrip
t
scrip
t com
pose
r
12/09/02 100
Flows:
vicereine
diplomat
diplomat
diplomat
user
3) User makes a request to vicereine to start the flow
scrip
t
12/09/02 101
Flows:
vicereine
diplomat
diplomat
diplomat
user
4) The script is sent to a diplomat to be executed
scrip
t
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.
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)
12/09/02 104
Flows:
vicereine
diplomat
diplomat
diplomat
user
7) Vicereine dispatches the job to a diplomat.
(poll)
12/09/02 105
Flows:
vicereine
diplomat
diplomat
diplomat
user
8) Diplomat reports job completion.
(poll)
12/09/02 106
Flows:
vicereine
diplomat
diplomat
diplomat
user
9) When the job completes, the flow retrieves results and updates book-keeping information.
12/09/02 107
Flows:
vicereine
diplomat
diplomat
diplomat
user
10) More jobs can be launched.
12/09/02 108
Flows:
vicereine
diplomat
diplomat
diplomat
user
11) Vicereine’s scheduler dispatches the jobs.
(poll)
12/09/02 109
Flows:
vicereine
diplomat
diplomat
diplomat
user
12) And so on…
12/09/02 110
Flows:
vicereine
diplomat
diplomat
diplomat
user
13) And so on…
12/09/02 111
Flows:
vicereine
diplomat
diplomat
diplomat
user
14) And so on…
12/09/02 112
Flows:
vicereine
diplomat
diplomat
diplomat
user
15) The flow is completed. The flow reports its completion to Vicereine.
12/09/02 113
Flows:
vicereine
diplomat
diplomat
diplomat
user
16) The results of the flow and individual jobs are posted.
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
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
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
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