CS 1645/2045 High Performance Computing Systems

Introduction to parallel and high-performance computing: shared-memory and distributed-memory programming (OpenMP, MPI), GPU computing (CUDA), performance analysis, and scalability. Covers LLM training parallelization strategies including data, model, and tensor parallelism. Students implement parallel algorithms on real cluster hardware.

Fall 2024

CS 3410 Advanced Topics in Computer Architecture

Graduate seminar exploring cutting-edge research in computer architecture and AI systems, with a focus on LLM accelerator design, LLM system/infrastructure design, multi-GPU systems, and speculative execution. Students read and present recent papers from top venues (ISCA, MICRO, HPCA, ASPLOS, MLSys).

Fall 2025, Fall 2022

CS 2410 Computer Architecture

Graduate-level course covering processor design, memory hierarchies, cache coherence, pipelining, out-of-order execution, branch prediction, multi-core/GPU architectures, systolic arrays, and machine learning accelerator designs. Includes hands-on projects with architectural simulators.

Spring 2025, Spring 2024, Spring 2023, Spring 2022, Spring 2021

CS 1541 Introduction to Computer Architecture

Undergraduate course on how computers work at the hardware level: instruction set architecture, datapath and control, pipelining, memory hierarchy, and I/O systems. Bridges the gap between software programming and hardware design.

Spring 2025, Fall 2023, Spring 2021

CS 2210 Compiler Design

Principles and practice of compiler construction: lexical analysis, parsing, type checking, intermediate representations, code generation, and optimization. Covers modern compiler frameworks and their role in systems performance.

Spring 2020