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

Instructor Photo

Mainack Mondal

mainack [AT] cse [DOT] iitkgp [DOT] ac [DOT] in

Instructor Photo

Sandip Chakraborty

sandipc [AT] cse [DOT] iitkgp [DOT] ac [DOT] in

Teaching Assistants

TA Photo

Soham Banerjee

bsoham5825 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in

TA Photo

Argha Sen

arghasen10 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in

TA Photo

Dev Butani

DEVBUTANI2004 [AT] kgpian [DOT] iitkgp [DOT] ac [DOT] in

Notices and Announcements


Coming Soon...

Course Information


Credit(L-T-P):
3-0-0
Pre-requisites:
This is an advanced level course, mostly dealing with optimizations associated with real-world deployed systems. Thus, we will assume familiarity with Computer Systems. We are providing an exclusive list of pre-requisites(this list is not complete, but should give you an idea about what basic background knowledge you need for this course). For a few lectures at the end you might need a basic knowledge of machine learning. We will learn how to efficiently deploy machine learning models.
  • CS31202: Operating Systems
  • CS31204: Computer Networks
  • CS30202: Database Management Systems
Lectures:
Venue: CSE-107
Scheduled lecture timings are (Slot A3):
  • Monday 08:00 am - 09:55 am
  • Tuesday 12:00 pm - 12:55 pm
References:
There are few specific textbooks, that we will be following. However, most of our course will be based on research/white papers associated with real-life deployed systems. The list of textbooks is as follows:
Coursework:
The coursework for all students consists of 2 tests and a few assignments. We will use CSE Moodle for submission of tests and assignments this course. The code for joining CSE moodle will be given in the class.
Communication:
We will update the course schedule regularly throughout the course. Also, keep an eye on the notice and announcements page.
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:
You need to strictly adhere to the deadlines for the submissions (e.g., assignments etc.) announced for this course in MS teams, or by design Moodle will not accept it.

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:
The approximate grading policy for the course is as follows:
  • 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

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.