Ph.D. Student of Computer Science @ UT Austin.

Lamport Distributed Mutual Exclusion

Normally, having consistent event ordering in a distributed system is hard because we have no common clock. Since we don’t have a common clock to measure with, we rely on logical properties of time in the absence of clock. Here we use causality replation between events..

Specifying Token Ring for Mutual Exclusion

Mutual exclusion is a common term appearing frequently in computer sciences. In essence, it’s a mechanism of concurrency control allowing exclusive access to some resource (or “critical region”). Token passing is an algorithm for distributed mutual exclusion and will be our focus in this post..

Writing Specifications in a Distributed System using Ivy

Before we jump into how to write specifications in a distributed setting, we first define what a specification is. I take the definition from the magnificent Ken McMillan: a specification is a statement..

Whiz: Data-Driven Analytics Execution

This paper by UTNS lab appeared in NSDI 2021. It presents a data-analytics framework that decouples intermediate data from computations..

In-Network Aggregation for Shared Machine Learning Clusters

This paper by Nadeen appeared in MLSys 2021. It presents an in-network aggregation framework called PANAMA for distributed ML training tasks. PANAMA has two components: (1) an in-network hardware accelerator with support for floating-point gradient aggregation; (2) a domain-specific load-balancing and congestion control protocol..

What is Memcached

Memcached is a high-performance, distributed caching system. Although application-neutral, it’s most commonly used to speed up dynamic Web applications by alleviating database load. Memcached is used on LiveJournal, Slashdot, Wikipedia and other high-traffic sites..

Deploy Hugo Site to GitHub Pages

This post assumes the user has already setup two separate repositories: a private repository for Hugo source files, and a public repository for GitHub Pages. Test Hugo site by executing hugo server in the source code directory to make sure the site is generated properly. Then, we need to generate a pair of keys by using the following command: ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f deployment -N "" This will create two files: deployment and deployment...

Quantum Search Algorithm

This is a comprehensive summary over how Grover’s quantum search algorithm works. It explains the three major steps involved in Grover’s iteration..

Quantum State in a Nutshell

There are thousands of articles trying to explain what exactly a quantum state is. Many of them boiled down to ‘‘the state of a qubit is 0, 1, or 0 and 1 at the same time’’. This statement leads to both confusion and misinterpretation. The explanation I found on Quantum computing for the very curious is by far the most elegant and simplest: The state of a qubit is a vector in a two-dimensional vector space...

Writing in the Sciences - Writing Process

This post covers the topics mentioned in Writing in the Sciences offered on Coursera. Writing Process 🔗The writing process includes three steps: Prewriting Collect and organize information Brainstorm take-home messages Work out ideas away from the computer Develop a road map Writing the first draft Putting ideas together in organized prose Revision Read out loud Cut the clutter Verb check Get feedback A lot of people often convolute step 2 and 3...