ADT
        aaron-thesis
        arm-eh
        ast-experimental
        cleanup-dtors
        deferred_resn
        demangler
        enum
        forall-pointer-decay
        jacob/cs343-translation
        jenkins-sandbox
        new-ast
        new-ast-unique-expr
        new-env
        no_list
        persistent-indexer
        pthread-emulation
        qualifiedEnum
        resolv-new
        with_gc
      
      
        
          | Last change
 on this file since 2c6c893 was             27dde72, checked in by Thierry Delisle <tdelisle@…>, 8 years ago | 
        
          | 
Major update to the concurrency proposal to be based on multiple files
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.2 KB | 
      
      
| Rev | Line |  | 
|---|
| [27dde72] | 1 | % ====================================================================== | 
|---|
| [db0fa7c] | 2 | \chapter{Introduction} | 
|---|
| [27dde72] | 3 | % ====================================================================== | 
|---|
|  | 4 |  | 
|---|
|  | 5 | This proposal provides a minimal concurrency API that is simple, efficient and can be reused to build higher-level features. The simplest possible concurrency core is a thread and a lock but this low-level approach is hard to master. An easier approach for users is to support higher-level constructs as the basis of the concurrency in \CFA. Indeed, for highly productive parallel programming, high-level approaches are much more popular~\cite{HPP:Study}. Examples are task based, message passing and implicit threading. | 
|---|
| [db0fa7c] | 6 |  | 
|---|
| [27dde72] | 7 | There are actually two problems that need to be solved in the design of concurrency for a programming language: which concurrency tools are available to the users and which parallelism tools are available. While these two concepts are often seen together, they are in fact distinct concepts that require different sorts of tools~\cite{Buhr05a}. Concurrency tools need to handle mutual exclusion and synchronization, while parallelism tools are about performance, cost and resource utilization. | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.