Design Optimization of Computing Systems
This course is designed to provide students with an in-depth understanding and practical skills necessary to enhance the performance and efficiency of diverse computing systems. Through a holistic approach, students will delve into various aspects of optimization techniques across multiple domains. The course begins by exploring strategies for optimizing multi-core and CPU-intensive programs, emphasizing the importance of efficient garbage collection mechanisms. Students will then advance to mastering techniques for optimizing multi-threaded applications and IO-intensive programs, with a focus on leveraging Just-In-Time (JIT) compilation for improved performance.
Furthermore, the course delves into database optimization methodologies, covering topics such as hardware support and caching mechanisms to enhance database performance. Students will also explore advanced concepts in network programming optimization, including the utilization of Content Delivery Networks (CDNs) to improve network efficiency. Lastly, the course provides insights into advanced machine learning (ML) optimization techniques, such as ML Operations (MLOps) frameworks like LORA and optimizations for Non-Uniform Memory Access (NUMA), enabling students to optimize ML workflows for efficient computation. By the end of the course, students will possess the expertise to analyze performance bottlenecks, devise optimization strategies, and implement solutions to enhance the efficiency and scalability of complex computing systems.
Instructors
Mainack Mondal
mainack [AT] cse [DOT] iitkgp [DOT] ac [DOT] in
Sandip Chakraborty
sandipc [AT] cse [DOT] iitkgp [DOT] ac [DOT] in
Teaching Assistants
Soham Banerjee
bsoham5825 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in
Argha Sen
arghasen10 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in
Dev Butani
DEVBUTANI2004 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in
Notices and Announcements
Coming Soon...
Course Information
Credit(L-T-P):
Pre-requisites:
- CS31202: Operating Systems
- CS31204: Computer Networks
- CS30202: Database Management Systems
Lectures:
Scheduled lecture timings are (Slot A3):
- Monday 08:00 am - 09:55 am
- Tuesday 12:00 pm - 12:55 pm
References:
- Systems Performance: Enterprise and the Cloud, 2nd Edition - Brendan Gregg, 2020
- Advanced Python Programming - Dr. Gabriele Lanaro, Quan Nguyen, Sakis Kasampalis, 2019
- Designing Data-Intensive Applications - Martin Kleppman, 2017
- The Art of Multiprocessor Programming - Maurice Herlihy, Nir Shavit, 2011
Coursework:
Communication:
Joining MS Teams Note that you NEED TO join the Microsoft teams classroom titled "Design Optimization Of Computing Systems 2024 (CS60203)" for this course. Drop the instructors an email ASAP if you cannot access the Microsoft teams classroom. General discussion
- We'll use Microsoft Teams for general discussion and questions about course material.
- You should already have the account username and password to log into Microsoft teams. If you cannot access the Microsoft teams classroom titled "Design Optimization Of Computing Systems 2024 (CS60203)" please let the instructors know as soon as possible.
- If you need to reach out to the instructors (e.g., pertaining to an illness or other events that might be impacting your performance in class), please send a private chat on Microsoft Teams visible only to the instructors. Please use the Microsoft Teams chatroom (and channels) to discuss publicly with your peers in real-time.
- Please try to keep all course-related communication to Microsoft Teams rather than email.
Late Policy:
Of course, in exceptional circumstances related to personal emergencies, serious illness, wellness concerns, family emergencies, and similar, please make the course staff aware of your situation beforehand/as soon as possible and we will decide how to handle your case.
Grading Policy:
- Tests: 60%
- Assignments: 40%
Schedule
| Date | Topic | Slides | Readings and Videos |
|---|---|---|---|
| Jul 20 - Jul 21 | Introduction to Systems Performance and Measurement | Slides | |
| Jul 27 | Garbage Collection | ||
| Jul 27 - Jul 28 | Just-In-Time(JIT) Compilation | ||
| Aug 3 - Aug 4 | SIMD Optimizations | ||
| Aug 10 | Multicore Programming | ||
| Aug 11 - Aug 17 | Lock Free Programming | ||
| Aug 18 - Aug 24 | Concurrency and Lightweight Threading | ||
| Aug 24 - Aug 25 | Kernel Bypass | ||
| Aug 31 - Sept 7 | Databases and Optimizing Storage | ||
| Sept 7 - Sept 8 | NoSQL: Not only SQL | ||
| Sept 14 - Sept 15 | MLOps, MCP, FastAPI | ||
| Oct 6 - Oct 13 | Network Virtualisation | ||
| Oct 26 - Nov 3 | Network Optimizations |
Assignments
Coming Soon...Tests
- Mid-Semester Examination: TBA
- End-Semester Examination: TBA
Honor Code
You are permitted to talk to the course staff and to your fellow students about any of the problem sets.
Any assistance, though, must be limited to discussion of the problem and sketching general approaches to
a solution. Each student must write out his or her own solutions to the problem sets. Consulting another
student's solution is prohibited, and submitted solutions may not be copied from any source. These and
any other form of collaboration on assignments constitute cheating.
No collaboration is permitted on quizzes or assignments. All work submitted for the project must
properly cite ideas and work that are not those of the students in the group.
Simply stated, feel free to discuss problems with each other, but do not cheat. It is not worth it,
and you will get caught. In that case, we will be forced to award you no marks for that
assignment/quiz/project, take away 50% of your total final marks and you will risk deregistration.
Wellness
If a personal emergency comes up that might impact your work in the class, please let the instructors know via a private chat message (to all the course instructors) so that the course staff can make appropriate arrangements. We are going through unprecedented times and circumstances can sometimes be very overwhelming, and all of us benefit from support during times of struggle. You are not alone.
Copyright Policy
All teaching materials in this class, including course slides, homeworks, assignments, practice exams and quizzes, are copyrighted. Reproduction, redistribution and other rights solely belong to the instructor. In particular, it is not permissible to upload any or part of these materials to public or private websites without the instructor's explicit consent. Violating this copyright policy will be considered an academic integrity violation, with the consequences discussed above. Reading materials are also copyrighted by their respective publishers and cannot be reposted or distributed without prior authorization from the publisher.