A parallel programming language extension for Java
summary
A Java language extension called pH adds compositional operators (a new parallel bar and parallel-for) grounded in Pi-calculus, compiles by source-to-source translation to plain Java, and implements channels with send/receive, selection, reductions, return-to-cancel semantics and annotations for @IP distribution and @OpenCL GPU placement. Experiments show matrix-multiply and reductions run near thread-level performance, recursive and speculative parallelism are expressible, correctness checks local to composition, the prototype and sync core live on GitHub but are no longer actively maintained.
AI-written summary · about
chapters (20)
- 0:00Introduction to legacy migration
- 1:11From DSLs to GPH concept
- 3:46Parallelism models overview
- 6:44GPH based on Pi calculus
- 7:26Compositional operators explained
- 8:08Data parallelism examples
- 9:37Recursive and speculative parallelism
- 11:20Termination and reductions
- 13:12Performance comparison with threads
- 15:39Distribution and message passing
- 17:22Non-determinism and semantics
- 18:24Data flow and actor emulation
- 19:29Distributed and GPU execution
- 22:03Correctness and thread safety
- 24:13Pi calculus theoretical basis
- 25:36Key takeaway compositional operators
- 26:19Language integration benefits
- 28:26Tooling and compatibility challenges
- 30:12Implementation and future work
- 31:16Q&A session
related talks
36mParallel Algebraic Effect Handlers
45mTowards a better Parallelism
01h 06mProject Lambda: Simplifying Concurrent Programming in Java SE 8
55mParallel-Ready Java Code
40mJava GPGPU Enablement: Are We There Yet?
46mMake Your CPU Cores Sweat with Parallel Streams
47mJava and GPU … are we nearly there yet?
46mAchieving Functional Programming in Java
