Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1639622.1639624acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Some resources for teaching concurrency

Published: 19 July 2009 Publication History

Abstract

With the increasing emphasis on exploiting concurrency efficiently and correctly, the lack of suitable pedagogical material for teaching concurrency is a growing problem. In this paper, we summarize a recently concluded class as well as some independent projects in the area of concurrency and multi-core computing that offer some insights to address this problem. We examine background papers, the teaching of low level concurrency, and the teaching of threading and message passing. The use of dynamic formal verification tools in a class setting is discussed in some detail. We conclude with a summary of pedagogical material being assembled, including exercises from a popular textbook on MPI solved using our dynamic verifier ISP. Our observation is that the teaching of concurrency is greatly facilitated by the use of dynamic push-button formal verification tools that can handle non-trivial concurrent programs. Given the growing number of publications on how to teach concurrency as well as employ new programming approaches, our work addresses the somewhat neglected topic of using modern dynamic formal verification methods within the context of widely used concurrency approaches and libraries.

References

[1]
Intel Academic Alliance http://software.intel.com/en-us/articles/courseware-access/
[2]
External Research, Microsoft. http://research.microsoft.com/en-us/collaboration/
[3]
Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan-Kauffman, 2004.
[4]
Lawrence Snyder and Calvin Lin. Principles of Parallel Programming Addison-Wesley, 2008.
[5]
Jack B. Dennis. Toward the computer utility http://csg.csail.mit.edu/Users/dennis/essay.htm
[6]
Guy Blelloch. Parallel Thinking http://www.cs.cmu.edu/~blelloch
[7]
M. Hill and M. Marty, Amdahl's Law in the Multicore Era IEEE Computer, July 2008. http://www.cs.wisc.edu/multifacet/amdahl
[8]
Herb Sutter. "The Free Lunch is Over" http://www.gotw.ca/publications/concurrency-ddj.htm
[9]
Herb Sutter and James Larus. Software and the concurrency revolution. http://portal.acm.org/citation.cfm?id=1095421
[10]
B. Cantrill. Real-world Concurrency. CACM Volume 51, Number 1, 2008. http://portal.acm.org/citation.cfm?doid=1400214.1400227
[11]
Charles Leiserson and Ilya Mirman, How to survive the multicore software revolution. http://www.cilk.com/ebook/download5643
[12]
The MIT Cilk System. http://supertech.csail.mit.edu/cilk/
[13]
Using LLNL's Supercomputers. https://computing.llnl.gov/tutorials/agenda/index.html
[14]
Ganesh Gopalakrishnan, Yu Yang, Hemanthkumar Sivaraj. QB or Not QB: An Efficient Execution Verification Tool for Memory Orderings. Computer Aided Verification 2004, 401--413, LNCS 3113.
[15]
MPEC: A SAT-based checker for Itanium Executions. http://www.cs.utah.edu/formal_verification/software/mpec.
[16]
W. W. Collier. Reasoning about Parallel Architectures. Prentice-Hall, 1992.
[17]
Sections 7.2 and 7.3, Intel Software Developer's Manual, Chapter 7.: http://www.intel.com/design/processor/manuals/253668.pdf
[18]
Geof Sawaya. Examples from Pacheco's book pacheco. http://www.cs.utah.edu/formal_verification/geof/pacheco/table.html.
[19]
Hans Boehm. Threads cannot be implemented as a library. http://www.hpl.hp.com/techreports/2004/HPL-2004-209.html PLDI 2005.
[20]
Hans Boehm. Reordering Constraints for Pthread-style Locks. http://www.hpl.hp.com/techreports/2005/HPL-2005-217R1.html?jumpid=reg_R1002_USEN PPoPP 2007.
[21]
Peter S. Pacheco. Parallel Programming with MPI. Morgan-Kauffman, 1997.
[22]
Pthreads/C code of a producer/consumer routine. http://www.eng.utah.edu/~cs5966/Week4/prodcons.c
[23]
The Cilk++ tool suite. http://www.cilk.com
[24]
http://www.eng.utah.edu/~cs5966/
[25]
http://www.cs.utah.edu/formal_verification/ISP_Tests/.
[26]
http://www.cs.utah.edu/formal_verification/ISP-release/.
[27]
Examples of Using ISP on the LLNL benchmarks, and the Red-Black benchmarks. http://www.cs.utah.edu/~jtwilla/WORK/ISPTests.html
[28]
Files containing Message Passing pedagogical examples. http://www.cs.utah.edu/formal_verification/padtad09-files/
[29]
S. Vakkalanka, G. Gopalakrishnan, and R. M. Kirby. Dynamic verification of MPI programs with reductions in presence of split operations and relaxed orderings. Computer Aided Verification 2008, 66--79, LNCS 5123.
[30]
A. Vo, S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, R. M. Kirby, and R. Thakur. Formal verification of practical mpi programs. PPoPP 2009., 261--269.
[31]
S. Sharma, S. Vakkalanka, G. Gopalakrishnan, R. M. Kirby, R. Thakur, and W. Gropp. A formal approach to detect functionally irrelevant barriers in MPI programs. EuroPVM/MPI 2008. 265--273, LNCS 5205.
[32]
S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, and R. M. Kirby. Scheduling considerations for building dynamic verification tools for MPI. PADTAD-VI 2008.
[33]
S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, R. M. Kirby, R. Thakur, and W. Gropp. Implementing efficient dynamic formal verification methods for MPI programs. EuroPVM/MPI 2008. 248--256, LNCS 5205.
[34]
http://research.microsoft.com/en-us/projects/chess/.
[35]
Madan Musuvathi and Shaz Qadeer. Iterative context bounding for systematic testing of multithreaded programs. Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Pages 446--455, 2007.
[36]
http://javapathfinder.sourceforge.net/.
[37]
J. Burnim and K. Sen. Heuristics for scalable dynamic test generation. Technical Report UCB/EECS-2008-123, Univ. of California, Berkeley, Sep 2008.
[38]
E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, Dec. 1999.
[39]
M. Dwyer, J. Hatcliff, and D. Schmidt. Bandera: Tools for automated reasoning about software system behavior. In ERCIM News, 36, Jan. 1999.
[40]
C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, pages 110--121. ACM, 2005.
[41]
P. Godefroid, B. Hanmer, and L. Jagadeesan. Systematic software testing using VeriSoft: An analysis of the 4ess heart-beat monitor. Bell Labs Technical Journal, 3(2), April--June 1998.
[42]
P. Godefroind and N. Nagappan. Concurrency at microsoft - an exploratory survey, 2008. EC2 (Exploiting Concurrency Efficiently and Correctly), Princeton, 2008. http://www.cs.utah.edu/ec2/2008.
[43]
G. J. Holzmann. The model checker SPIN. IEEE Transactions on Software Engineering, 23(5):279--295, May 1997.
[44]
S. F. Siegel and G. S. Avrunin. Verification of MPI-based software for scientific computation. SPIN 2004.
[45]
J. Yang, et al. MODIST: Transparent Model Checking of Unmodified Distributed System. NSDI 09. To appear.
[46]
Y. Yang, X. Chen, G. Gopalakrishnan, and R. M. Kirby. Distributed Dynamic Partial Order Reduction Based Verification of Threaded Software. SPIN 2007, Pages 58--75, Springer LNCS 4595.
[47]
Y. Yang, X. Chen, G. Gopalakrishnan, and R. M. Kirby. Efficient stateful dynamic partial order reduction. SPIN 2008, Pages 288--305, LNCS 5156.
[48]
Y. Yang, X. Chen, G. Gopalakrishnan, and C. Wang. Automatic Discovery of Transition Symmetry in Multithreaded Programs using Dynamic Analysis. SPIN 2009, Accepted.
[49]
MPI: A Message-Passing Interface Standard. http://www.mpi-forum.org/
[50]
John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufman, 2004.

Cited By

View all
  • (2021)Has the time come to teach parallel programming to secondary school students?Heliyon10.1016/j.heliyon.2021.e08662(e08662)Online publication date: Dec-2021
  • (2017)Evaluating Collaborative Learning Using Community of Inquiry Framework for a Blended Learning Formal Methods CourseTeaching and Learning in a Digital World10.1007/978-3-319-73210-7_11(86-95)Online publication date: 27-Dec-2017
  • (2013)MDATProceeding of the 44th ACM technical symposium on Computer science education10.1145/2445196.2445318(403-408)Online publication date: 6-Mar-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PADTAD '09: Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
July 2009
99 pages
ISBN:9781605586557
DOI:10.1145/1639622
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 July 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. MPI
  2. computer science education
  3. concurrency
  4. dynamic verification
  5. education
  6. memory models
  7. multi-core
  8. pthreads

Qualifiers

  • Research-article

Conference

ISSTA '09

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Has the time come to teach parallel programming to secondary school students?Heliyon10.1016/j.heliyon.2021.e08662(e08662)Online publication date: Dec-2021
  • (2017)Evaluating Collaborative Learning Using Community of Inquiry Framework for a Blended Learning Formal Methods CourseTeaching and Learning in a Digital World10.1007/978-3-319-73210-7_11(86-95)Online publication date: 27-Dec-2017
  • (2013)MDATProceeding of the 44th ACM technical symposium on Computer science education10.1145/2445196.2445318(403-408)Online publication date: 6-Mar-2013
  • (2012)A framework for teaching embedded multi-core programmingProceedings of 2012 IEEE/ASME 8th IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications10.1109/MESA.2012.6275577(292-297)Online publication date: Jul-2012

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media