Abstract
Programming models for concurrency are optimized for dealing with nondeterminism, for example to handle asynchronously arriving events. To shield the developer from data race errors effectively, such models may prevent shared access to data altogether. However, this restriction also makes them unsuitable for applications that require data parallelism. We present a library-based approach for permitting parallel access to arrays while preserving the safety guarantees of the original model. When applied to SCOOP, an object-oriented concurrency model, the approach exhibits a negligible performance overhead compared to ordinary threaded implementations of two parallel benchmark programs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press (1986)
Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent programming in Erlang, 2nd edn. Prentice-Hall (1996)
Blelloch, G.E.: NESL: A nested data-parallel language. Tech. Rep. CMU-CS-95-170, Carnegie Mellon University (1995)
Chakravarty, M.M.T., Leshchinskiy, R., Jones, P.S., Keller, G., Marlow, S.: Data parallel Haskell: a status report. In: Proceedings of the 2007 Workshop on Declarative Aspects of Multicore Programming, pp. 10–18. ACM (2007)
Chamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications 21(3), 291–312 (2007)
Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent control with readers and writers. Communications of the ACM 14(10), 667–668 (1971)
Dagum, L., Menon, R.: OpenMP: An industry-standard API for shared-memory programming. IEEE Computer Science & Engineering 5(1), 46–55 (1998)
Eiffel Software (2013), http://www.eiffel.com/
Go programming language (2013), http://golang.org/
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall (1997)
Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. Ph.D. thesis, ETH Zurich (2007)
Okur, S., Dig, D.: How do developers use parallel libraries? In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012, pp. 54:1–54:11. ACM (2012)
Perl programming language (2013), http://www.perl.org/
Reinders, J.: Intel threading building blocks – outfitting C++ for multi-core processor parallelism. O’Reilly (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Schill, M., Nanz, S., Meyer, B. (2013). Handling Parallelism in a Concurrency Model. In: Lourenço, J.M., Farchi, E. (eds) Multicore Software Engineering, Performance, and Tools. MUSEPAT 2013. Lecture Notes in Computer Science, vol 8063. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39955-8_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-39955-8_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39954-1
Online ISBN: 978-3-642-39955-8
eBook Packages: Computer ScienceComputer Science (R0)