“ ”: executable extensions of the bookshelf marius eriksen and igor markov university of...

30
“Bookshelf.exe”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Upload: paulina-mckinney

Post on 19-Jan-2018

221 views

Category:

Documents


0 download

DESCRIPTION

Making the Bookshelf More Dynamic Existing bookshelf: –A static collection of data and implementations –Manual addition of material –No automatic evaluations, reporting of results Those limitations are not fundamental –Artifacts of the current implementation Proposal for improvement: “Bookshelf.exe”

TRANSCRIPT

Page 1: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

“Bookshelf.exe”: Executable Extensions of the Bookshelf

Marius Eriksen and Igor MarkovUniversity of Michigan, EECS

Page 2: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Outline• Making the bookshelf more dynamic

– Implementations + data = algorithm evaluations– Potentially more than that…

• Related efforts– SatEx, PUNCH, NEOS, OmniFlow

• Proposed solution: ``Bookshelf.exe’’– Services offered:

• online execution, ASP, sharing of results, flow scripting,…– Interfaces

• Support for optimization-specific concepts• Power versus ease-of-use and modularity

– Architecture and implementation details

Page 3: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Making the Bookshelf More Dynamic

• Existing bookshelf:– A static collection of data and implementations– Manual addition of material– No automatic evaluations, reporting of results

• Those limitations are not fundamental– Artifacts of the current implementation

• Proposal for improvement: “Bookshelf.exe”

Page 4: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Related Efforts • SatEx http://www.lri.fr/~simon/satex/satex.php3

– Specialized in satisfiability problems• PUNCH http://punch.ece.purdue.edu

– Very broad selection of software• From StarOffice and gnulot to Capo and Feng Shui

– Local to Purdue Univ.• NEOS http://www-neos.mcs.anl.gov/neos

– Open-source, distributed architecture– Used primarily for linear and non-linear optimization

• OmniFlow: DAC 2001, Brglez and Lavana– http://www.cbl.ncsu.edu/OpenProjects/OmniFlow– Distributed Collaborative Design Framework for VLSI– GUI-based flow control, chaining of design tools

Page 5: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

SatEx• Continual evaluation and ranking of submitted

implementations– Results produced and posted on the Web automatically– Intuitive interface

• Popular– 93,707 hits since March, 2000– 23 SAT provers, 32,610 executions

• Limited scalability– Runs on one workstation – 529 days, 17 hours, 53 minutes and 20 seconds of CPU

time– Specialized to one application

Page 6: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

PUNCH• Very general execution framework

– Everything from domain-specific algorithm implementations to GUI-based office applications

– Custom-designed filesystem (restricts to Purdue hosts)– 241,458 executions in 5 years

• 8,152 on VLSI CAD related applications– 20+ publications

• Only maintainer can add executables• No support for evaluation and chaining/flows

– No stats for results of runs (cf. “top 20” on SatEx )– No MIME-like data types (even IE/netscape need them!)

• Difficult to use when multiple tools are involved

Page 7: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

NEOS• Open-source, distributed framework• Wide use, a solid library of implementations• Adding new implementations requires maintainer

intervention (but less than on PUNCH)– Each new implementation must come with a host– Distributed maintenance

• Loose data typing– No type system for data and implementations

• Compare to MIME

Page 8: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

NEOS (what can be improved)

• Independent eval. and verification of results– E.g., PUNCH offers a WL-eval. From the bookshelf

• Real-time on-line reporting of results + stats• Provisions for chaining multiple

implementations– Scripts to control the execution and evaluation flows

• Provisions for pairing exec’s with benchmarks– Goal: SatEx-like evaluation,

but for multiple data types

Page 9: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

OmniFlow• Context: collaborative VLSI Design

– collaboration in terms of computational resources

– no provisions for sharing results on the Web• Distributed over multiple hosts• Provides GUI-based flow control

– supports chaining of design tools– several hard-coded conditions for flow control– no support for execution conditional on results– no scripting language; limited by GUI

• Cannot dynamically add hosts

Page 10: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Bookshelf.exe• Best of SatEx, PUNCH, NEOS and OmniFlow

– Reporting style similar to SatEx (+ alternatives)– The versatility of PUNCH– Scalability and distributed nature of NEOS (or better)– Flow control as in OmniFlow or better

• New features– MIME-like data types and optimization-specific concepts – Automatic submission of binaries and source code– Chaining of implementations; scripting for flow control– Support for use models with proprietary data or code

Page 11: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Bookshelf.exe (2)• Scalability

– Computation is distributed (unlike in SatEx)– Maintenance is automated (unlike in NEOS)

• Support for multiple use models– “adapts to users”– Multiple levels of expertise– Multiple levels of commitment – Sharing of public data– Hiding/protection of proprietary data– “Screen-saver” mode, similar to SETI@Home,

Entropia, etc

Page 12: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Bookshelf.exe (3)

• Provides basic algorithm evaluation infrastructure to research groups – Avoid large maintenance costs– Just as usable for larger groups

Page 13: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

End-user Interface

• Web site– Using CGI/PHP for interactive content and

database interaction– Submission through the web site (email is ok)– Dynamic addition of computation hosts– Stores data locally or uploads on demand– Automatic Web-based reports and statistics

Page 14: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

End-user Interface (2)• User accounts (including anonymous)

– Every user has private resource-limited “workspace” – Job submissions must be from accounts– Results of jobs stored on accounts– Anonymous jobs possible, but can use fewer resources

• users are encouraged to register

• Many policy questions (no roadblocks seen)– e.g., can different owners chain their jobs?

• Transparent error diagnostics– Greatly improves learning curve

Page 15: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

End-user Interface (3)

• Result notification (similar to NEOS)– E-Mail– Web reports

• Script composer for making run flows without needing to know a scripting language– less flexibility, but better learning curve– GUI implemented as form that POSTs scripts

Page 16: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Script Composer• HTML Form interface – basic flow with

fundamental predicates and functions– All API functions

• E.g. “run algorithm ‘optimizer 2’ and store the results”– Several common Perl functions– Conditional statements

• E.g. “verify if quality is more than 60”– Iteration support

• E.g. “iterate until quality is 100 or the number of iterations is 100”, “run randomized solver 3 timers, report the best result”

– Start with one ‘step’ – add an arbitrary number of steps

Page 17: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Optimization-specific Concepts in Bookhelf.exe

• Type system (similar to MIME) for all types of submissions

• Rules for matching submissions of different types– E.g., match a placer with a LEF/DEF benchmark

• Types include– Algorithm implementations

• Deterministic and randomized optimizers, etc.

– Input data, results– Common benchmarks

Page 18: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Architecture Overview

Page 19: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Component Types

• Where relevant, components also have types

• Data– Data format

• E.g. Cadence LEF/DEF, DIMACS CNF

• Implementations– Architecture (solaris, linux, ‘source code’, etc.)– Class (optimizer, randomized solver, etc.)

Page 20: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Component Descriptors• Unique id, name and description for each component• Owner field• Component history

– E.g. usage of a certain implementation, piece of data or benchmark

• Component specific fields– Associated expert for implementation, incremental diff for

data• Component version• Component changelog

Page 21: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Data Controller• Backing store

– Permanent storage of all involved components• Backed by database and file system

– Data, results suited for database– Implementations suited for file system storage

• Components may be deferred to local storage– Proprietary, non-disclosed components on a host owned

by the proprietor of the component• All data stored with complimentary descriptor

Page 22: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Job Controller• Responsible for communicating with and

controlling all agents (and thus jobs and implementations)

• Initiates jobs• Delivers user instructions• Handles data retrieval and storage

– Interfaces with data controller• Keeps track of node load, etc. for proper

distribution

Page 23: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Host Job Controller• Resides on each node in the distributed network

– Basic token of presence of DS-OSS• Reports statistics to job controller

– Load, memory usage• Signals when ready to take jobs• Launches agents as necessary• Performs self upgrades

– New software revisions, bugfixes

Page 24: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

The Agent

• Responsible for running job on node• Provides environment for script to run in

– API– Script sandbox/jail

• For security reasons– Provides common callbacks if not provided by

scripts• Data storage/retrieval

Page 25: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

The Agent (2)

• Input/Output of data from script• Job notification and control

– Start, stop, termination• Maintains local demands

– Resource usage– Stop on local demand

Page 26: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Scripts

• In Perl• Interfaces directly with an algorithm, or

expert handling it• API support

– Full Perl library– Job control functionality– Data storage and retrieval

Page 27: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

Scripts (2)

• Checks for conflicting input data types and algorithm input type– Generates appropriate, understandable errors

• A number of automatic tasks– Pass thru data storage (e.g. results of a single

run)– Can provide all steps automatically, leaving the

user to do exactly what he/she wants

Page 28: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

The Expert

• Wrappers for proprietary implementation interfaces– Knows how to deal with a particular interface

• E.g. command line options, configuration files– Translates from well known parameters

(specified from the API) to proprietary interface

Page 29: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

In Conclusion

• DSS-OS provides features that are missing in current systems– Existing systems are limited by their

architecture and thus cannot provide these needed features.

• Provides an infrastructure that is scalable– Computationally scalable– Scalable to proprietary vendors

Page 30: “ ”: Executable Extensions of the Bookshelf Marius Eriksen and Igor Markov University of Michigan, EECS

In Conclusion (2)

• Scripting support allows for flexible execution flows– Conditional flows, iterative flows

• Provides an established infrastructure for smaller research groups– Enjoying advantages that only large

proprietary, high-maintenance systems previously could provide.