Abstract
This paper presents a language independent runtime framework—called Weaves—for object based composition of unmodified code modules that enables selective sharing of state between multiple control flows through a process. Furthermore, the framework allows dynamic instantiation of code modules and control flows through them. In effect, weaves create intra-process modules (similar to objects in OOP) from code written in any language. Applications can be built by instantiating Weaves to form Tapestries of dynamically interacting code. The framework enables objects to be arbitrarily shared—it is a true superset of both processes as well as threads, with code sharing and fast context switching time similar to threads. Weaves does not require any special support from either the language or application code—practically any code can be weaved. Weaves also include support runtime loading and linking of object modules enabling the next generation of highly dynamic applications. This paper presents the elements of the Weaves framework and its implementation on the Linux platform over source-code independent ELF object files. The current implementation has been validated over Sweep3D, a benchmark for 3D discrete ordinates neutron transport (Koch et al. Trans. Am. Nucl. Soc. 65 (198) [1992]), and a user-level port of the Linux 2.4 family kernel TCP/IP protocol stack.
Similar content being viewed by others
References
K. R. Koch R. S. Baker R. E. Alcouffe (1992) ArticleTitle.Solution of the First-Order form of the 3D Discrete Ordinates Equation on a Massively Parallel Processor Trans. Am. Nucl. Soc. 65 198
Microsoft Corporation, DCOM Technical Overview, http://www.microsoft.com, 1996–2004.
Object Management Group, COBRA Faqs and Basics, http//www.omg.org1, 1997–2004.
I. Foster R. Olsen S. Tuecke (1992) ArticleTitleProductive Parallel Programming: The PCN Approach J. Scientific Comput. 1 IssueID1 51–66
I. Foster S. Taylor (1998) Strand: New concepts in Parallel Programming Prentice-Hall Eagle wood cliffs NJ
OpenMP Architecture Review Board, OpenMP, http://www.openmp.org, 1997–2004.
D. Gelernter and A. Bernstein, Distributed Communication via Global Buffer, in Proc. of the ACM Symposium on Principles of Principles of Distributed Computing, pp. 10–18 (August 1982).
N. Carriero and D. Gelernter, Linda in Context, Communications of the ACM (April 1989).
V. S. Adve, R. Bagrodia, J. C. Browne, E. Deelman, A. Dube, E. Houstis, J. Rice, R. Sakellariou, D. Sundaram-Stukel, P. J. Teller, and M. K. Vernon, POEMS: End-to End Performance Design of Large Parallel Adaptive Computational Systems, IEEE Trans. on Software Eng. (Special Issue on Software and Performance), 26(11):1027–1048 (November 2002).
J. C. Browne, E. Berger, and A. Dube, Compositional Development of Performance Models in POEMS, Int. J. High Perform. Comput. Applicat. 14(4):283–291 (Winter 2000).
T. Kindberg A. Fox (March 2002) ArticleTitleSystem software for ubiquibtous computing IEEE, J. Pervasive Comput. 1 IssueID1 70–81
Sun Microsystems, Lesson: Object-Oriented Programming concepts, The JavaTM Tutorial, http://java.sun.com/, 1995–2004.
S. Liang and G. Bracha, Dynamic Class Loading in the Java Virtual Machine, ACM SIGPLAN Notices, in Proc. of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, language, and application, Vol. 33(10) (October 1998).
J. Aycock, A Brief History of Just-in-time, ACM Comput. Surveys (CSUR), 35(2), (June 2003).
J. Darlington, Y. Guo, H. W. To, and J. Yasng, Parallel Skeletons for Structured Composition, ACM SIGPLAN Notices, in Proc. of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming (August 1995).
M.C. Rinar M.S. Lam (May 1998) ArticleTitleThe Design, Implementation, and Evaluation of Jade ACM Trans. on Program. Languages and Sys. (TOPLAS) 20 IssueID3 483–545
H.E. Bal R. Bhoedjan R. Hofman C. Jacops K. Langendoen T. Rühl M. F. Kaashoek (Feburary 1998) ArticleTitlePerformance Evaluation of theOrca Shared-object system ACM Trans. on Computer Sys. (TOCS) 16 IssueID1 1–40
M. Sato and OpenMP: Parallel Programming API for Shared Memory Multiprocessors and On-chip Multiprocessors, in Proc. of the 15th international symposium on System Synthesis (Special session on on-chip multi-processing) (October 2002).
I. Foster (July 1996) ArticleTitleCompositional Parallel Programming Language ACM Trans. on Program Languages and Sys 18 IssueID4 454–476
R. W. Numrich J. Reid (August 1998) ArticleTitleCo-array Fortran for Parallel Programming ACM SIGPLAN Fortran Forum 17 IssueID2 1–31
Schwan K., Ramnath R., Vasudevan S., Ogle D. (1987). A system for Parallel Programming, in Proc. of the 9th international conference of Software Engineering (March 1987).
G. L. Steele, Making Asynchronous Parallelism Safe for the World, in Proc. of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (December 1989).
M. L. Scott, T. J. LeBlanc, and B. D. Marsh, Multi-model Parallel Programming in Psyche, ACM SIGPLAN Notices, Second ACM SIGPLAN symposium on Principles and practice of parallel programming (February 1990).
J. Kempf and P. B. Kessler, Cross-address Space Dynamic Linking, in Proc. of the Second International Workshop on Workshop on Object Orientation in Operating Systems (IEEE), Vol. 24(25): pp. 250–256 (September 1992).
Tool Interface Standard (TIS) committee, Executable and Linkable Format (ELF) Specification, Portable Formats Specification, Version 1.2 (May 1995)
R. E. Gantenbein and D. W. Jones, Dynamic Binding of Separately Compiled under Program Control, in Proc. of the 1986 ACM fourteenth annual conference on Computer science (February 1986).
S. Varadarajan and N. Ramakrishnan, Novel Runtime Systems Support for Adaptive Compositional Modeling in PSEs, FGCS Special Issue on PSEs, 21(6) (April 2005, to appear).
S. Varadarajan, J. Mukherjee, and N. Ramakrishnan, Weaves: A Novel Direct Code Execution Interface for Parallel High Performance Scientific Codes, Department of Computer Science, Virginia Tech, Technical Report cs.DC/0205004, Computing Research Repository (CoRR) (May 2002).
N. Rasmakrishnan L. T. Watson D. G. Kafura C.J. Ribbens C. A. Shaffer (2002) ArticleTitleProgramming Environments for Multidisciplinary Grid Communities Concurrency and Computation: Practice and Experience (Special Issue on Grid Computing Environments) 14 1241–1273
Mukherjee J. (2002). A Compiler Directed Framework for Parallel Compositional Systems. MS Thesis, Department of Computer Science, Virginia Tech (December 2002).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Mukherjee, J., Varadarajan, S. Weaves: A Framework for Reconfigurable Programming. Int J Parallel Prog 33, 279–305 (2005). https://doi.org/10.1007/s10766-005-3591-5
Issue Date:
DOI: https://doi.org/10.1007/s10766-005-3591-5