Abstract
Computer systems are increasingly parallel and heterogeneous, while programs are still largely written in sequential languages. The obvious suggestion that the compiler should automatically distribute a sequential program across the system usually fails in practice because of the complexity of dependence analysis in the presence of aliasing.
We introduce the sieve language construct which facilitates dependence analysis by using the programmer’s knowledge about data dependences and makes code more amenable to automatic parallelisation.
The behaviour of sieve programs is deterministic, hence predictable and repeatable. Commercial implementations by Codeplay shows that sieve programs can be efficiently mapped onto a range of systems. This suggests that the sieve construct can be used for building reliable, portable and efficient software for multi-core systems.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
White paper: Intel is leading the way in designing energy-efficient platforms (2006)
AGEIA Technologies: The PhysX processor, http://www.ageia.com/
ClearSpeed Technology: The CSX processor, http://www.clearspeed.com/
Codeplay: Portable high-performance compilers, http://www.codeplay.com/
Lindley, S.: Implementing deterministic declarative concurrency using sieves. In: DAMP. Proceedings of the ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming, ACM Press, New York (2007)
Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann, San Francisco (2002)
Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA. Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 388–402. ACM Press, New York (2003)
Intel: Threading building blocks, http://www.intel.com/software/products/tbb/
PeakStream: SW development platform, http://www.peakstreaminc.com/
RapidMind: SW development platform, http://www.rapidmind.net/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lokhmotov, A., Mycroft, A., Richards, A. (2007). Delayed Side-Effects Ease Multi-core Programming. In: Kermarrec, AM., Bougé, L., Priol, T. (eds) Euro-Par 2007 Parallel Processing. Euro-Par 2007. Lecture Notes in Computer Science, vol 4641. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74466-5_68
Download citation
DOI: https://doi.org/10.1007/978-3-540-74466-5_68
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74465-8
Online ISBN: 978-3-540-74466-5
eBook Packages: Computer ScienceComputer Science (R0)