Click here to load reader
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