CSCI1675
Designing High-Performance Network Systems
Spring 2025
How can we understand the performance of network systems and make them run faster? To explore this question, we will break it down into pieces, including (i) how to define and measure a system’s performance, (ii) how to determine what factors in the system’s design affect its performance, and (iii) how to use this information to make the system faster. Through lectures, labs, readings, and hands-on programming projects, we will explore topics including tradeoffs between threads and coroutines, blocking and non-blocking execution models, cooperative and preemptive multitasking, open and closed request generation, and throughput-latency curves. Hands-on projects will involve modern Linux technologies such as perf and derivative tools, io_uring, eBPF, and XDP as well as modern microservice architecture tools such as nginx, kubernetes, and distributed tracing frameworks. The class will consist of lectures, short homework assignments that reinforce lecture content,
Instructor(s): | |
Meets: | MW 9am-10:20am in CIT Center (Thomas Watson CIT) 368 |
Exam Group: | TBA |
Max Seats: | 40 Full |
CRN: | 28040 |