Edward A. Lee

EECS Department, University of California, Berkeley

Technical Report No. UCB/EECS-2009-7

January 18, 2009

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-7.pdf

This paper addresses the question of whether message passing provides an adequate programming model to address current needs in programming multicore processors. It studies the pitfalls of message passing as a concurrency model, and argues that programmers need more structure than what is provided by today's popular message passing libraries. Collective operations and design patterns can help a great deal, but as the use of concurrency in programming increases, application programmers will have increasing difficulty identifying and combining these into complex operations. Moreover, some challenges, such as ensuring data determinacy and managing deadlock and buffer memory, are extremely subtle, and require considerable expertise to implement correctly. This paper illustrates this point by giving a few problematic examples. I argue that application programmers should not have to deal with many of these challenges, but with today's message passing libraries, they have no choice. The solution is to provide infrastructure-level support implementing more disciplined concurrent models of computation (MoCs). I show excellent implementations of the requisite mechanisms, thus enabling application programmers to focus on the functionality of the application rather than on avoiding the pitfalls of concurrent programming.


BibTeX citation:

@techreport{Lee:EECS-2009-7,
    Author= {Lee, Edward A.},
    Title= {Disciplined Message Passing},
    Year= {2009},
    Month= {Jan},
    Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-7.html},
    Number= {UCB/EECS-2009-7},
    Note= {A <a href="http://ptolemy.eecs.berkeley.edu/publications/papers/09/Lee_DisciplinedMessagePassing_Revision.pdf">Revised and shortened version</a> (May 24, 2009) is also available.},
    Abstract= {This paper addresses the question of whether message passing provides an adequate programming model to address current needs in programming multicore processors. It studies the pitfalls of message passing as a concurrency model, and argues that programmers need more structure than what is provided by today's popular message passing libraries. Collective operations and design patterns can help a great deal, but as the use of concurrency in programming increases, application programmers will have increasing difficulty identifying and combining these into complex operations. Moreover, some challenges, such as ensuring data determinacy and managing deadlock and buffer memory, are extremely subtle, and require considerable expertise to implement correctly. This paper illustrates this point by giving a few problematic examples. I argue that application programmers should not have to deal with many of these challenges, but with today's message passing libraries, they have no choice. The solution is to provide infrastructure-level support implementing more disciplined concurrent models of computation (MoCs). I show excellent implementations of the requisite mechanisms, thus enabling application programmers to focus on the functionality of the application rather than on avoiding the pitfalls of concurrent programming.},
}

EndNote citation:

%0 Report
%A Lee, Edward A. 
%T Disciplined Message Passing
%I EECS Department, University of California, Berkeley
%D 2009
%8 January 18
%@ UCB/EECS-2009-7
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-7.html
%F Lee:EECS-2009-7