*banner
 

The Problem with Threads
Edward A. Lee

Citation
Edward A. Lee. "The Problem with Threads". Technical report, EECS Dept., University of California, Berkeley, 1, 2006.

Abstract
Threads are a seemingly straightforward adaptation of the dominant sequential model of computation to concurrent systems. Languages require little or no syntactic changes to support threads, and operating systems and architectures have evolved to efficiently support them. Many technologists are pushing for increased use of multithreading in software in order to take advantage of the predicted increases in parallelism in computer architectures. In this paper, I argue that this is not a good idea. Although threads seem to be a small step from sequential computation, in fact, they represent a huge step. They discard the most essential and appealing properties of sequential computation: understandability, predictability, and determinism. Threads, as a model of computation, are wildly nondeterministic, and the job of the programmer becomes one of pruning that nondeterminism. Although many research techniques improve the model by offering more effective pruning, I argue that this is approaching the problem backwards. Rather than pruning nondeterminism, we should build from essentially deterministic, composable components. Nondeterminism should be explicitly and judiciously introduced where needed, rather than removed where not needed. The consequences of this principle are profound. I argue for the development of concurrent coordination languages based on sound, composable formalisms. I believe that such languages will yield much more reliable, and more concurrent programs.

Electronic downloads

Citation formats  
  • HTML
    Edward A. Lee. <a
    href="http://chess.eecs.berkeley.edu/pubs/53.html"
    ><i>The Problem with Threads</i></a>,
    Technical report,  EECS Dept., University of California,
    Berkeley, 1, 2006.
  • Plain text
    Edward A. Lee. "The Problem with Threads".
    Technical report,  EECS Dept., University of California,
    Berkeley, 1, 2006.
  • BibTeX
    @techreport{Lee06_ProblemWithThreads,
        author = {Edward A. Lee},
        title = {The Problem with Threads},
        institution = {EECS Dept., University of California, Berkeley},
        number = {1},
        year = {2006},
        abstract = {Threads are a seemingly straightforward adaptation
                  of the dominant sequential model of computation to
                  concurrent systems. Languages require little or no
                  syntactic changes to support threads, and
                  operating systems and architectures have evolved
                  to efficiently support them. Many technologists
                  are pushing for increased use of multithreading in
                  software in order to take advantage of the
                  predicted increases in parallelism in computer
                  architectures. In this paper, I argue that this is
                  not a good idea. Although threads seem to be a
                  small step from sequential computation, in fact,
                  they represent a huge step. They discard the most
                  essential and appealing properties of sequential
                  computation: understandability, predictability,
                  and determinism. Threads, as a model of
                  computation, are wildly nondeterministic, and the
                  job of the programmer becomes one of pruning that
                  nondeterminism. Although many research techniques
                  improve the model by offering more effective
                  pruning, I argue that this is approaching the
                  problem backwards. Rather than pruning
                  nondeterminism, we should build from essentially
                  deterministic, composable components.
                  Nondeterminism should be explicitly and
                  judiciously introduced where needed, rather than
                  removed where not needed. The consequences of this
                  principle are profound. I argue for the
                  development of concurrent coordination languages
                  based on sound, composable formalisms. I believe
                  that such languages will yield much more reliable,
                  and more concurrent programs.},
        URL = {http://chess.eecs.berkeley.edu/pubs/53.html}
    }
    

Posted by Mary Stewart on 4 May 2006.
For additional information, see the Publications FAQ or contact webmaster at chess eecs berkeley edu.

Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright.

©2002-2018 Chess