• No results found

Towards Programming in a Certified Grid Computing Framework

N/A
N/A
Protected

Academic year: 2022

Share "Towards Programming in a Certified Grid Computing Framework"

Copied!
14
0
0

Loading.... (view fulltext now)

Full text

(1)

Bor-Yuh Evan Chang

Advisors: Professors Robert Harper and Frank Pfenning Carnegie Mellon University

March 20, 2002

(2)

ConCert

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

(3)

ConCert

Vision: Distributed-application developer utilization of donated resources is completely transparent to the donator, but the donator is confident the specified safety, security, and privacy policies will not be violated.

(4)

ConCert Framework

With Tom Murphy, Margaret DeLap, and Jason Liszka, we seek to develop a real framework to:

• Motivate theoretical work

• Provide a source of technical ideas and problems to solve

• Provide a testbed for implementation

Margaret and Jason: Low-level to discover implementation issues.

• Conductor

• Raytracer

Evan and Tom: High-level to discover programming issues.

• ML Interface, New Programming Language?

• Parallel Theorem Prover

(5)

My Contribution

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.

Goals

• drive the framework to a more robust and stable state

• better understand the requirements from a programmer’s perspective

Last Semester: Develop a parallel theorem prover for linear logic.

This Semester: Bridge the gap between the implementation in CML and the low-level interface provided by Conductor.

(6)

ConCert Programming: Jobs and Tasks

Job

Task Task Task

Job: A whole-program that is injected into the network from the command-line.

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

(7)

Injecting a Task into the Network

type ’a task

val injectTask : bool -> (’b -> ’a) * ’b -> ’a task val enableTask : ’a task -> unit

• A task can optionally be injected into the network in a suspended state (i.e. disabled).

• If disabled, the task will not run until an explicit enable instruction is issued.

(8)

Retrieving Results

val sync : ’a task -> ’a

• Returning a result and asking for results from other tasks are the only form of communication between tasks.

• Blocks the calling task until the result can be obtained.

• Let t be the task that we seek the result from. Task t could be in four possible states:

1. t has already completed execution successfully.

2. t is currently executing.

3. t has failed (or appears to have failed).

4. t is currently disabled.

(9)

Results from Multiple Tasks

val syncall : ’a task list -> ’a list

val relax : ’a task list -> ’a * ’a task list

• syncall blocks until results are obtained from all the given tasks.

• relax continues as soon as one result is available.

(10)

Example: Merge Sort

1 (* mergesort : int list * int -> int list *) 2 fun mergesort (nil, _) = nil

3 | mergesort ([x], _) = [x]

4 | mergesort (l, cutoff) =

5 let

6 (* partition : int * int list -> int list * int list * int list *) ...

23

24 (* merge : int list * int list -> int list *) ...

32

33 val len = List.length l

34 val (lt,md,rt) = partition (len div 3, l)

35 in

36 if (len <= cutoff) then

37 merge (mergesort (lt,cutoff), merge (mergesort (md,cutoff), mergesort (rt,cutoff)))

38 else

...

58 end

(11)

Example: Merge Sort (cont’d)

36 if (len <= cutoff) then

37 merge (mergesort (lt,cutoff), merge (mergesort (md,cutoff), mergesort (rt,cutoff)))

38 else

39 let

40 open CCTasks

41

42 (* Start sorting each partition *)

43 val t1 = injectTask true (mergesort, (lt, cutoff)) 44 val t2 = injectTask true (mergesort, (md, cutoff)) 45 val t3 = injectTask true (mergesort, (rt, cutoff)) 46

47 (* Get the results of the three child tasks. Start merging 48 when receive 2 sorted lists. *)

49 val (sort1, sort2) = let

50 val (a, rest) = relax [ t1, t2, t3 ]

51 val (b, [last]) = relax rest

52 in

53 (merge (a,b), sync last)

54 end

55 in

56 merge (sort1, sort2)

57 end

(12)

Jobs, Tasks, and Cords

Job

Cord

Task Task Task

Cord

Cord

Cord

Cord

Cord

Cord

Cord

Cord

Cord: The unit of computation scheduled by the ConCert frame- work (Conductor).

(13)

Invariants

To simplify implementation and allow for failure recovery and program mobility, we impose strong invariants on cords:

1. A cord is deterministic, or any possible result is “as good as”

any other.

2. Cords do not communicate except through explicit dependencies.

3. Once its dependencies are filled, a cord is able to run to completion.

Are these invariants really necessary, and what sorts of applications do they preclude?

(14)

Next Steps

1. Make the theorem prover run on a simulator of the given interface.

2. Flush out as many issues as possible with regards to compiling the proposed interface.

3. Implement the interface (if possible).

4. Write everything up!

References

Related documents

Rather service providers responded by varying the hours of service provided within a program (with a large number of HACC clients receiving a level of service equivalent to

More specifically, we establish revealed preference conditions for observed consumption behavior to be consistent with the transferable util- ity assumption under Pareto

In 2010, IE Business School and Emzingo Group, a leadership development company, partnered to provide an innovative new program which puts social entrepreneurship, social

We concluded that the Poison Ivy daemon was hidden behind a proxy server , by using port forwarding to hide the real IP of the command &amp; control server. We could also

As our variables of interests are concerned we observe that 2SLS results qualitatively con fi rm those of the OLS speci fi cation: the coe ffi cient of the IMF loans is negative and

Inv. Further controls: type of contract, firm size, sector and region dummies. Robust Standard errors in parentheses. Source: WHIP, own calculations... Log wage profiles

This study seeks to improve organisational commitment of the employees in the maintenance section of the selected telecommunications company, by investigating whether

This Indian Standard which is identical with lSO/TR 10450:1991 ‘Industrial automation systems and integration — Operating conditions for discrete part manufacturing — Equipment