Weaves: A Framework for Reconfigurable Programming

  • Joy Mukherjee
  • Srinidhi Varadarajan


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.


Reconfigurable adaptive compositional dynamic binding intra process 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Koch, K. R., Baker, R. S., Alcouffe, R. E. 1992.Solution of the First-Order form of the 3D Discrete Ordinates Equation on a Massively Parallel ProcessorTrans. Am. Nucl. Soc.65198Google Scholar
  2. 2.
    Microsoft Corporation, DCOM Technical Overview,, 1996–2004.Google Scholar
  3. 3.
    Object Management Group, COBRA Faqs and Basics, http//www.omg.org1, 1997–2004.Google Scholar
  4. 4.
    Foster, I., Olsen, R., Tuecke, S. 1992Productive Parallel Programming: The PCN ApproachJ. Scientific Comput.15166Google Scholar
  5. 5.
    Foster, I., Taylor, S. 1998Strand: New concepts in Parallel ProgrammingPrentice-Hall Eagle wood cliffsNJGoogle Scholar
  6. 6.
    OpenMP Architecture Review Board, OpenMP,, 1997–2004.Google Scholar
  7. 7.
    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).Google Scholar
  8. 8.
    N. Carriero and D. Gelernter, Linda in Context, Communications of the ACM (April 1989).Google Scholar
  9. 9.
    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).Google Scholar
  10. 10.
    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).Google Scholar
  11. 11.
    Kindberg, T., Fox, A. March 2002System software for ubiquibtous computingIEEE, J. Pervasive Comput.17081Google Scholar
  12. 12.
    Sun Microsystems, Lesson: Object-Oriented Programming concepts, The JavaTM Tutorial,, 1995–2004.Google Scholar
  13. 13.
    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).Google Scholar
  14. 14.
    J. Aycock, A Brief History of Just-in-time, ACM Comput. Surveys (CSUR), 35(2), (June 2003).Google Scholar
  15. 15.
    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).Google Scholar
  16. 16.
    Rinar, M.C., Lam, M.S. May 1998The Design, Implementation, and Evaluation of JadeACM Trans. on Program. Languages and Sys. (TOPLAS)20483545Google Scholar
  17. 17.
    Bal, H.E., Bhoedjan, R., Hofman, R., Jacops, C., Langendoen, K., Rühl, T., Kaashoek, M. F. Feburary 1998Performance Evaluation of theOrca Shared-object systemACM Trans. on Computer Sys. (TOCS)16140Google Scholar
  18. 18.
    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).Google Scholar
  19. 19.
    Foster, I. July 1996Compositional Parallel Programming LanguageACM Trans. on Program Languages and Sys18454476Google Scholar
  20. 20.
    Numrich, R. W., Reid, J. August 1998Co-array Fortran for Parallel ProgrammingACM SIGPLAN Fortran Forum17131Google Scholar
  21. 21.
    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).Google Scholar
  22. 22.
    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).Google Scholar
  23. 23.
    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).Google Scholar
  24. 24.
    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).Google Scholar
  25. 25.
    Tool Interface Standard (TIS) committee, Executable and Linkable Format (ELF) Specification, Portable Formats Specification, Version 1.2 (May 1995)Google Scholar
  26. 26.
    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).Google Scholar
  27. 27.
    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).Google Scholar
  28. 28.
    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).Google Scholar
  29. 29.
    Rasmakrishnan, N., Watson, L. T., Kafura, D. G., Ribbens, C.J., Shaffer, C. A. 2002Programming Environments for Multidisciplinary Grid CommunitiesConcurrency and Computation: Practice and Experience (Special Issue on Grid Computing Environments)1412411273Google Scholar
  30. 30.
    Mukherjee J. (2002). A Compiler Directed Framework for Parallel Compositional Systems. MS Thesis, Department of Computer Science, Virginia Tech (December 2002).Google Scholar

Copyright information

© Springer Science+Business Media, Inc. 2005

Authors and Affiliations

  1. 1.Department of Computer ScienceVirginia Polytechnic Institute and State UniversityBlacksburgUSA

Personalised recommendations