HIRONDML: FAIR THREADS MIGRATIONS FOR OBJECTIVE CAML
Abstract
In this paper, we present HirondML, an Objective Caml library implementing migrating threads. Our library is based on a simplified implementation of the Fair Threads, a reactive threads system originally developed at INRIA. The Fair Threads scheduling policy is based on mixing cooperative and preemptive threads. We designed a thread migration system based on the cooperativeness of Fair Threads. To minimize data copying, we adopted an original rebinding policy distinguishing local variables, which are copied, from global variables, which are rebound when a migration takes place. Such a choice allows two styles of programming, by copy or by sharing. This will be illustrated by different distributed applications.
References
- Parallel Processing Letters (2000). Google Scholar
-
Anne-Gwenn Bosser , Advances in Computer Entertainment Technology (ACE) ( 2004 ) . Google Scholar - Sara Bouchenak, Daniel Hagimont, Sacha Krakowiak, Noel De Palma, and Fabienne Royer. Experiences Implementing Efficient Java Thread Serialization, Mobility and Persistence. Technical Report RR-4662, Inria, 2002 . Google Scholar
- Frédéric Boussinot. Java Fair Threads. Technical Report RR-4139, Inria, 2001 . Google Scholar
- Frédéric Boussinot. FairThreads: mixing cooperative and preemptive threads in C. Technical Report RR-5039, Inria, December 2003 . Google Scholar
- Parallel Processing Letters (2003). Google Scholar
-
Sylvain Conchon and Fabrice Le Fessant , JoCaml: mobile agents for Objective-Caml , Symp. on Agent Systems and Applications, Mobile Agents (ASA/MA) ( 1999 ) . Google Scholar -
David Cronk , Matthew Haines and Piyush Mehrotra , Thread migration in the presence of pointers , 30th Hawaii International Conference on System Sciences (HICSS) ( 1997 ) . Google Scholar -
Marco Danelutto , Parallel Functional Programming with Skeletons: the OCamlP3L experiment , Workshop on ML and its applications ( Cornell University , 1998 ) . Google Scholar - , Constructive Methods for Parallel Programming, eds.
S. Gorlatch and C. Lengauer (Nova Science Publishers, 2002) pp. 165–178. Google Scholar - Higher-Order and Symbolic Computation 11(1), (1998). Google Scholar
- Xavier Leroy. The Objective Caml system release 3.10: Documentation and user's manual. Technical report, INRIA, 2007. on-line version http://caml.inria.fr . Google Scholar
-
John H. Reppy , Concurrent Programming in ML ( Cambridge University Press , 1999 ) . Crossref, Google Scholar - E. S. Roberts. Implementing Exceptions in C. Technical Report 89/40, Digital Equipement Corporation (SRC), March 1989 . Google Scholar
-
Manuel Serrano , Frederic Boussinot and Bernard Serpette , Scheme Fair Threads , International Conference on Principles and Practice of Declarative Programming (PPDP) ( 2004 ) . Google Scholar - Peter Sewell, James J. Leifer, Keith Wansbrough, Mair Allen-Williams, Francesco Zappa Nardelli, Pierre Habouzit, and Viktor Vafeiadis. Acute: High-level programming language design for distributed computation — design rationale and language definition. Technical Report TR-605, University of Cambridge Computer Laboratory, October 2004 . Google Scholar


