Automatic Distribution of Sequential Code Using JavaSymphony Middleware

  • Saeed Parsa
  • Vahid Khalilpoor
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3831)


In this paper the design and implementation of a framework, called jDistributor, for automatic conversion of sequential code into distributed program code is described. Optimal distribution of the program code is attained by applying a specific hierarchical clustering algorithm to partition the code into components with almost the same amount of speed up. To speed up the execution of the components, inter-component method calls are converted into non-blocking remote calls, when appropriate. All the inter-component remote calls are carried out through a component, called Proxy. The Proxy uses an Object Manager component to construct remote objects. A component called Synchronizer receives the values of reference parameters and the return value from remote methods. All the inter-component communications are handled by a connector component, which is based on a javaSymphony infrastructure.


Code Block Method Call Hierarchical Cluster Algorithm Java Code Remote Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baude, F.C., Caromel, D., Morel, M.: From Distributed Objects to Hierarchical Grid Components. In: Meersman, R., Tari, Z., Schmidt, D.C. (eds.) CoopIS 2003, DOA 2003, and ODBASE 2003. LNCS, vol. 2888, pp. 1226–1242. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Aridor, Y., Teperman, M.F.A.: cJVM: a Cluster Aware JVM. In: Proceedings of the First Annual Workshop on Java for High-Performance Computing in Conjunction with the 1999 ACM International Conference on Supercomputing (ICS), Rhodes, Greece, June 20 (1999)Google Scholar
  3. 3.
    Haumacher, B., Moschny, T., Reuter, J., Tichy, W.F.: Transparent Distributed Threads for Java. In: IPDPS 2003, Nice, France, April 22-26. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  4. 4.
  5. 5.
    Jugravu, A., Fahringer, T.: JavaSymphony: A New Programming Paradigm to Control and to Synchronize Locality, Parallelism and Load Balancing for Parallel and Distributed Computing. Concurrency and Computation: Practice and Experience: Concurrency Commutate: Pract.Exper (2000)Google Scholar
  6. 6.
    Fahringer, T.: JavaSymphony: A System for Development of Locality-Oriented Distributed and Parallel Java Applications. In: IEEE Intl. Conf. on Cluster Computing, CLUSTER 2000, Chemnitz, Germany (December 2000)Google Scholar
  7. 7.
    Hunt, G.C., Scott, M.L.: The Coign Automatic Distributed Partitioning System. In: 3rd Symposium on Operating Systems Design and Implementation (1999)Google Scholar
  8. 8.
    Parsa, S., Bousherian, O.: The Design and Implementation of a Framework for Automatic Modularization of Software Systems. Journal of Supercomputing 32(1) (January 2005)Google Scholar
  9. 9.
    Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimation. The Journal of Supercomputing 12(3), 227–252 (1998)Google Scholar
  10. 10.
    Suresh, D.C., Najar, W.A.: Profiling Tools for Hardware/Software Partitioning of Embeded Applications. In: Proc. ACM Symp. On LCTES (June 2003)Google Scholar
  11. 11.
    Arnold, G.M.: Cluster Analysis. In: Everitt, B.S., Landau, S., Leese, M. (eds.), 4th edn., London, Arnold, pp. viii + 238 (2001); £40.00 ISBN 0-340-76119-9Google Scholar
  12. 12.
    Zima, H.: Supercompilers for Parallel and Vector Computers. ACM Press, New York (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Saeed Parsa
    • 1
  • Vahid Khalilpoor
    • 1
  1. 1.Faculty of Computer EngineeringIran University of Science and Technology 

Personalised recommendations