Safe and Familiar Multi-core Programming by means of a Hybrid Functional and Imperative Language

Veldema R, Philippsen M (2010)


Publication Language: English

Publication Type: Conference contribution, Original article

Publication year: 2010

Journal

Publisher: Springer-verlag

Edited Volumes: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

City/Town: Berlin Heidelberg

Book Volume: 5898

Pages Range: 157-171

Conference Proceedings Title: Languages and Compilers for Parallel Computing, 22nd International Workshop, LCPC 2009

Event location: Newark, DE US

ISBN: 978-3-642-13373-2

URI: http://www2.informatik.uni-erlangen.de/publication/download/LCPC_hpc_tapir.pdf

DOI: 10.1007/978-3-642-13374-9_11

Abstract

Current (heterogeneous) multi-core environments such as gpGPU architectures are hard to program with normal imperative and object-oriented (OO) languages. There are two basic problems to tackle: (1) it is too easy to program race conditions and dead-locks with the available synchronization primitives, and (2) these environments do not support (or support inefficiently) the instructions required for efficient execution of OO programs, e.g., because function pointers and pointer arithmetic are lacking. We address both problems with a new language that comprises both Functional Programming (FP) and OO programming. We solve problem (1) by auto-parallelization in the functional core where all loops and non-dependent calls can be executed in parallel. FP is to be used to write computational intensive code with safe concurrent memory access. An alternative object model that does neither use pointer arithmetic nor function pointers but smart pointers/proxies (to implement polymorphism) as well as mixins and templates (to implement OO like code reuse) solves problem (2). To cleanly integrate the two language cores, we propose a new integration model that even grants some restricted ways to access state from within FP mode. With the new language and prototype compiler we can transparently parallelize code to target both Cuda and multi-core machines (without annotations from the programmer) and obtain good speedups. © 2010 Springer-Verlag.

Authors with CRIS profile

How to cite

APA:

Veldema, R., & Philippsen, M. (2010). Safe and Familiar Multi-core Programming by means of a Hybrid Functional and Imperative Language. In Guang R. Gao, Lori L. Pollock, John Cavazos, Xiaoming Li (Eds.), Languages and Compilers for Parallel Computing, 22nd International Workshop, LCPC 2009 (pp. 157-171). Newark, DE, US: Berlin Heidelberg: Springer-verlag.

MLA:

Veldema, Ronald, and Michael Philippsen. "Safe and Familiar Multi-core Programming by means of a Hybrid Functional and Imperative Language." Proceedings of the 22nd International Workshop of Languages and Compilers for Parallel Computing (LCPC 2009), Newark, DE Ed. Guang R. Gao, Lori L. Pollock, John Cavazos, Xiaoming Li, Berlin Heidelberg: Springer-verlag, 2010. 157-171.

BibTeX: Download