• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
How to program the Many Core for Inconsistency Robustness

How to program the Many Core for Inconsistency Robustness



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



Total Views
Views on SlideShare
Embed Views



1 Embed 1

http://twitter.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    How to program the Many Core for Inconsistency Robustness How to program the Many Core for Inconsistency Robustness Presentation Transcript

    • How to Program the Many CoresforInconsistency Robustness
      Carl Hewitt
      All rights reserved except
      Stanford has the right to distribute video & slides
      Slides updated June 5, 2011
    • 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.
    • 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”]
    • 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]
    • 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]
    • Abstraction
      Any problem in computer science can be solved by adding another level of abstraction.
      --paraphrase of Alan Perlis
    • 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
    • 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.
    • 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!
    • Let head scratching begin!
      Quantum Actors
      metaCompilation (reducing friction)
      I think I can safely say that nobody understands quantum mechanics.
      -- Richard Feynman
    • Actor Unbounded Nondeterminism
      Unbounded ~~
          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}}
    • 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.
    • Devil in Details
      SimpleGCDqueue ~~
      behavior queues(q) {
      hole theBlock( )
      thenvoidalsoDequeueq |||
      this ↞passThru (q)
      hole theBlock( )
      then void alsoDequeue q}
    • Domain Specific Computation
      Implementing postponed execution:
      <<<postponeExpression::expr>>> ~~
      eval(e) ->
      let (v=expr.eval(e))
      Type(v)::.m ↣
      ForwardTo(v) ~~
      Type(v)::.m ↣v↢m
    • Interoperation with Legacy
    • Concurrency Crisis
      Clock frequency is not going up!
      Number of cores is growing exponentially!
    • No More Free Lunch
      Frequency: past sins haunt us (e.g. JavaScript)
      Many-core computation: unforgiving (e.g.bottlenecks, throttling, testing, etc.)
    • Hope
      ...and you will find someday that, after all, it isn’t as horrible as it looks.
      --Richard Feynman
    • How toProgram the Many Cores
      Organizational Programming
    • Organizational Programming
    • Organizational Scalability
      Hierarchical parallelism
      Heterarchical concurrency
    • Inconsistency by Design
      Where you sit
      where you stand!
    • 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
    • Addiction
      Step 1 in Twelve Step programs for recovery is that addicts admit that they are powerless over their addictions.
    • 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...
    • 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
      Incompleteness self-provable
      *Published in arXiv:0812.4852
    • Language Games
      This sentence P cannot be inferred
      P ⇔ ⊬RussellP
    • Proof of Incompleteness
      ⊢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 .
    • 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?
    • 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
    • In the Argumentation lies the Power
      A╟Tmeans that Ais an argument for  in T
      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
    • 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
    • Inconsistency RobustReasoning
      Large-scale information systems are chock full of inconsistencies
      Can’t get rid of them
      Relational Data Base*
      *replacement in the works
    • Inconsistency Euphemisms
      Feature (ironic)
    • 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.
    • 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
    • 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
    • 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.
    • 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
    • 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
    • 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: