LogP: towards a realistic model of parallel computation
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Route packets, not wires: on-chip inteconnection networks
Proceedings of the 38th annual Design Automation Conference
Applied Cryptography: Protocols, Algorithms, and Source Code in C
Applied Cryptography: Protocols, Algorithms, and Source Code in C
Parallel Computer Architecture: A Hardware/Software Approach
Parallel Computer Architecture: A Hardware/Software Approach
Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
An Interaction-based Language and its Typing System
PARLE '94 Proceedings of the 6th International PARLE Conference on Parallel Architectures and Languages Europe
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Program improvement by source to source transformation
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Multipoint session types for a distributed calculus
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
DirectFlow: a domain-specific language for information-flow systems
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Automatic analysis of DMA races using model checking and k-induction
Formal Methods in System Design
Safe asynchronous multicore memory operations
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
In this paper, we outline a general picture of our ongoing work on a compilation and execution framework for a class of multicore CPUs [Gelsinger, P., P. Gargini, G. Parker and A. Yu, Microprocessors circa 2000, IEEE SPectrum (1989), pp. 43-47; Olukotun, K., B. A. Nayfeh, L. Hammond, K. G. Wilson and K. Chang, The case for a single-chip multiprocessor, in: ASPLOS, 1996, pp. 2-11; Pham, D. et al., The design and implementation of a first-generation cell processor, in: ISSCC Dig. Tech. Papers (2005), pp. 184-185]. Our focus is to harness the power of concurrency and asynchrony in one of the major forms of multicore CPUs based on distributed, noncoherent memory [Pham, D. et al., The design and implementation of a first-generation cell processor, in: ISSCC Dig. Tech. Papers (2005), pp. 184-185], using the well-known technology of type-directed compilation [Morrisett, G., D. Walker, K. Crary and N. Glew, From System F to typed assembly language, ACM Trans. Program. Lang. Syst. 21 (1999), pp. 527-568]. The key idea is to regard explicit asynchronous data transfer among local caches as typed communication among processes. By typing imperative processes with a variant of session types [Honda, K., V. T. Vasconcelos and M. Kubo, Language primitives and type disciplines for structured communication-based programming, in: ESOP'98, LNCS 1381 (1998), pp. 22-138; Takeuchi, K., K. Honda and M. Kubo, An interaction-based language and its typing system, in: PARLE'94, LNCS 817 (1994), pp. 398-413], we obtain both type-safe and efficient compilation into processes distributed over multiple cores with local memories.