Click here to load reader

Realizing a Certified Grid Computing Framework from ...bec/talks/thinkoutloud-poster.pdf · Realizing a Certified Grid Computing Framework from Programmer’s Perspective With the

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

  • Realizing a Certified Grid Computing Framework from Programmer’sRealizing a Certified Grid Computing Framework from Programmer’s PerspectivePerspective

    With the vast amount of computing resources distributed With the vast amount of computing resources distributed throughout the world today, the prospect of effectively harnessithroughout the world today, the prospect of effectively harnessing ng these resources has captivated the imaginations of many and these resources has captivated the imaginations of many and motivated both industry and academia to pursue this dream. In motivated both industry and academia to pursue this dream. In recent years, we have seen numerous organizations desperately recent years, we have seen numerous organizations desperately seeking resource donors. Part of the difficulty with obtaining seeking resource donors. Part of the difficulty with obtaining resources is the establishment of trust between the distributedresources is the establishment of trust between the distributed--application developer and the resource donors. Because donors application developer and the resource donors. Because donors often receive little or no direct reward for their contributionsoften receive little or no direct reward for their contributions, they , they vehemently demand safety, security, and privacy assurances. To vehemently demand safety, security, and privacy assurances. To address this issue, the address this issue, the ConCertConCert project (to which this specific project (to which this specific undertaking contributes) seeks to develop the theoretical and undertaking contributes) seeks to develop the theoretical and engineering foundation for grid computing in a trustless settingengineering foundation for grid computing in a trustless settingbased on the notion of certified code. We believe that this is based on the notion of certified code. We believe that this is the the best means to create a grid infrastructure that allows applicatibest means to create a grid infrastructure that allows application on developers to propagate their software to as many hosts as developers to propagate their software to as many hosts as possible and maximize the exploitation of these resources.possible and maximize the exploitation of these resources.

    In this project, we seek to drive an initial implementation of aIn this project, we seek to drive an initial implementation of areal framework for the distribution and verification of softwarereal framework for the distribution and verification of software from from a programmer’s perspective. Specifically, we search for a a programmer’s perspective. Specifically, we search for a reasonable and effective model for programming the grid. To reasonable and effective model for programming the grid. To better understand the design space of such a framework and better understand the design space of such a framework and programming model, we perform a case study on a specific programming model, we perform a case study on a specific application, namely a parallel theorem application, namely a parallel theorem proverprover for linear logic for linear logic ((IktaraIktara), which imposes a unique and guiding set of requirements. ), which imposes a unique and guiding set of requirements. Such a development process aims to both inspire new ideas and toSuch a development process aims to both inspire new ideas and toexpose current problems.expose current problems.

    BorBor--Yuh Evan ChangYuh Evan ChangAdvisors: Professor Robert Harper and Professor Frank Advisors: Professor Robert Harper and Professor Frank PfenningPfenning

    1

    (&!

    ⊗⊕ 0

    >

    ConCertConCert Project WebpageProject Webpage�� http://http://www.cs.cmu.eduwww.cs.cmu.edu/~concert//~concert/

    My PresentationMy Presentation�� 3:00pm, Class of ’87 Room3:00pm, Class of ’87 Room

    Margaret Margaret DeLapDeLap (senior, SCS)(senior, SCS)�� Implementing a Framework for Certified Implementing a Framework for Certified

    Grid ComputingGrid ComputingPresentation: 1:20pm, Dowd RoomPresentation: 1:20pm, Dowd RoomPosterPoster

    Jason Jason LiszkaLiszka (senior, SCS)(senior, SCS)�� Trustless Grid Trustless Grid RaytracingRaytracing

    PosterPoster

    MLΓ ` x : τ

    λ

    Resource Donors

    OR

    TAL

    Results

    Researcher Resource Donors

    ConCertConCertSuppose you have an ingeniously crafted massively Suppose you have an ingeniously crafted massively parallelized algorithm to solve some problem. You would like parallelized algorithm to solve some problem. You would like use all the “wasted” computing resources of the Internet.use all the “wasted” computing resources of the Internet.ProblemProblem: How does a : How does a resource donor resource donor know you are a know you are a benevolent researcher and not an evil hacker?benevolent researcher and not an evil hacker?

    The The ConCertConCert project proposes to use project proposes to use certified codecertified code to resolve to resolve this issue of trust.this issue of trust.Each program comes with a mathematical Each program comes with a mathematical proofproof that the that the program adheres to the resource donor’s safety, security, program adheres to the resource donor’s safety, security, and privacy policies.and privacy policies.

    The The ConCertConCert project seeks to develop programming language and type theoretiproject seeks to develop programming language and type theoretic technology for Grid Computing in a trustless setting.c technology for Grid Computing in a trustless setting.

    My ContributionMy Contribution

    GoalsGoals�� Make apparent the current Make apparent the current

    shortcomings.shortcomings.�� Drive the framework to a more robust Drive the framework to a more robust

    and stable state.and stable state.�� Better understand the requirements from Better understand the requirements from

    a programmer’s perspective.a programmer’s perspective.�� Design a programming model based on Design a programming model based on

    these observations.these observations.

    What Application?What Application?�� A A bottombottom--upup parallel theorem parallel theorem proverprover for for

    intuitionisticintuitionistic linear logiclinear logic

    IdeaIdea:: The process of developing a The process of developing a substantial application using the substantial application using the ConCertConCert framework will help us framework will help us better understand the requirements better understand the requirements on the framework and how to on the framework and how to program in such an environment.program in such an environment.

    ProverProver�� Integrate with Integrate with ConCertConCert software.software.

    Programming ModelProgramming Model�� Implement compiler.Implement compiler.�� Find how to determine if or ensure that Find how to determine if or ensure that

    data is data is marshalablemarshalable..�� Are there more primitive constructsAre there more primitive constructs??

    Future WorkFuture Work

    Focusing [Focusing [AndreoliAndreoli ’92][Pfenning ’01]’92][Pfenning ’01]�� Refinement of the plain sequent calculus to Refinement of the plain sequent calculus to

    reduce the nonreduce the non--determinism in proof searchdeterminism in proof search�� Advantageous for parallelization by Advantageous for parallelization by

    concentrating several nonconcentrating several non--deterministic deterministic choices into one placechoices into one place

    �� Procedure:Procedure:first apply invertible rules eagerlyfirst apply invertible rules eagerlyselect a “focus” proposition and apply nonselect a “focus” proposition and apply non--invertible rules until reach an atom or an invertible rules until reach an atom or an invertible connectiveinvertible connectiveupon reaching an atom, proof attempt either upon reaching an atom, proof attempt either fails or succeedsfails or succeeds

    ResourceResource--distribution via Boolean distribution via Boolean constraints constraints [Harland and Pym ’01][Harland and Pym ’01]�� Method to postpone the distribution of Method to postpone the distribution of

    resources for multiplicative resources for multiplicative connectivesconnectives

    �� Represent constraints using Represent constraints using OBDDsOBDDs(Ordered Binary Decision Diagrams)(Ordered Binary Decision Diagrams)

    Theorem Proving AlgorithmTheorem Proving Algorithm

    DirectionDirectionofof

    SearchSearch

    Sequential Implementation Parallel Implementation

    ApplyRight

    InvertibleRules

    ApplyLeft

    InvertibleRules

    Focus onthe Right

    � Inject Tasks� Wait for Results

    Focus onthe Left

    Use Parallelism Here

    FocusingFocusing

    With Tom Murphy, Margaret With Tom Murphy, Margaret DeLapDeLap, , and Jason and Jason LiszkaLiszka, we seek to develop , we seek to develop a real framework to:a real framework to:�� Motivate theoretical workMotivate theoretical work�� Provide a source of technical ideas and Provide a source of technical ideas and

    problems to solveproblems to solve�� Provide a Provide a testbedtestbed for implementationfor implementation

    Margaret and JasonMargaret and Jason�� LowLow--level to discover implementation level to discover implementation

    issues.issues.Evan and TomEvan and Tom�� HighHigh--level to discover programming level to discover programming

    issues.issues.

    ConCertConCert FrameworkFrameworkJobJob:: A wholeA whole--program that is injected program that is injected

    into the network from the into the network from the commandcommand--line. The unit of line. The unit of computation from the grid computation from the grid application user’s point of view.application user’s point of view.

    TaskTask: : The unit of computation from the The unit of computation from the programmer’s point of view. programmer’s point of view. Consists of a piece of closed Consists of a piece of closed code along with its arguments.code along with its arguments.

    CordCord: : The unit of computation The unit of computation scheduled by the scheduled by the ConCertConCertsoftware.software.

    (* (* mergesortmergesort : : intint list * list * intint --> > intint list *)list *)funfun mergesortmergesort (l, cutoff) =(l, cutoff) =

    letlet valval ((ltlt, , mdmd, , rtrt) = (* ) = (* … … split l into three partssplit l into three parts …… *)*)inin if (length l 'r) * 'e > 'r) * 'e --> 'r task > 'r task valval enableenable : 'r task : 'r task --> unit> unit

    valval syncsync : 'r task : 'r task --> 'r> 'rvalval syncallsyncall : 'r task list : 'r task list --> 'r list> 'r listvalval relaxrelax : 'r task list : 'r task list --> 'r * > 'r * 'r'r task listtask list

    valval forget : 'r task forget : 'r task --> unit> unitvalval status : 'r task status : 'r task --> > CCStatus.statusCCStatus.status

    endend

    ML InterfaceML Interface Example: Example: MergesortMergesort

    Jobs, Tasks, and CordsJobs, Tasks, and Cords

    AbstractAbstract More InformationMore Information