Abstract
We present the design and prototype implementation of the scheduling component in ArTCoP(architecture transparent control of parallelism), a novel run-time environment (RTE) for parallel execution of high-level languages. A key feature of ArTCoP is its support for deep process and memory hierarchies, shown in the scheduler by supporting light-weight threads. To realise a system with easily exchangeable components, the system defines a micro-kernel, providing basic infrastructure, such as garbage collection. All complex RTE operations, including the handling of parallelism, are implemented at a separate system level. By choosing Concurrent Haskell as high-level system language, we obtain a prototype in the form of an executable specification that is easier to maintain and more flexible than conventional RTEs. We demonstrate the flexibility of this approach by presenting implementations of a scheduler for light-weight threads in ArTCoP, based on GHC Version 6.6.
Preview
Unable to display preview. Download preview PDF.
We’re sorry, something doesn't seem to be working properly.
Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.
References
Al Zain, A.D., Trinder, P.W., Loidl, H-W., Michaelson, G.: Managing Heterogeneity in a Grid Parallel Haskell. Scalable Computing: Practice and Experience 7(3), 9–26 (2006)
Berthold, J.: Towards a Generalised Runtime Environment for Parallel Haskells. In: Bubak, M., van Albada, G.D., Sloot, P.M.A., Dongarra, J.J. (eds.) ICCS 2004. LNCS, vol. 3038, p. 297. Springer, Heidelberg (2004)
Berthold, J., Loogen, R.: Parallel coordination made explicit in a functional setting. In: IFL 2006. LNCS, vol. 4449, pp. 73–90. Springer, Heidelberg (2007)
Biagioni, E., Fu, G.: The Hello Operating System, http://www2.ics.hawaii.edu/~esb/prof/proj/hello/
Fluet, M., Ford, N., Rainey, M., Reppy, J., Shaw, A., Xiao, Y.: Status Report: The Manticore Project. In: Proceedings of the ACM SIGPLAN Workshop on ML, Freiburg, Germany, pp. 15–24 (October 2007)
Foster, I., Kesselman, C., Tuecke, S.: The anatomy of the Grid: Enabling scalable virtual organizations. International Journal of High Performance Computing Applications 15(3), 200–222 (2001)
Hallgren, T., Jones, M.P., Leslie, R., Tolmach, A.P.: A Principled Approach to Operating System Construction in Haskell. In: ICFP 2005. Conf. on Functional Programming, Tallinn, Estonia, September 26–28, pp. 116–128. ACM Press, New York (2005)
Henderson, P.: Purely Functional Operating Systems. In: Functional Programming and its Applications, Cambridge University Press, Cambridge (1982)
Holyer, I., Davies, N., Dornan, C.: The Brisk Project: Concurrent and Distributed Functional Systems. In: Glasgow Workshop on Functional Programming, Electronic Workshops in Computing, Ullapool, Scotland, Springer, Heidelberg (1995)
Jagannathan, S., Philbin, J.: A Customizable Substrate for Concurrent Languages. In: PLDI 1992. Conf. on Programming Language Design and Implementation, pp. 55–67. ACM Press, New York (1992) (ACM SIGPLAN Notices 27(7))
Karlsson, K.: Nebula, a Functional Operating System. Technical report, Chalmers University (1981)
King, D.J., Wadler, P.: Combining Monads. Technical report, University of Glasgow (1993)
Peng Li, A.T., Marlow, S., Peyton Jones, S.: Lightweight Concurrency Primitives for GHC. In: Haskell Workshop, Freiburg, Germany, pp. 107–118 (2007)
Perry, N.: Towards a Functional Operating System. Technical report, Dept. of Computing, Imperial College, London, UK (1988)
Peyton Jones, S.L., Gordon, A., Finne, S.: Concurrent Haskell. In: POPL 1996. Symp on Principles of Programming Languages, ACM Press, New York (1996)
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2002)
Shapiro, E.: Systems Programming in Concurrent Prolog. In: POPL 1984. Symp. on Principles of Programming Languages, Salt Lake City, Utah (1984)
Stoye, W.R.: A New Scheme for Writing Functional Operating Systems. Technical Report 56, Computer Lab, Cambridge University (1984)
Trinder, P.W., Hammond, K., Mattson, J.S., Partridge, A.S., Peyton Jones, S.L.: GUM: A Portable Parallel Implementation of Haskell. In: PLDI 1996. Conf. on Programming Language Design and Implementation, Philadelphia, pp. 79–88 (1996)
Turner, D.: Functional Programming and Communicating Processes. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds.) PARLE. LNCS, vol. 259, pp. 54–74. Springer, Heidelberg (1987)
van Weelden, A., Plasmeijer, R.: Towards a Strongly Typed Functional Operating System. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, pp. 45–72. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Berthold, J., Al Zain, A., Loidl, HW. (2007). Scheduling Light-Weight Parallelism in ArTCoP . In: Hudak, P., Warren, D.S. (eds) Practical Aspects of Declarative Languages. PADL 2008. Lecture Notes in Computer Science, vol 4902. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77442-6_15
Download citation
DOI: https://doi.org/10.1007/978-3-540-77442-6_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77441-9
Online ISBN: 978-3-540-77442-6
eBook Packages: Computer ScienceComputer Science (R0)