Skip to main content
Log in

An analytical model for source code distributability verification

  • Published:
Journal of Zhejiang University SCIENCE C Aims and scope Submit manuscript

Abstract

One way to speed up the execution of sequential programs is to divide them into concurrent segments and execute such segments in a parallel manner over a distributed computing environment. We argue that the execution speedup primarily depends on the concurrency degree between the identified segments as well as communication overhead between the segments. To guarantee the best speedup, we have to obtain the maximum possible concurrency degree between the identified segments, taking communication overhead into consideration. Existing code distributor and multi-threading approaches do not fulfill such requirements; hence, they cannot provide expected distributability gains in advance. To overcome such limitations, we propose a novel approach for verifying the distributability of sequential object-oriented programs. The proposed approach enables users to see the maximum speedup gains before the actual distributability implementations, as it computes an objective function which is used to measure different distribution values from the same program, taking into consideration both remote and sequential calls. Experimental results showed that the proposed approach successfully determines the distributability of different real-life software applications compared with their real-life sequential and distributed implementations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Al-Jaroodi, J., Mohamad, N., Jiang, H., et al., 2005. JOPI: a Java object passing interface. Concurr. Comput. Pract. Exp., 17(7–8):775–795. [doi:10.1002/cpe.854]

    Article  Google Scholar 

  • Berman, F., Wolski, R., Casanova, H., et al., 2003. Adaptive computing on the Grid using AppLeS. IEEE Trans. Parall. Distr. Syst., 14(4):369–382. [doi:10.1109/TPDS. 2003.1195409]

    Article  Google Scholar 

  • Berman, F., Casanova, H., Chien, A., et al., 2005. New Grid scheduling and rescheduling methods in the GrADS project. Int. J. Parall. Program., 33(2):209–229. [doi:10. 1007/s10766-005-3584-4]

    Article  Google Scholar 

  • Bushehrian, O., 2010. Automatic actor-based program partitioning. J. Zhejiang Univ.-Sci. C (Comput. & Electron.), 11(1):45–55. [doi:10.1631/jzus.C0910096]

    Article  Google Scholar 

  • Buyya, R., Abramson, D., 2009. The Nimrod/G grid resource broker for economic-based scheduling. In: Buyya, R., Bubendorfer, K. (Eds.), Market-Oriented Grid and Utility Computing. John Wiley & Sons, Inc., Hoboken, NJ, USA, p.3–27. [doi:10.1002/9780455432.ch17]

    Chapter  Google Scholar 

  • Chen, Y., Gansner, E., Koutsofios, E., 1997. A C++ data model supporting reachability analysis and dead code detection. Proc. 6th European Software Engineering Conf. and the 5th ACM SIGSOFT Symp. on the Foundations of Software Engineering, p.414–431. [doi:10.1007/3-540- 63531-9_28]

    Google Scholar 

  • Deb, D., Fuad, M., Oudshoom, M.J., 2006. Towards autonomic distribution of existing object oriented programs. Int. Conf. on Autonomic and Autonomous Systems, p.17. [doi:10.1109/ICAS.2006.61]

    Chapter  Google Scholar 

  • Ferenc, R., Beszedes, A., Gyim'othy, T., 2004. Extracting facts with Columbus from C++ code. Proc. 8th European Conf. on Software Maintenance and Reengineering, p.4–8.

    Google Scholar 

  • Gentzsch, W., 2001. Sun Grid Engine: towards creating a compute power grid. Proc. 1st IEEE/ACM Int. Symp. on Cluster Computing and the Grid, p.35–36. [doi:10.1109/ CCGRID.2001.923173]

    Chapter  Google Scholar 

  • Gotoda, S., Ito, M., Shibata, N., 2012. Task scheduling algorithm for multicore processor system for minimizing recovery time in case of single node fault. Proc. 12th IEEE/ACM Int. Symp. on Cluster, Cloud and Grid Computing, p.260–267. [doi:10.1109/CCGrid.2012.23]

    Google Scholar 

  • Healy, C.A., Sjodin, M., Rustagi, V., et al., 1998. Bounding loop iterations for timing analysis. Proc. 4th IEEE Real-Time Technology and Applications Symp., p.12–21. [doi:10.1109/RTTAS.1998.683183]

    Google Scholar 

  • Korn, J., Chen, Y., Koutsofios, E., 1999. Chava: reverse engineering and tracking of Java applets. Proc. 6th Working Conf. on Reverse Engineering, p.314–325. [doi:10.1109/WCRE.1999.806970]

    Google Scholar 

  • Koskinen, J., Lehmonen, T., 2010. Analysis of ten reverse engineering tools. Advanced Techniques in Computing Sciences and Software Engineering, p.389–394. [doi:10. 1007/978-90-481-3660-5_67]

    Chapter  Google Scholar 

  • Maani, R., Parsa, S., 2007. An algorithm to improve parallelism in distributes systems using asynchronous calls. Proc. 7th Int. Conf. on Parallel Processing and Applied Mathematics, p.49–58. [doi:10.1007/978-3-540- 68111-3_6]

    Google Scholar 

  • Matzko, S., Clarke, P.J., Gibbs, T.H., et al., 2002. Reveal: a tool to reverse engineer class diagrams. Proc. 40th Int. Conf. on Tools Pacific: Objects for Internet, Mobile and Embedded Applications, p.13–21.

    Google Scholar 

  • Nitzberg, B., Schopf, J.M., Jones, J.P., 2004. PBS Pro: grid computing and scheduling attributes. In: Grid Resource Management. Kluwer Academic Publishers, Norwell, MA, USA, p.183–190. [doi:10.1007/978-1-4615-0509- 9_13]

    Chapter  Google Scholar 

  • Parsa, S., Khalilpoor, V., 2006. Automatic distribution of sequential code using JavaSymphony middleware. Proc. 32nd Conf. on Current Trends in Theory and Practice of Computer Science, p.440–450. [doi:10.1007/11611257_ 42]

    Google Scholar 

  • Raza, A., Vogel, G., Plödereder, E., 2006. Bauhaus—a tool suite for program analysis and reverse engineering. Proc. 11th Ada-Europe Int. Conf. on Reliable Software Technologies, p.71–83. [doi:10.1007/11767077_6]

    Google Scholar 

  • Schoeberl, M., 2006. A time pedictable Java pocessor. Proc. Design, Automation and Test in Europe, p.1–6. [doi:10. 1109/DATE.2006.244146]

    Chapter  Google Scholar 

  • Schoeberl, M., Pedersen, R., 2006. WCET analysis for a Java processor. Proc. 4th Int. Workshop on Java Technologies for Real-Time and Embedded Systems, p.202–211. [doi:10.1145/1167999.1168033]

    Chapter  Google Scholar 

  • Thain, D., Tannenbaum, T., Livny, M., 2005. Distributed computing in practice: the condor experience. Concurr. Comput. Pract. Exp., 17(2–4):323–356. [doi:10.1002/ cpe.938]

    Article  Google Scholar 

  • Zhang, Q.F., Qiu, D.H., Tian, Q.B., et al., 2010. Objectoriented software architecture recovery using a new hybrid clustering algorithm. Proc. 7th Int. Conf. on Fuzzy Systems and Knowledge Discovery, p.2546–2550. [doi:10.1109/FSKD.2010.5569799]

    Google Scholar 

  • Zhou, S., Zheng, X., Wang, J., et al., 1993. Utopia: a load sharing facility for large, heterogeneous distributed computer systems. Softw. Pract. Exp., 23(12):1305–1336. [doi:10.1002/spe.4380231203]

    Article  Google Scholar 

  • Zima, H., Chapman, B., 1991. Supercompilers for Parallel and Vector Computers (1st Ed.). Addison Wesley, MA, USA.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Habib Izadkhah.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Isazadeh, A., Karimpour, J., Elgedawy, I. et al. An analytical model for source code distributability verification. J. Zhejiang Univ. - Sci. C 15, 126–138 (2014). https://doi.org/10.1631/jzus.C1300066

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1631/jzus.C1300066

Key words

CLC number

Navigation