Concurrent programming has gained popularity over the past decades. Every language and platform provides corresponding primitives, which become harder and harder to use efficiently with the increasing system complexity, such as having multiple NUMA nodes, as well as with relaxations of memory models. Several important questions arise from this in practice. How to build efficient concurrent algorithms nowadays? What is the best trade-off between progress guarantees, efficiency, and fairness? How to check all these algorithms for correctness? How to benchmark them? While some of the questions are partially answered in academia, a lot of the practical problems are still open. Our primary focus is to answer these questions by providing practically reasonable and theoretically valuable solutions as well as high-quality tools that can help other researchers and developers in the field of concurrency.
Our topics of interest include:
- Concurrent algorithms and data structures
- Non-volatile memory (NVM)
- Testing and verification
- Performance analysis, debugging, and optimization
- Parallel programming languages and models
- Memory reclamation
See the full list of publications here.
We are hiring interns all year round. The ideal candidate would have a strong background in CS or Math and have some knowledge of concurrent programming. Please email Nikita Koval for details at email@example.com.