Introduction to parallel algorithms and architectures: array, trees, hypercubes
Introduction to parallel algorithms and architectures: array, trees, hypercubes
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
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
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
Global Progress in Dynamically Interleaved Multiparty Sessions
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Parallel Algorithms
Formal verification of practical MPI programs
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Global Principal Typing in Partially Commutative Asynchronous Sessions
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
MPI-aware compiler optimizations for improving communication-computation overlap
Proceedings of the 23rd international conference on Supercomputing
Type-safe eventful sessions in java
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A Scalable and Distributed Dynamic Formal Verifier for MPI Programs
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
A theory of design-by-contract for distributed multiparty interactions
CONCUR'10 Proceedings of the 21st international conference on Concurrency theory
Buffered communication analysis in distributed multiparty sessions
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
Automatic formal verification of MPI-based parallel programs
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Scribbling interactions with a formal foundation
ICDCIT'11 Proceedings of the 7th international conference on Distributed computing and internet technology
Safe parallel programming with session Java
COORDINATION'11 Proceedings of the 13th international conference on Coordination models and languages
Communication Optimization Beyond MPI
IPDPSW '11 Proceedings of the 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and PhD Forum
Parameterised multiparty session types
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Multiparty session types meet communicating automata
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Verification of MPI programs using session types
EuroMPI'12 Proceedings of the 19th European conference on Recent Advances in the Message Passing Interface
Session types: towards safe and fast reconfigurable programming
ACM SIGARCH Computer Architecture News - ACM SIGARCH Computer Architecture News/HEART '12
Disciplined structured communications with consistent runtime adaptation
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
This paper presents a new efficient programming toolchain for message-passing parallel algorithms which can fully ensure, for any typable programs and for any execution path, deadlock-freedom, communication safety and global progress through a static checking. The methodology is embodied as a multiparty session-based programming environment for C and its runtime libraries, which we call Session C. Programming starts from specifying a global protocol for a target parallel algorithm, using a protocol description language. From this global protocol, the projection algorithm generates endpoint protocols, based on which each endpoint C program is designed and implemented with a small number of concise session primitives. The endpoint protocol can further be refined to a more optimised protocol through subtyping for asynchronous communication, preserving original safety guarantees. The underlying theory can ensure that the complexity of the toolchain stays in polynomial time against the size of programs. We apply this framework to representative parallel algorithms with complex communication topologies. The benchmark results show that Session C performs competitively against MPI.