CSE 231 - Compiler Construction and Optimization

Introduction I do not have an inkling on where to start about this absolute unit of a course by the amazing Prof. Politz . This single-handedly taught me more than I ever had learnt anything about compilers in my previous adventures. The course, with a focus on backend compiler design and optimization was an fun class I looked forward to every other day. The class was structured around a dynamically typed language (with various snake names for each evolution of the compiler and source code extension of .snek) that could be both compiled ahead-of-time and interpreted/evaluated with a target of x86_64. Each evolution also had extensions that made it further engaging allowing students to build and learn more sophesticated concepts like the REPL. ...

July 1, 2023 · 7 min · Adyanth Hosavalike

CSE 257 - Search and Optimization

Introduction CSE 257 Search and Optimization by Sicun Gao was my first course on machine learning as part of my Masters. I was drawn to this course since everyone I asked told me this was more of a math than an ML course. If you know me, you would know my dissent towards ML in general, since all I ever had exposure to were libraries that did the work for you, or some basic techniques like gradient descent without knowing why it actually works, and why can people not explain the actions by ML algorithms since they seem deterministic. This course, full credit to the professor, changed my mindset about this. ...

March 30, 2023 · 7 min · Adyanth Hosavalike

CSE 224 - Graduate Networked Systems

Introduction Graduate Networked Systems with George Porter was a course I was drawn to purely by the practical assignments, that too in Go. With my background in networking and programming in Go, I felt this was a good course to polish it up and I was not let down. The gradual build up of complexity and a wide variety of topics being covered made the course a well rounded one. ...

March 30, 2023 · 4 min · Adyanth Hosavalike

CSE 260 - Parallel Computing

Introduction I took CSE 260 Parallel Computing by Bryan Chin in my first quarter at UCSD. Advertised as a practical course alternative to the CSE 240B Parallel Computer Architecture, I was interested in this as a good complement to CSE 240A Computer Architecture, and it did not disappoint! The course was fully hands on with three projects and the course based around the practical implementation of parallel computing. Contents ranged from vector processing on CPUs, graphics acceleration for arithmetic and using multiple independent systems using message passing for processing large amounts of data, while including theoretical concepts behind these like Amdahl’s law for speedup and Little’s Law for pipelines. ...

December 15, 2022 · 6 min · Adyanth Hosavalike

CSE 291 - Virtualization

Introduction CSE 291 Virtualization , by Yiying Zhang , is one of my first courses that I have taken as a Master’s student at University of California, San Diego. We started from the basics of virtualization, progressed through different types and solutions, dove into containers, Kubernetes and serverless, and ended on a high note with cloud computing and its future. If you have read my previous posts, I have been using virtualization solutions for quite some time, for both work and play. But I had never really sat down to think how would one virtualize a whole system and what kind of complexity that would bring. The naive way to think about it would be “dual/multi boot, but together”, but that certainly leaves a lot to be desired in terms of explanation. While I had certain ideologies in mind for virtualization, they were lacking where the rubber meets the road, how does it work with existing physical hardware. ...

November 27, 2022 · 8 min · Adyanth Hosavalike