Personal tools
You are here: Home Courses CS492B Analysis of Concurrent Programs, Spring 14

CS492B Analysis of Concurrent Programs


  • 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

Office: 4406  


E-mail: jhhuh @ k a i s t . a c. k r 

Office hour: TBD

(reservation e-mail would be preferred)

Office: 2434 (located at the east wing)


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 ( 
  • 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


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

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

June 9: Random testing of concurrent programs

June 11: Concurrency coverage-based testing

June 16: Final exam


Document Actions