How should we write a fast code? This is the main question behind the field of performance engineering. There has been a lot of effort for providing tools and methods to facilitate writing of the fast code. Our project broadly concerns algorithmic and analytic approaches for better understanding and improving the software engineering solutions. For example, parallelization is widely used to achieve performant codes, and there are many solutions which facilitate writing parallel codes. These solutions often involve data structures and algorithms that are the main subject of this project. For instance, Cilksan is a determinacy race detector for parallel Cilk programs which embeds data structures such as union-find structure. Despite its efficiency, it is desirable to improve Cilksan in terms of its speed and memory usage in order to utilize it for finding determinacy bugs in very-large software systems. Our approach in this project is to apply algorithmic techniques to make improve performance engineering tools such as Cilksan.
If you would like to contact us about our work, please scroll down to the people section and click on one of the group leads' people pages, where you can reach out to them directly.