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. © 2009 Elsevier B.V. All rights reserved.
Honda, K., Vasconcelos, V. T., & Yoshida, N. (2009). Type-Directed Compilation for Multicore Programming. Electronic Notes in Theoretical Computer Science, 241(C), 101–111. https://doi.org/10.1016/j.entcs.2009.06.006