Programming language design, semantics, algorithms, and implementation with an emphasis on convenient use of parallelism using multicores and GPUs.
Among our current projects are:
- Machine learning algorithms suitable for fast implementation on GPUs (in collaboration with the Oracle Labs IRML group).
- Consulting with the Java product group on development of Java and the JVM, including compilation of collection operations and stream expressions for parallel target machines and/or GPUs, as well as explorations of value types and their interaction with generic types.
- Fast parallel algorithms for pseudorandom number generators (this produced the SplittableRandom class for Java JDK8).