I am a first-year Ph.D. student
at the Computer Systems Lab,
Paul G. Allen School of Computer Science & Engineering,
University of Washington
advised by Arvind Krishnamurthy.
Before joining UW, I obtained a bachelor's degree
from the ACM Honors Class,
Shanghai Jiao Tong University,
and I was a research intern at the Cornell University,
advised by Emin Gün Sirer.
I am broadly interested in distributed systems and operating systems.
Ignacio Cano, Lequn Chen, Pedro Fonseca, Tianqi Chen, Chern Cheah, Karan Gupta, Ramesh Chandra, Arvind Krishnamurthy
arXiv, abs/1812.01837, 2018
Kai Mast, Lequn Chen, and Emin Gün Sirer
arXiv, abs/1801.01618, 2018
Kai Mast, Lequn Chen, and Emin Gün Sirer
Workshop on System Software for Trusted Execution, Shanghai, China, October 2017
Worked on a database that provides blockchain-like guarantees of data integrity using Trusted Execution Environments
- Implemented large parts of the prototype on Intel SGX.
- Boosted the performance inside the SGX enclave.
- Increased the throughput of multi-client read workload 30x and reduced the latency by 40%.
- Implemented transaction support with optimistic concurrency control.
- Optimized query optimizer and executor, reducing cost of join operation to almost constant in typical workloads.
- Found and solved dozens of deadlocks and data races in the initial version of the code.
- Designed benchmarks and conducted experiments on a distributed testbed.
Shanghai Jiao Tong University
advised by Weinan Zhang
Mar 2017 – Jun 2017
Worked on Computational Advertisement. Built a machine learning pipeline for an advertisement exchange startup.
- Designed and trained a Click-Through Rate (CTR) estimation model.
- Integrate the model with the startup's Real-Time Bidding (RTB) software stack.
advised by Gui-Rong Xue
Jun 2016 – Mar 2017
Worked on a program Yi
playing board game
similar to Google DeepMind's AlphaGo
Yi runs Monte-Carlo tree search algorithm, deep neural network, and reinforcement learning algorithms.
- Designed and Implemented a distributed system running both CPU and GPU workers on multiple machines.
- Reduced the network latency and increased single-machine performance.
- Refactored the code base. Trained and tuned neural networks. It could beat entry-level professional human players.
- Led the teaching assistant team.
- Redesigned assignments. Changed the target platform from SPIM MIPS Simulator to Linux x86-64,
giving students more possibilities to do compilation optimization.
- Built a Continuous Integration (CI) system.
Once students pushed changes to their git repository, the CI would fetch the source code,
compile it, test its performance on all test cases, and update the leaderboard.
- Built an online judge system for algorithm exams.
- Led a group of students to implement simplified MapReduce and Google File System.
Deployed and benchmarked them on all machines of the computer room.
- Gave a lecture on how to begin C++ projects. Review and make comments to students' projects.
- Built an online judge system for the game bot project.
- Carefully designed two sets of homework to help students master the basic idea of OOP in C++.
Compiles C-and-Java-like language to MIPS assembly.
I paid close attention to code generation and optimization.
Features included graph coloring register allocation,transformation in Static Single Assignment form,
and different kinds of optimizations.
Deep learning needs graphics cards to speed up computation.
Labs sometimes cannot afford to buy graphics cards for each member.
Researchers are not always good at server administration.
This is a solution to isolate users while giving them the root privilege and access to GPUs without sacrificing performance.
QQ, an instant messaging software with 900 million active users,
added a new feature showing users' network status (e.g. Wi-Fi/2G/3G/4G) to friends,
which gave rise to privacy concerns.
I invented a method so that by monitoring this status and social engineering,
users' daily routine could possibly be deduced.
A command line source code version control system,
providing the ability to archive, restore and compare source code among different versions.
I implemented an efficient diff algorithm,
making the speed of comparing files very fast even when the file contains tens of thousands lines of code.