ABSTRACT
Parallel programs are difficult to write, test, and debug. This thesis explores how programmers build mental models about parallel programs, and demonstrates, through user evaluations, that maintenance activities can be improved by incorporating theories based on such models. By doing so, this work aims to increase the reliability and performance of today's information technology infrastructure by improving the practice of maintaining and testing parallel software.
- Practical parallel and concurrent programming course materials. http://ppcp.codeplex.com/.Google Scholar
- J. Choi and H. Srinivasan. Deterministic replay of Java multithreaded applications. In Symposium on Parallel and Distributed Tools (SPDT), 1998. Google ScholarDigital Library
- K. Ebcioglu, V. Sarkar, T. El-Ghazawi, J. Urbanic, and P. Center. An experiment in measuring the productivity of three parallel programming languages. In Workshop on Productivity and Performance in High-End Computing (P-PHEC), 2006.Google Scholar
- O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Framework for testing multi-threaded java programs. Concurrency and Computation: Practice and Experience, 15:485--499, 2003.Google ScholarCross Ref
- V. Fix, S. Wiedenbeck, and J. Scholtz. Mental representations of programs by novices and experts. In Conference on Human factors In computing systems (CHI), pages 74--79, 1993. Google ScholarDigital Library
- S. D. Fleming. Successful Strategies for Debugging Concurrent Software: An Empirical Investigation. PhD thesis, Michigan State Univ., 2009. Google ScholarDigital Library
- D. Gentner and A. Stevens. Mental Models. Erlbaum, 1983.Google Scholar
- J. Gould and P. Drongowski. An exploratory study of computer program debugging. Human Factors: The Journal of the Human Factors and Ergonomics Society, 16(3):258--277, 1974.Google ScholarCross Ref
- A. Hartman, A. Kirshin, and K. Nagin. A test execution environment running abstract tests for distributed software. In Conference on Software Engineering and Applications (SEA), 2002.Google Scholar
- L. Hochstein and V. Basili. The ASC-Alliance projects: A case study of large-scale parallel scientific code development. Computer, 41(3):50--58, 2008. Google ScholarDigital Library
- L. Hochstein, J. Carver, F. Shull, S. Asgari, and V. Basili. Parallel programmer productivity: A case study of novice parallel programmers. In Supercomputing Conference (SC), 2005. Google ScholarDigital Library
- High Productivity Computing Systems. http://www.highproductivity.org/.Google Scholar
- J. Koenemann and S. Robertson. Expert problem solving strategies for program comprehension. In Conference on Human factors In computing systems (CHI), 1991. Google ScholarDigital Library
- J. Lazar, J. Feng, and H. Hochheiser. Research Methods in Human-Computer Interaction. Wiley, 2010. Google ScholarDigital Library
- D. Littman, J. Pinto, S. Letovsky, and E. Soloway. Mental models and software maintenance. Journal of Systems and Software, 7(4):341--355, 1987. Google ScholarDigital Library
- M. Luff. Empirically investigating parallel programming paradigms: A null result. In Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), 2009.Google Scholar
- R. McCauley, S. Fitzgerald, G. Lewandowski, L. Murphy, B. Simon, L. Thomas, and C. Zander. Debugging: a review of the literature from an educational perspective. Computer Science Education, 18(2):67--92, 2008.Google ScholarCross Ref
- M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. A. Nainar, and I. Neamtiu. Finding and reproducing heisenbugs in concurrent programs. In Operating Systems Design and Implementation (OSDI), 2008. Google ScholarDigital Library
- J. Nielsen. Usability Inspection Methods. Wiley, 1994. Google ScholarDigital Library
- C. M. Pancake and S. Utter. Models for visualization in parallel debuggers. In Supercomputing Conference (SC), 1989. Google ScholarDigital Library
- W. Pugh and N. Ayewah. Unit testing concurrent software. In International Conference on Automated Software Engineering (ASE), 2007. Google ScholarDigital Library
- V. Ramalingam, D. LaBelle, and S. Wiedenbeck. Self-efficacy and mental models in learning to program. In Symposium on Computer Science Education (SIGCSE), 2004. Google ScholarDigital Library
- C. Rossbach, O. Hofmann, and E. Witchel. Is transactional programming actually easier? In Symposium on Principles and Practice of Parallel Programming (PPoPP), 2010. Google ScholarDigital Library
- C. Sadowski, T. Ball, J. Bishop, S. Burckhardt, G. Gopalakrishnan, J. Mayo, S. Qadeer, M. Musuvathi, and S. Toub. Practical parallel and concurrent programming. In Symposium on Computer Science Education (SIGCSE), 2011. Google ScholarDigital Library
- C. Sadowski, S. N. Freund, and C. Flanagan. SingleTrack: A dynamic determinism checker for multithreaded programs. In European Symposium on Programming (ESOP), 2009. Google ScholarDigital Library
- C. Sadowski and S. Kurniawan. Heuristic evaluation of programming language features. Technical Report UCSC-SOE-11-06, UC Santa Cruz, 2010.Google Scholar
- C. Sadowski and J. Yi. Applying usability studies to correctness conditions: A case study of cooperability. In Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), 2010. Google ScholarDigital Library
- D. Schuler and A. Namioka, editors. Participatory Design: Principles and Practices. Lawrence Erlbaum Associates, 1993. Google ScholarDigital Library
- K. Sen. Race directed random testing of concurrent programs. In Conference on Programming Language Design and Implementation (PLDI), 2008. Google ScholarDigital Library
- H. Sutter. The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobbs Journal, 30(3):16--20, 2005.Google Scholar
- D. Szafron, J. Schaeffer, and A. Edmonton. An experiment to measure the usability of parallel programming systems. Concurrency Practice and Experience 8(2):147--166, 1996.Google ScholarCross Ref
- I. Vessey. Expertise in debugging computer programs: A process analysis. International Journal of Man-Machine Studies, 23(5):459--494, 1985.Google ScholarCross Ref
- A. Von Mayrhauser and A. Vans. From program comprehension to tool requirements for an industrial environment. In Workshop on Program Comprehension (WPC), pages 78--86, 2002.Google Scholar
Index Terms
- Mental models and parallel program maintenance
Recommendations
Parallel concurrent ML
ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programmingConcurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstractions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other ...
Parallel concurrent ML
ICFP '09Concurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstractions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other ...
CS in parallel: modules for adding parallel computing to CS courses, from CS2 to theory of computation (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationParallel computing with more and more cores is here to stay. This workshop presents four independent, class-tested, primarily hands-on modules for incrementally adding parallelism in undergraduate CS courses, each requiring 1 to 3 class days and ...
Comments