Prerequisites: CS 537
This advance course will take you back to 1974 with Unix and will slowly move in recent time by covering all the fancy world of GFS, GPUs, virtualization, etc. I felt that this course was a perfect blend of all the system related topics and Prof. Michael Swift did a great job with all the students. Course website has a detailed list of reading papers and covers all the major topics like concurrency, File Systems, Security, GPU’s and Virtualization.
Coursework is pretty intense and keep your weekdays/weekends pretty much occupied with reading papers, writing reviews (25% marks were on class participation/reviews). CS736 will have a mini project and a main coursework project. Mini project (10% of marks) will introduce you to kernel hacking/building and will give all the new paper writers a kick start. Main Project (40%) was nice and we did some research on building an optimistic scheduler for Heterogeneous cloud environment. It was a while I had given presentation in front of class and preparing CS736 presentation was fun for me. We managed to get second highest in the class and were in top 10%. Exams (2 exams – 15% each) were open notes, open paper and mostly the questions were open ended.
What I did?
- Kernel Building/Hacking: Project was to add a new system call and monitor how many times fsync is called in ext2 file system. This was a nice hands on experience and we learned ways to compile/build linux kernel and how to use an existing file system image/create a new one.
- Inter Process Communication measurement: Our goal was to do IPC performance measurement for pipes, shared memory and TCP/UDP. This was fun as the test programs were easy to write but we had to do lot of testing and paper writing for measuring performance.
- Optimal Predictive Performance Task Scheduler for Heterogeneous Cloud Infrastructure: Abstract—Many scheduling policies have been pro- posed to allocate and schedule computing resources in cloud infrastructure so that providers achieve high re- source utilization and users meet their application’s per- formance requirements with minimum expenditure. In this paper, we address the challenges of building a task scheduler in a heterogeneous environment consisting of diverse computing devices ranging from desktops, laptops, tablets, mobile phones to Raspberry Pi boards. We propose a learning model which is used by the node manager to schedule incoming tasks of known nature i.e. those which have been benchmarked on all distinct machines. When a similar task is submitted, the node manager uses the benchmarked results, current resource consumption of the running machines and the user input parameters to predict how resource hungry the task will be and appropriately schedule the task on the most optimal machine.
Review of few papers we read/review:
- CS736 Reviews – Yash Govind (Git links will be uploaded soon).
- Course is pretty intense – avoid taking more than 2 courses if one of them is CS 736.
- Share Latex writing experience or knowledge will be good.
- Reading background of paper and looking at presentation before exams will help.