Programming Language Research Group

Programming language design, semantics, algorithms, and implementation with an emphasis on convenient use of parallelism using multicores and GPUs.

    Among our current projects are:
    1. Machine learning algorithms suitable for fast implementation on GPUs (in collaboration with the Oracle Labs IRML group).
    2. 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.
    3. Fast parallel algorithms for pseudorandom number generators (this produced the SplittableRandom class for Java JDK8).

Hardware and Software, Engineered to Work Together