Computer Systems: Parallel, Distributed, and Operating Systems
My passion for parallel, distributed, and operating systems (PDO) started back in my undergraduate days when I built a multithreaded C++ application that allowed real-time chatting through a GUI interface. Since then, I've been fascinated by anything that can be designed or implemented in a parallel or distributed manner. The idea of multiple subsystems working together behind the scenes to create the seamless illusion of a single system excites me. I appreciate transparency, both in computing and in life—when things work smoothly in the background without users noticing, that’s when I find systems truly elegant.
Networking: TCP/IP and Network-on-Chip (NoC)
Networking has always given me a sense of excitement, whether it's about TCP/IP protocols or low-level hardware communication. I dream of working on a project that designs and builds a domain-specific reprogrammable ASIC for high-speed networking—something that requires both a deep understanding of network protocols like routing and packet forwarding, as well as the intricate relationships between hardware and electronics.
Another dream of mine is to prototype something similar to Tilera but for GPUs. If chiplet-based designs become the norm, what would be the best interconnect topology for GPU chips? Should it be a ring, mesh, or an all-to-all approach? The possibilities are endless, and that’s what makes this field so exciting.
Performance Evaluation, Stochastic Processes, and Machine Learning
Performance evaluation is at the heart of every research endeavor. I apply concepts from stochastic processes, such as queuing theory, Markov models, and probabilistic modeling, to analyze system behavior under different workloads. At the same time, I integrate machine learning techniques—like regression models and classification methods—to build predictive models that help optimize system performance.