This Article 
 Bibliographic References 
 Add to: 
Arachne: A Portable Threads System Supporting Migrant Threads on Heterogeneous Network Farms
May 1998 (vol. 9 no. 5)
pp. 459-469

Abstract—We present the design and implementation of Arachne, a threads system that can be interfaced with a communications library for multithreaded distributed computations. In particular, Arachne supports thread migration between heterogeneous platforms, dynamic stack size management, and recursive thread functions. Arachne is efficient, flexible, and portable—it is based entirely on C and C++.

To facilitate heterogeneous thread operations, we have added three keywords to the C++ language. The Arachne preprocessor takes as input code written in that language and outputs C++ code suitable for compilation with a conventional C++ compiler. The Arachne runtime system manages all threads during program execution. We present some performance measurements on the costs of basic thread operations and thread migration in Arachne and compare these to costs in other threads systems.

[1] J. Banks and J. Carson, "Process Interaction Simulation Languages," Simulation, vol. 44, no. 5, pp. 225-235, May 1985.
[2] J.S. Chase, F.G. Amador, E.D. Lazowska, H.M. Levy, and R.J. Littlefield, "The Amber System: Parallel Programming on a Network of Multiprocessors," Proc. 12th ACM SIGOPS Symp. Operating Systems Principles,Litchfield Park, Ariz., pp. 147-158, Dec. 1989.
[3] E. Dijikstra and B.P. Scholten, "Termination Detection for Diffusing Computations," Information Processing Letters, vol. 11, no. 1, pp. 1-4, 1980.
[4] I. Foster, C. Kesselman, and S. Tuecke, "The Nexus Approach to Integrating Multithreading and Communication," technical report, Argonne Nat'l Laboratory, 1995.
[5] J. Gomez, E. Mascarenhas, and V. Rego, "The CLAM Approach to Multithreaded Communication on Shared-Memory Multiprocessors: Design and Experiments," IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 1, pp. 36-49, Jan. 1998.
[6] J. Gomez, V. Rego, and V. Sunderam, "Scheduling Communication in Multithreaded Programs: Experimental Results," Technical Report TR-97, Purdue Univ., 1997.
[7] J.C. Gomez, V. Rego, and V.S. Sunderam, "Efficient Multithreaded User-Space Transport for Network Computing: Design and Test of the TRAP Protocol," J. Parallel and Distributed Computing, vol. 40, no. 1, pp. 103-117, Jan. 1997.
[8] Std. 1003.1c-1995, Information Technology—Portable Operating System Interface (POSIX)—Part 1: System Application Program Interface (API) [C Language]. IEEE, 1995.
[9] E. Jul, H. Levy, N. Hutchinson, and A. Black, “Fine-Grained Mobility in the Emerald System,” ACM Trans. Computer Systems, vol. 6, no. 1, pp. 109–133, Feb. 1988.
[10] F. Knop, "Software Architectures for Fault-Tolerant Replications and Multithreaded Decompositions: Experiments with Practical Parallel Simulation," PhD thesis, Purdue Univ., Aug. 1996.
[11] K. Li, "IVY: A Shared Virtual Memory System for Parallel Computting," Proc. Int'l Conf. Parallel Processing, pp. 94-101, 1988.
[12] B. Malloy and M. Soffa, "Conversion of Simulation Processes to Pascal Constructs," Software: Practice and Experience, vol. 202, no. 2, pp. 191-207, Feb. 1990.
[13] E. Mascarenhas, F. Knop, and V. Rego, "ParaSol: A Multi-Threaded System for Parallel Simulation Based on Mobile Threads," Proc. Winter Simulation Conf., pp. 690-697, 1995.
[14] E. Mascarenhas and V. Rego, "Migrant Threads on Process Farms: Parallel Programming with Ariadne," Technical Report TR 95-081, Dept. of Computer Sciences, Purdue Univ., Dec. 1995.
[15] E. Mascarenhas and V. Rego, "Ariadne: Architecture of a Portable Threads System Supporting Thread Migration," Software Practice and Experience, vol. 26, no. 3, pp. 327-357, Mar. 1996.
[16] E. Masceranhas, "A System for Multithreaded Parallel Simulation and Computation with Migrant Threads and Objects," PhD thesis, Purdue Univ., Aug. 1996.
[17] J.A. Roskind, "cpp5.y: Yacc-Compatible Input File Defining a C++ Grammar," ftp: .
[18] J.A. Roskind, "cpp5.l: Flex Input File Defining a C++ Lexical Analyzer," ftp: , 1989-1990.
[19] J. Sang, F. Knop, V. Rego, J. Lee, and C. King, "The Xthreads Library: Design, Implementation and Applications," Proc. 17th Ann. Computer Software and Applications Conf. (COMPSAC '93), Nov. 1993.
[20] J. Sang, E. Mascarenhas, and V. Rego, "Mobile-Process Based Parallel Simulation," J. Parallel and Distributed Computing, vol. 33, no. 1, pp. 12-23, Feb. 1996.
[21] J. Sang, G. Peters, and V. Rego, "Thread Migration on Heterogeneous Systems via Compile-Time Transformations," Proc. Int'l Conf. Parallel and Distributed Systems (ICPADS), pp. 634-639, 1994.
[22] J. Sang and V. Rego, "A Simulation Testbed Based on Lightweight Processes," Software, Practice and Experience, vol. 24, no. 5, pp. 485-505, May 1994.
[23] H.D. Schwetman, “Using CSIM to Model Complex Systems,” Proc. 1988 Winter Simulation Conf., pp. 246–253, 1988.
[24] B. Steensgaard and E. Jul, "Object and Native Code Thread Mobility Among Heterogeneous Computers," Proc. ACM Symp. Operating Systems Principles, pp. 68-78, 1995.

Index Terms:
Heterogeneous thread migration, user-level threads, compile-time code transformations, C++.
Bozhidar Dimitrov, Vernon Rego, "Arachne: A Portable Threads System Supporting Migrant Threads on Heterogeneous Network Farms," IEEE Transactions on Parallel and Distributed Systems, vol. 9, no. 5, pp. 459-469, May 1998, doi:10.1109/71.679216
Usage of this product signifies your acceptance of the Terms of Use.