How to program the Many Core for Inconsistency Robustness

  • 3,241 views
Uploaded on

In 1936, Alan Turing published a famous model of computation. However, it is in need of revision in part because Moore's Law for computation now takes the following form: …

In 1936, Alan Turing published a famous model of computation. However, it is in need of revision in part because Moore's Law for computation now takes the following form:

* Clock frequency is no longer increasing exponentially.
* Instead, the number of cores is increasing exponentially.

This talk explains why Turing's model is becoming obsolete (both in theory and practice) and how to program the many cores.

In turn, programming the many cores provides technology for inconsistency robustness: information system performance in the face of continually pervasive inconsistencies---a shift from the previously dominant paradigms of inconsistency denial and inconsistency elimination attempting to sweep them under the rug.

Further reading:

"ActorScript(TM) extension of C#(TM), Java(TM), Objective C(TM), and JavaScript(TM)” ArXiv 1008.2748

"Actor Model for Discretionary Adaptive Concurrency" ArXiv. 1008.1459

"Incompleteness Theorems: The Logical Necessity of Inconsistency" Google Knol

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,241
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. How to Program the Many CoresforInconsistency Robustness
    Carl Hewitt
    ©2011
    All rights reserved except
    Stanford has the right to distribute video & slides
    Slides updated June 5, 2011
  • 2. Turing’s Model of Computation
    Turing [1936] stated:
    the behavior of the computer at any moment is determined by the symbols which he [the computer] is observing, and his ‘state of mind’ at that moment
    there is a bound B to the number of symbols or squares which the computer can observe at one moment. If he wishes to observe more, he must use successive observations.
  • 3. Triumph of Turing’s Model
    Turing [1948]:
    LCMs[logical computing machines: Turing's expression for Turing machines] can do anything that could be described as … "purely mechanical"…This is sufficiently well established that it is now agreed amongst logicians that "calculable by means of an LCM" is the correct accurate rendering [of phrases like “purely mechanical”]
  • 4. Impossibility ofUnbounded Nondeterminism
    Now the set of initial segments of execution sequences of a given nondeterministic program P, starting from a given state, will form a tree.
    The branching points will correspond to the choice points in the program.
    Since there are always only finitely many alternatives at each choice point, the branching factor of the tree is always finite.
    Now König's lemma says that if every branch of a finitary tree is finite, then so is the tree itself.
    In the present case this means that if every execution sequence of Pterminates, then there are only finitely many execution sequences.
    So if an output set of Pis infinite, it must contain a nonterminating computation.
    ---Plotkin [1976]
  • 5. Bounded Nondeterminism in CSP
    [X :: Z!stop( )
    ||
    Y :: guard:boolean; guard:=true;
    *[guard  Z!go( ); Z?guard]
    ||
    Z :: n:integer;n:=0;
    continue:boolean; continue:=true;
    *[X?stop( ) continue:=false; Y!continue;
    []
    Y?go( )n:=n+1; Y!continue]
    ]
  • 6. Abstraction
    Any problem in computer science can be solved by adding another level of abstraction.
    --paraphrase of Alan Perlis
  • 7. Actors [IJCAI’73]
    Organization: The local storage of an Actor can include addresses only
    that were provided when it was created
    that have been received in messages
    Operation:In response to a message received, an Actor can
    create more Actors
    send messages to addresses in:
    the message it has just received
    its local storage
  • 8. Acknowledgement
    Important contributions to the semantics of Actors have been made by: Gul Agha, Beppe Attardi, Henry Baker, Will Clinger, Irene Greif, Carl Manning, Ian Mason, Ugo Montanari, Maria Simi, Scott Smith, Carolyn Talcott, Prasanna Thati, and Aki Yonezawa. 
    Important contributions to the implementation of Actors have been made by: Bill Athas, Russ Atkinson, Beppe Attardi, Henry Baker, Gerry Barber, Peter Bishop, Nanette Boden, Jean-Pierre Briot, Bill Dally, Blaine Garst, Peter de Jong, Jessie Dedecker, Ken Kahn, Henry Lieberman, Carl Manning, Mark S. Miller, Tom Reinhardt, Chuck Seitz, Richard Steiger, Dan Theriault, Mario Tokoro, Darrell Woelk, and Carlos Varela.
  • 9. Actor Misunderstandings
    Question:Isn't procedure calling faster than message passing?
    Answer: No, they are equivalent.
    Question:Doesn't every Actor have a X (where X is thread, mailbox, queue, etc.)?
    Answer: Is X an Actor?
    Question:What is an Actor?
    Answer: Anything that obeys the axioms!
  • 10. Let head scratching begin!
    Quantum Actors
    metaCompilation (reducing friction)
    I think I can safely say that nobody understands quantum mechanics.
    -- Richard Feynman
  • 11. Actor Unbounded Nondeterminism
    Unbounded ~~
      behavior{
        start  -> let(c  = create  Counter(count =0, continue = true) )
                              {c.go , c.stop }}
    Counter   ~~
      behavior has (count↦Integer , continue↦Boolean ) {
        stop   -> count  alsoBecome  (continue = false)}    |||  
        go  -> continue ?? {true -> exit go  alsoBecome(count =count+1) else void}}
     
  • 12. Computational Representation Theorem
    The denotation DenoteS of a closed system Srepresents all the possible behaviors of S as
    DenoteS = ⊔iNProgressionSi(⊥S)
    where ProgressionSis an approximation function that takes a set of partial behaviors to their next stage and ⊥S is the initial behavior of S.
  • 13. Devil in Details
    SimpleGCDqueue ~~
    behavior queues(q) {
    dispatch_sync(theBlock)->
    passThru(q)
    hole theBlock( )
    thenvoidalsoDequeueq |||
    this.dispatch_async(theBlock)->
    this ↞passThru (q)
    hole theBlock( )
    then void alsoDequeue q}
  • 14. Domain Specific Computation
    Implementing postponed execution:
    <<<postponeExpression::expr>>> ~~
    eval(e) ->
    let (v=expr.eval(e))
    Type(v)::.m ↣
    v↢malsoBecomeForwardTo(v)
    ForwardTo(v) ~~
    Type(v)::.m ↣v↢m
  • 15. Interoperation with Legacy
  • 16. Concurrency Crisis
    Clock frequency is not going up!
    Number of cores is growing exponentially!
  • 17. No More Free Lunch
    Frequency: past sins haunt us (e.g. JavaScript)
    Many-core computation: unforgiving (e.g.bottlenecks, throttling, testing, etc.)
  • 18. Hope
    ...and you will find someday that, after all, it isn’t as horrible as it looks.
    --Richard Feynman
  • 19. How toProgram the Many Cores
    Physically:
    Actors
    Practically:
    Organizational Programming
  • 20. Organizational Programming
    Authority
    Accountability
    Collaboration
  • 21. Organizational Scalability
    Executive
    info
    info
    info
    Sales
    info
    info
    Engineering
    Accounting
    info
    Hierarchical parallelism
    Heterarchical concurrency
  • 22. Inconsistency by Design
    Executive
    info
    info
    info
    Sales
    info
    info
    Engineering
    Accounting
    info
    Where you sit
    is
    where you stand!
  • 23. Economics
    Strategic inconsistency:
    Classical microeconomics
    individual economic transactions (i.e. “propensity to barter, truck and exchange one thing for another” [Adam Smith]) lead to generally desirable outcomes
    Keynesian macroeconomics
    fraud, externalities, and monetary instabilities require government regulation
  • 24. Addiction
    Step 1 in Twelve Step programs for recovery is that addicts admit that they are powerless over their addictions.
  • 25. Mathematical Logic
    Wittgenstein: Indeed, even at this stage, I predict a time when there will be mathematical investigations of calculi containing contradictions, and people will actually be proud of having emancipated themselves from consistency.
    Turing: The real harm will not come in unless there is an application, in which a bridge may fall down or something of that sort…. You cannot be confident about applying your calculus until you know that there are no hidden contradictions in it.
    Wittgenstein: There seems to me an enormous mistake there. ... Suppose I convince [someone] of the paradox of the Liar, and he says, 'I lie, therefore I do not lie, therefore I lie and I do not lie, therefore we have a contradiction, therefore 2x2 = 369.' Well, we should not call this 'multiplication,' that is all...
  • 26. Direct LogicTM
    Minimal fix to Classical Mathematical Logic*
    DirectInference (no contrapositive bug for inference)
    DirectArgumentation (inference directly expressed)
    Inconsistency Robustness
    Two-way Deduction Theorem for natural deduction
    Boolean Equivalences hold
    Self-refutation
    Incompleteness self-provable
    *Published in arXiv:0812.4852
  • 27. Language Games
    This sentence P cannot be inferred
    P ⇔ ⊬RussellP
  • 28. Proof of Incompleteness
    Suppose⊢RussellP
    ⊢Russell⊬RussellPfrom the hypothesis
    becauseP ⇔⊬RussellP
    ⊢Russell⊢RussellP from the hypothesis
    by Adequacy
    But 1.and 2.are a contradiction in Russell .
    Consequently, ⊢Russell⊬RussellP follows from proof by contradiction in Russell .
  • 29. WittgensteinIncompleteness means Inconsistency
    Let us suppose I prove the unprovability (in Russell’s system[Russell )] ) of P [⊢Russell⊬RussellPwhereP⇔⊬RussellP];then by this proof I have proved P[⊢RussellP].
    Now if this proof were one in Russell’s system[⊢Russell⊢RussellP]—I should in this case have proved at once that it belonged [⊢RussellP] and did not belong [⊢RussellPbecauseP⇔⊢Russell P]to Russell’s system.—That is what comes of making up such sentences.
    But there is a contradiction here!—Well, then there is a contradiction here[in Russell]. Does it do any harm here?
  • 30. Demonization of Wittgenstein
    It’s amazing that Turing could get anything out of discussions with somebody like Wittgenstein.

    Wittgenstein did “not” understand it [1st incompleteness theorem] (or pretended not to understand it). He interpreted it as a kind of logical paradox, while in fact is just the opposite…

    He [Wittgenstein] has to take a position when he has no business to do so. For example, “you can’t derive everything from a contradiction.” He should try to develop a system of logic in which that is true
    ----Kurt Gödel
  • 31. In the Argumentation lies the Power
    A╟Tmeans that Ais an argument for  in T
    Example:
    Redfield╟Biochemistry (NASA⊮Biochemistry SupportsLife[Arsenic])
     
    Felisa Wolfe-Simon, et. al. A bacterium that can grow by using arsenic instead of phosphorus Science. Dec. 2, 2010.
    Rosemary Redfield. Arsenic-associated bacteria (NASA's claims) RR Research blog. Dec. 6, 2010.
    Semantics of Direct Logic
  • 32. Openness to Further Argumentation
    A good scientist is never 'certain'.
    Lack of certainty is precisely what makes conclusions more reliable than the conclusions of those who are certain: because the good scientist will be ready to shift to a different point of view if better elements of evidence, or novel arguments emerge.
    Therefore certainty is not only something of no use, but is in fact damaging, if we value reliability.
    --Carlo Rovelli
  • 33. Inconsistency RobustReasoning
    Large-scale information systems are chock full of inconsistencies
    Can’t get rid of them
    Relational Data Base*
    *replacement in the works
  • 34. Inconsistency Euphemisms
    Anomaly
    Bug
    Feature (ironic)
    Glitch
    Outlier
    Paradox
  • 35. Relational Physics
    Relational physics discards the notions of absolute state of a system, absolute value of its physical quantities, or absolute event.
    State and physical quantities refer always to the interaction, or the relation, among multiple systems.
    Nevertheless, relational physics is a complete description of reality.
  • 36. What is reality?
    Quantum mechanics is a theory about the physical description of physical systems relative to other systems, and this is a complete description of the world.
    ---Carlo Rovelli
  • 37. Interaction creates Reality
    Do not keep saying to yourself, if you can possibly avoid it, "But how can it be like that?" because you will go "down the drain," into a blind alley from which nobody has yet escaped.
    ---Richard Feynman
  • 38. Inconsistency Robustness 2011
    Inconsistency robustnessis information system performance in the face of continually pervasive inconsistencies---a shift from the previously dominant paradigms of inconsistency denialand inconsistency eliminationattempting to sweep them under the rug.
    Inconsistency robustness is both an observed phenomenon and a desired feature:
    It is an observed phenomenon because large information systems are required to operate in an environment of pervasive inconsistency. How are they doing?
    It is a desired feature because we need to improve the performance of large information systems.
  • 39. Inconsistency Robustness 2011Program Committee (½)
    Fei Xia, Washington Linguistics
    Mary-Anne Williams, Sydney Innovation and Enterprise Research Lab
    Mario Tokoro, Sony CSL
    Jamie Taylor, Google
    Markus Strohmaier, Graz CS
    Tom Stace, Queensland Physics
    Yuval Shachar, Ben-Gurion Information Systems Engineering
    Erik Sandewall, Linköping Computer and Information Science
    Neil Rubens, Electro-Communications Information Systems
    Carlo Rovelli, Marseille Centre de Physique Theorique de Luminy
    Greg Restall, Melbourne Philosophy
    Kay Prüfer, Max-Planck Institute for Evolutionary Anthropology
    Stanley Peters, Stanford CSLI
    Peter Neumann, SRI
    Fanya S. Montalvo, independent consultant
  • 40. Inconsistency Robustness 2011Program Committee (½)
    Subhasish Mitra, Stanford CS and EE
    Joao Marcos, Rio Grande de Norte Informatics and Applied Mathematics
    Ben Kuipers, Michigan CS
    Andrei Khrennikov, Linnaeus Applied Mathematics
    Mike Huhns, South Carolina Electrical & Computer Engineering
    Chuck House, Stanford Media X
    Robert Hoehndorf, Cambridge Genetics
    Carl Hewitt (chair), emeritus MIT EECS, visiting Stanford CS
    Ted Goldstein, UCSC Bioinformatics and Biomolecular Engineering
    Elihu M. Gerson, Tremont Research Institute
    Mike Genesereth, Stanford CS
    Giacomo Mauro D'Ariano, Pavia Quantum Information, Mechanics, & Optics
    Rainer Brendle, SAP
    Francesco Berto, Aberdeen Philosophy
    Gil Alterovitz, MIT EECS and Harvard Medical School
  • 41. Inconsistency Robustness 2011
    Important dates
    February 15, 2011: Due date of extended abstracts for position statements, overviews, panel proposals, and technical papers (consisting of approximately 2000 words in PDF format ). Rather than have authors try to pigeon hole their work by key word ahead of time, we plan to distribute submissions to referees on the basis of the extended abstract.
    March 31, 2011: Due date of full technical papers, revised panel proposals and position statements. A hard limit on size will not be imposed because the proceedings will be produced electronically. So anything up to about 25K words would be possible. Of course, the length must be suitable to the subject matter.
    May 30, 2011: Notification of acceptance, conditional acceptance, or non-acceptance
    August 16-18, 2011: Symposium at Stanford
    August 19, 2011: Invited workshop for active researchers, practitioners, and sponsors
    Submissions should be made via the EasyChair website at:
    http://submit.robust11.org