Julian Shun

Julian Shun

Ph.D. student
School of Computer Science
Carnegie Mellon University
Email: jshun at cs.cmu.edu

Research Statement
Teaching Statement

I am a Ph.D. student in the Computer Science Department at Carnegie Mellon University. I am fortunate to be advised by Guy Blelloch. I am also fortunate to be supported by a Facebook Graduate Fellowship for 2013-2014. I obtained my bachelor's degree in Computer Science from UC Berkeley.

Research Interests

I am interested in all aspects of parallel computing, especially parallel graph processing frameworks, algorithms, data structures and tools for deterministic parallel programming. Below is a description of my recent projects. (For certain papers, the authors are listed alphabetically, following the convention in mathematics and theoretical computer science, and others are listed by contribution.)

Large-scale Graph Processing

I am very interested in developing algorithms for large-scale graph processing. Graph algorithms have many applications, ranging from analyzing social networks to finding patterns in biological networks. I have developed Ligra, a lightweight graph processing framework for shared memory. The project was motivated by the fact that the largest publicly available real-world graphs all fit in shared memory. When graphs fit in shared-memory, processing them using Ligra can give performance improvements of up to orders of magnitude compared to distributed-memory graph processing systems. As an extension, I am currently working on supporting graph compression techniques in Ligra, so that it can support large graphs with less memory. I have also developed practical algorithms with strong theoretical guarantees for many fundamental graph algorithms, such as connected components, minimum spanning forest, triangle computations, maximal independent set and maximal matching. I have implemented these algorithms for the shared memory multicore setting and also for external memory.

Parallel String/Text Algorithms and Data Structures

I have developed practical algorithms with theoretical guarantees for several important algorithms and data structures in string/text processing. These have important applications in bioinformatics, data compression, information retrieval among many others.