CS492B Analysis of Concurrent Programs
Announcement
- Feb 28: Class starts on Mar 2
- Mar 21: No class on March 24 (Prof. Huh will be out of office for family matter)
- Mar 26: We will be a regular class meeting.
- May 9: HW#3 is slightly modified. See the noah board.
- May 21: No class on June 2
- May 21: Make-up class on May 27 (Tues) 8 pm
- May 21: Pop-up quiz on data race detection and/or atomicity violation next week.
- June 6: Final exam : June 16 (Monday) 13:00- 15:45
Administrative Information
- Prof. Jaehyuk Huh
Office: 4406
Phone:042-350-3515
E-mail: jhhuh @ k a i s t . a c. k r
Office hour: TBD
(reservation e-mail would be preferred)
- Prof. Moonzoo Kim
Office: 2434 (located at the east wing)
Phone:042-350-3543
E-mail: moonzoo @ c s . k a i s t . a c . k r
Office hour: TBD
(reservation e-mail would be preferred)
- Teaching assistants: Bokyeong Kim (bokyeong @ calab. kaist. ac. kr) and Shin Hong (hongshin@gmail.com)
- Lecture hours: Mon & Wed 1:00 - 2:15 PM
- Lecture room: 110 (N-1)
- Prerequisite:Equivalent knowledge obtained in System Programming class (i.e., experience in C/C++/Java as well as unix/linux programming)
- Grading: attendance, class participation, and quiz: 20%, HW: 50%, final exam:30%
- Late HW is accepted with 10% penalty of the max score in 1 day, 30% penalty of the max score in 3 days. HW will not be accepted after then.
- HW should be submitted both in hardcopy and softcopy (through email to TA). 10% penalty for missing hardcopy or softcopy.
- More than 8 absences of class will get F grade (to start class on time, late attendance is considered as 1/3 absence).
- Note: The official language in the class is English. All students should submit homeworks and answer exam/quiz in English; 10% penalty otherwise
- Questions and answers can be done through Noah BBS
Syllubus
This class teaches concurrent programming techniques and concurrent program analysis techniques for shared memory based target systems in C/C++ or Java programming language. This class will be co-taught by Prof. Jaehyuk Huh and Prof. Moonzoo Kim. Prof. Huh will teach concurrent programming techniques in the first half of the semester and Prof. Kim will teach concurrent program analysis techniques in the second half.
Course Material
- Reading list
- Related tool list
- Spin home page
- Installation guideline for the windows platforms
- cygwin for Spin verification
- download the 32bit version (because the distributed spin binary is 32 bit version) and
- check and install devel->gcc-core at the installation step
- add the cygwin bin directory (e.g., c:\cygwin\bin) and the spin directory (e.g.,c:\spin) to the system path environment variable
- activeTCL for Spin GUI
Course Schedule
March 3: Introduction
March 5: Parallelism and Shared Memory
Mar 10: Pthread and OpenMP I
Mar 12: Pthread and OpenMP II
Mar 17: Multi-core Memory Hierarchy
Mar 19: Coherence
Mar 24: No class
Mar 26: Consistency
Mar 31: Lock Basics
April 2: Transactional Memory
April 7: CUDA Overview
April 9: CUDA Thread and Memory Model
April 14: CUDA Performance
April 16: Execution Replay for Multiprocessor Virtual Machines
April 21: Midterm exam
April 28: Concurrency Analysis for Correct Concurrent Programs, Model checker SPIN part I
April 30: Model checker SPIN part II + 30 min presentations for the HW#1.
May 7: Linear temporal logic (LTL) for requirement specification
May 12: Model-based concurrent program testing
- M.Kim, S.Hong, C.Hong and T.Kim,Model-based Kernel Testing for Concurrency Bugs through Counter Example Replay, Model-based Testing (ENTCS vol 253, no 2), pages 21-36, York, UK, Mar 22 2009
May 14: Deadlock detection/prediction technique
May 19: Race bug detection techniques
May 21,26: Atomicity bug detection techniques
May 27: Calfuzzer framework to analyze concurrent Java programs
May 28: Pattern-based concurrent bug detection
- FindBugs : a pattern-based static bug detector
- S. Hong and M. Kim, Effective Pattern-driven Concurrency Bug Detection for Operating Systems, Journal of Systems and Software (JSS), vol 86, issue 2, pages 377–388, Feb 2013
June 9: Random testing of concurrent programs
June 11: Concurrency coverage-based testing
- S. Hong, J. Ahn, S. Park, M. Kim, and M. J. Harrold, Testing Concurrent Programs to Achieve High Synchronization Coverage, Intl. Symp. on Software Testing and Analysis (ISSTA), 2012
- S.Hong, M.Staats, J.Ahn, M.Kim, and G.Rothermel, The Impact of Concurrent Coverage Metrics on Testing Effectiveness, IEEE International Conference on Software Testing, Verification and Validation (ICST), Mar 18-22, 2013
June 16: Final exam
Homeworks
- HW1: Programming with Pthread and OpenMP (Due date: 11:59pm April 21 st )
- HW2: Programming with CUDA (Due date: May. 7th, 11:59pm)
- HW3: Debugging the reader-writer lock algorithm using the Spin model checker (Due date: May 19th, 11:59pm)
- HW4: Buidling a data race detector using the CalFuzzer framework (due date: June 11th 11:59 pm)