Using MPI (2nd ed.): portable parallel programming with the message-passing interface
Using MPI (2nd ed.): portable parallel programming with the message-passing interface
Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Multiparty asynchronous session types
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Session-Based Distributed Programming in Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Parallel Algorithms
Formal verification of practical MPI programs
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Nested parallelism for multi-core HPC systems using Java
Journal of Parallel and Distributed Computing
Modular session types for distributed object-oriented programming
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-safe eventful sessions in java
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A theory of design-by-contract for distributed multiparty interactions
CONCUR'10 Proceedings of the 21st international conference on Concurrency theory
Dynamic multirole session types
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parameterised multiparty session types
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Efficient session type guided distributed interaction
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Multiparty session types meet communicating automata
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Linear logical relations for session-based concurrency
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Multiparty session c: safe parallel programming with message optimisation
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Session types: towards safe and fast reconfigurable programming
ACM SIGARCH Computer Architecture News - ACM SIGARCH Computer Architecture News/HEART '12
Hi-index | 0.00 |
The session-typed programming language Session Java (SJ) has proved to be an effective tool for distributed programming, promoting structured programming for communications and compile-time safety. This paper investigates the use of SJ for session-typed parallel programming, and introduces new language primitives for chained iteration and multi-channel communication. These primitives allow the efficient coordination of parallel computation across multiple processes, thus enabling SJ to express the complex communication topologies often used by parallel algorithms. We demonstrate that the new primitives yield clearer and safer code for pipeline, ring and mesh topologies through implementations of representative parallel algorithms. We then present a semantics and session typing system including the new primitives, and prove type soundness and deadlock-freedom for our implementations. The benchmark results show that the new SJ is substantially faster than the original SJ and performs competitively against MPJ Express used as reference.