SE 292: High Performance Computing (3:0)

Class

Instructors

R Govindarajan and Sathish Vadhiyar

Reading Materials

Meeting Hours

  Tuesday, Thursday. SERC 221. 11:30-13:00

Grading System (for Sathish Vadhiyar's portions)

Syllabus (for Sathish Vadhiyar's portions)

    1. Memory and Process Management
      1. Main Memory - Swapping, Allocation, Paging, Page tables, Segmentation
      2. Virtual Memory - Demand Paging, Copy-on-Write, Page replacement, Frames, Thrashing
      3. Reading:
        1. Bryant and O'Hallaron - 697-700, 704-705, 709-711, 727, 735-736, 755-757
        2. Silberschatz et al. - 365-369, 372-373, 378-381, 386-391, 396-397, 400-401
        3. Silberschatz et al. - 187-198
    2. Concurrency
      1. Interprocess communication
      2. Synchronization - Mutual exclusion, critical section, locks, testandwait, semaphores, classical problems
      3. Threads, Multi-threading
      4. Parallel architecture, classification, interconnection networks, cache coherence
      5. Reading
        1. Bryant and O'Hallaron - sections 13.1, 13.3, pages 869-882, sections 13.7.1, 13.7.4, 13.7.5
        2. Silberschatz et al. - 3.5.1, 3.6
        3. Silberschatz et al. - 4.1.1, 4.1.2, 4.2, 4.3.1, 4.4.6
        4. Silberschatz et al. - 5.4
        5. Silberschatz et al. - 6.2, 6.4 (231, 232), 6.5, 6.6.1, 6.6.3
        6. Silberschatz et al. - 7.2, 7.5.1, 7.5.3
        7. Grama et al. - 2.4
    3. Parallelization
      1. Motivations for parallel programming, challenges, metrics, programming models
      2. steps in parallelization - decomposition, assignment, orchestration, mapping
      3. Reading
        1. Grama et al. - 3.1, 3.5
        2. Grama et al. - 5.1-5.6
        3. Culler and Singh - Sections 2.2 and 2.3
    4.  Popular programming languages - MPI, OpenMP, Cuda
    5. Storage Management
      1. File System Interface and Implementation - Concept, Access Methods, Structures, Allocation, Implementation, Efficiency, NFS
      2. Storage Structures - Scheduling, Management, Implementation, RAID
      3. I/O Systems
      4. Reading
        1. Silberschatz et al. - sections 11.1, 11.2.1, 11.4, 11.6, 11.7
        2. Silberschatz et al. - sections 12.1.1, 12.3, 12.4, 12.7.1, 12.7.2,
        3. Silberschatz et al. - sections 13.2.2, 13.2.3, 13.3.4, 13.4.7, 13.5

Assignments (for Sathish Vadhiyar's portions)

  1. CPU Scheduling - 5 points

  2. PThreads and MPI - 5 points

  3. MPI Non-Blocking and OpenMP - 5 points