Current and Past Projects

Automatic Transformation from Monolithic Applications to Microservices

GitHub

Transforming large, tightly coupled monolithic applications into microservices is a time-consuming, and error-prone process. This project aims to build a push-button system designed to fully automate such transformations correctly. By combining Ahead-of-Time and Just-in-Time program transformation, the system partitions an application, rewrites its code to handle distributed communication, and manages shared state without requiring manual intervention. This makes the benefits of microservices—like scalability and maintainability—accessible without the high cost and risk of a manual rewrite.

Scaling Graph Machine Learning Systems with Modern Storage

Paper @ DaMoN '24 | Poster @ NEDB '23

This project explores a single-machine system for training graph neural networks (GNNs) on datasets that exceed main memory capacity, by leveraging computational storage and GPU Direct Storage to accelerate sampling and feature retrieval. By offloading sampling to a smartSSD with an FPGA and enabling direct GPU access to features, we reduce CPU load and I/O overhead. Our design achieves performance on par with distributed solutions using only a single server, making large-scale GNN training more efficient and accessible.