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.
Similar content being viewed by others
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
Rights and permissions
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)