Iktara in ConCert Realizing a Certified Grid Computing Framework from Programmer’s Perspective With the vast amount of computing resources distributed.

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Problems and Their Classes
Automated Verification with HIP and SLEEK Asankhaya Sharma.
Trustless Grid Computing in Bor-Yuh Evan Chang, Karl Crary, Margaret DeLap, Robert Harper, Jason Liszka, Tom Murphy VII, Frank Pfenning
22C:19 Discrete Structures Induction and Recursion Spring 2014 Sukumar Ghosh.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
UIUC CS 497: Section EA Lecture #2 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004.
Counting the bits Analysis of Algorithms Will it run on a larger problem? When will it fail?
March 4, 2005Susmit Sarkar 1 A Cost-Effective Foundational Certified Code System Susmit Sarkar Thesis Proposal.
1 Dependent Types for Termination Verification Hongwei Xi University of Cincinnati.
GENI: Global Environment for Networking Innovations Larry Landweber Senior Advisor NSF:CISE Joint Techs Madison, WI July 17, 2006.
 delivers evidence that a solution developed achieves the purpose for which it was designed.  The purpose of evaluation is to demonstrate the utility,
The Design and Implementation of a Certifying Compiler [Necula, Lee] A Certifying Compiler for Java [Necula, Lee et al] David W. Hill CSCI
Code-Carrying Proofs Aytekin Vargun Rensselaer Polytechnic Institute.
Advanced Topics in Algorithms and Data Structures Page 1 Parallel merging through partitioning The partitioning strategy consists of: Breaking up the given.
Proof-system search ( ` ) Interpretation search ( ² ) Main search strategy DPLL Backtracking Incremental SAT Natural deduction Sequents Resolution Main.
Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
The Architecture Design Process
1 Digital Logic
8/14/03ALADDIN REU Symposium Implementing TALT William Lovas with Karl Crary.
Designing Predictable and Robust Systems Tom Henzinger UC Berkeley and EPFL.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Mathematics throughout the CS Curriculum Support by NSF #
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
1-1 What is computer science? … the study of the theoretical foundations of information and computation and their implementation and application in computer.
1 Mathematical Institute Serbian Academy of Sciences and Arts, Belgrade DEUKS Meeting Valencia, September 9-11, 2008, Valencia New PhD modules proposal.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Outline Announcements: –Homework I on web, due Fri., 5PM by –Small error on homework –Wed and Fri in ACCEL, Attendance required –LAST DAY TO ADD/DROP!
The ConCert Project Peter Lee Carnegie Mellon University MRG Workshop May 2002.
Trustless Grid Computing in Bor-Yuh Evan Chang, Karl Crary, Margaret DeLap, Robert Harper, Jason Liszka, Tom Murphy VII, Frank Pfenning
What does a computer program look like: a general overview.
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
1 Generating FSMs from Abstract State Machines Wolfgang Grieskamp Yuri Gurevich Wolfram Schulte Margus Veanes Foundations of Software Engineering Microsoft.
Towards Automatic Verification of Safety Architectures Carsten Schürmann Carnegie Mellon University April 2000.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Logic in Computer Science - Overview Sep 1, 2009 박성우.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Parallel and Distributed Simulation Time Parallel Simulation.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
At what level do I trust the outcomes of the model? Verification Calibration Validation Exploration of the model structure. the activity of adjusting the.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Computer Systems Laboratory Stanford University Clark W. Barrett David L. Dill Aaron Stump A Framework for Cooperating Decision Procedures.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
 System Requirement Specification and System Planning.
Certifying and Synthesizing Membership Equational Proofs Patrick Lincoln (SRI) joint work with Steven Eker (SRI), Jose Meseguer (Urbana) and Grigore Rosu.
Maths No Problem; A Mastery Approach.
Sub-fields of computer science. Sub-fields of computer science.
Theorem Proving Algorithm
Lecture 3 Prescriptive Process Models
John D. McGregor Session 9 Testing Vocabulary
Design rationale and status of the org.glite.overlay component
CCIE Data Center Lab.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Session 9 Testing Vocabulary
Cirquent calculus Episode 15 About cirquent calculus in general
The ConCert Project Trustless Grid Computing
Language-based Security
Chapter 29: Program Security
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
MapReduce: Simplified Data Processing on Large Clusters
From Use Cases to Implementation
Presentation transcript:

Iktara in ConCert Realizing a Certified Grid Computing Framework from Programmer’s Perspective With the vast amount of computing resources distributed throughout the world today, the prospect of effectively harnessing these resources has captivated the imaginations of many and motivated both industry and academia to pursue this dream. In recent years, we have seen numerous organizations desperately seeking resource donors. Part of the difficulty with obtaining resources is the establishment of trust between the distributed- application developer and the resource donors. Because donors often receive little or no direct reward for their contributions, they vehemently demand safety, security, and privacy assurances. To address this issue, the ConCert project (to which this specific undertaking contributes) seeks to develop the theoretical and engineering foundation for grid computing in a trustless setting based on the notion of certified code. We believe that this is the best means to create a grid infrastructure that allows application developers to propagate their software to as many hosts as possible and maximize the exploitation of these resources. In this project, we seek to drive an initial implementation of a real framework for the distribution and verification of software from a programmer’s perspective. Specifically, we search for a reasonable and effective model for programming the grid. To better understand the design space of such a framework and programming model, we perform a case study on a specific application, namely a parallel theorem prover for linear logic (Iktara), which imposes a unique and guiding set of requirements. Such a development process aims to both inspire new ideas and to expose current problems. Bor-Yuh Evan Chang Advisors: Professor Robert Harper and Professor Frank Pfenning ConCert Project Webpage My Presentation 3:00pm, Class of ’87 Room 3:00pm, Class of ’87 Room Margaret DeLap (senior, SCS) Implementing a Framework for Certified Grid Computing Implementing a Framework for Certified Grid Computing Presentation: 1:20pm, Dowd Room Poster Jason Liszka (senior, SCS) Trustless Grid Raytracing Trustless Grid RaytracingPoster Resource Donors OR TAL Results ResearcherResource Donors ConCert Suppose you have an ingeniously crafted massively parallelized algorithm to solve some problem. You would like use all the “wasted” computing resources of the Internet. Problem: How does a resource donor know you are a benevolent researcher and not an evil hacker? The ConCert project proposes to use certified code to resolve this issue of trust. Each program comes with a mathematical proof that the program adheres to the resource donor’s safety, security, and privacy policies. The ConCert project seeks to develop programming language and type theoretic technology for Grid Computing in a trustless setting. My Contribution Goals Make apparent the current shortcomings. Make apparent the current shortcomings. Drive the framework to a more robust and stable state. Drive the framework to a more robust and stable state. Better understand the requirements from a programmer’s perspective. Better understand the requirements from a programmer’s perspective. Design a programming model based on these observations. Design a programming model based on these observations. What Application? A bottom-up parallel theorem prover for intuitionistic linear logic A bottom-up parallel theorem prover for intuitionistic linear logic Idea:The process of developing a substantial application using the ConCert framework will help us better understand the requirements on the framework and how to program in such an environment. Prover Integrate with ConCert software. Integrate with ConCert software. Programming Model Implement compiler. Implement compiler. Find how to determine if or ensure that data is marshalable. Find how to determine if or ensure that data is marshalable. Are there more primitive constructs ? Are there more primitive constructs ? Future Work Focusing [Andreoli ’92][Pfenning ’01] Refinement of the plain sequent calculus to reduce the non-determinism in proof search Refinement of the plain sequent calculus to reduce the non-determinism in proof search Advantageous for parallelization by concentrating several non-deterministic choices into one place Advantageous for parallelization by concentrating several non-deterministic choices into one place Procedure: Procedure: first apply invertible rules eagerly select a “focus” proposition and apply non- invertible rules until reach an atom or an invertible connective upon reaching an atom, proof attempt either fails or succeeds Resource-distribution via Boolean constraints [Harland and Pym ’01] Method to postpone the distribution of resources for multiplicative connectives Method to postpone the distribution of resources for multiplicative connectives Represent constraints using OBDDs (Ordered Binary Decision Diagrams) Represent constraints using OBDDs (Ordered Binary Decision Diagrams) Theorem Proving Algorithm DirectionofSearch Sequential ImplementationParallel Implementation Use Parallelism Here Focusing With Tom Murphy, Margaret DeLap, and Jason Liszka, we seek to develop a real framework to: Motivate theoretical work Motivate theoretical work Provide a source of technical ideas and problems to solve Provide a source of technical ideas and problems to solve Provide a testbed for implementation Provide a testbed for implementation Margaret and Jason Low-level to discover implementation issues. Low-level to discover implementation issues. Evan and Tom High-level to discover programming issues. High-level to discover programming issues. ConCert Framework Job:A whole-program that is injected into the network from the command-line. The unit of computation from the grid application user’s point of view. Task: The unit of computation from the programmer’s point of view. Consists of a piece of closed code along with its arguments. Cord: The unit of computation scheduled by the ConCert software. (* mergesort : int list * int -> int list *) funmergesort (l, cutoff) = letval (lt, md, rt) = (* … split l into three parts … *) inif (length l <= cutoff) then (* … do mergesort sequentially … *) (* … do mergesort sequentially … *) else let else let (* Start sorting each partition *) (* Start sorting each partition *) val t1 = inject true (mergesort, (lt, cutoff)) val t1 = inject true (mergesort, (lt, cutoff)) val t2 = inject true (mergesort, (md, cutoff)) val t2 = inject true (mergesort, (md, cutoff)) val t3 = inject true (mergesort, (rt, cutoff)) val t3 = inject true (mergesort, (rt, cutoff)) (* Get the results of the 3 child tasks. Start merging when 2 sorted lists have been received. *) (* Get the results of the 3 child tasks. Start merging when 2 sorted lists have been received. *) val (sort1, sort2) =letval (a, rest) = relax [t1,t2,t3] val (sort1, sort2) =letval (a, rest) = relax [t1,t2,t3] val (b, [last]) = relax rest val (b, [last]) = relax rest in (merge (a,b), sync last) end in (merge (a,b), sync last) end in in merge (sort1, sort2) merge (sort1, sort2)end signature CCTASKS = sig (* an 'r task is a computation yielding a (* an 'r task is a computation yielding a result of type 'r *) result of type 'r *) type 'r task type 'r task val inject: bool -> ('e -> 'r) * 'e -> 'r task val inject: bool -> ('e -> 'r) * 'e -> 'r task val enable: 'r task -> unit val enable: 'r task -> unit val sync: 'r task -> 'r val sync: 'r task -> 'r val syncall: 'r task list -> 'r list val syncall: 'r task list -> 'r list val relax: 'r task list -> 'r * 'r task list val relax: 'r task list -> 'r * 'r task list val forget : 'r task -> unit val forget : 'r task -> unit val status : 'r task -> CCStatus.status val status : 'r task -> CCStatus.statusend ML Interface Example: Mergesort Jobs, Tasks, and Cords Abstract More Information