DOI QR코드

DOI QR Code

On-line Trace Based Automatic Parallelization of Java Programs on Multicore Platforms

  • Sun, Yu (Department of Electrical and Computer Engineering, Virginia Commonwealth University) ;
  • Zhang, Wei (Department of Electrical and Computer Engineering, Virginia Commonwealth University)
  • Received : 2012.02.02
  • Accepted : 2012.04.17
  • Published : 2012.06.30

Abstract

We propose two new approaches that automatically parallelize Java programs at runtime. These approaches, which rely on run-time trace information collected during program execution, dynamically recompile Java byte code that can be executed in parallel. One approach utilizes trace information to improve traditional loop parallelization, and the other parallelizes traces instead of loop iterations. We also describe a cost/benefit model that makes intelligent parallelization decisions, as well as a parallel execution environment to execute parallelized programs. These techniques are based on Jikes RVM. Our approach is evaluated by parallelizing sequential Java programs, and its performance is compared to that of the manually parallelized code. According to the experimental results, our approach has low overheads and achieves competitive speedups compared to the manually parallelizing code. Moreover, trace parallelization can exploit parallelism beyond loop iterations.

Keywords

References

  1. B. J. Bradel and T. S. Abdelrahman, "Automatic trace-based parallelization of Java programs," Proceedings of the International Conference on Parallel Processing, Xian, China, 2007, pp. 26.
  2. B. J. Bradel and T. S. Abdelrahman, "The potential of tracelevel parallelism in Java programs," Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, Lisboa, Portugal, 2007, pp. 167-174.
  3. B. Chan and T. S. Abdelrahman, "Run-time support for the automatic parallelization of Java programs," Journal of Supercomputing, vol. 28, no. 1, pp. 91-117, 2004. https://doi.org/10.1023/B:SUPE.0000014804.20789.21
  4. J. Zhao, M. Horsnell, I. Rogers, A. Dinn, C. Kirkham, and I. Watson, "Optimizing chip multiprocessor work distribution using dynamic compiliation," Euro-Par 2007 Parallel Processing, Lecture Note in Computer Science vol. 4641, Heidelberg: Springer Berlin, pp. 145-168, 2002.
  5. The Jikes RVM Project, http://jikesrvm.org.
  6. V. Bala, E. Deusterwald, and S. Banerjia, "Dynamo: a transparent dynamic optimization system," Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Vancouver, Canada, 2000, pp. 1-12.
  7. M. Arnold, S. Fink, D. Grove, M. Hind, and P. E. Sweeney, "Adaptive optimization in the Jalapeno JVM," Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Minneapolis, MN, 2000, pp. 47-65.
  8. J. A. Mathew, P. D. Coddington, and K. A. Hawick, "Analysis and development of Java Grande benchmarks," Proceedings of the ACM Conference on Java Grande, San Francisco, CA, 1999, pp. 72-80.
  9. L. A. Smith, J. M. Bull, and J. Obdrzalek, "A parallel Java grande benchmark suite," Proceedings of the ACM/IEEE Conference on Supercomputing, Denvor, CO, 2001, p. 8.
  10. Standard Performance Evaluation Corporation (SPEC), SPEC JVM98 benchmarks, http://www.spec.org/jvm98/.
  11. M. W. Hall, J. M. Anderson, S. P. Amarasinghe, B. R. Murphy, S. W. Liao, E. Bugnion, and M. S. Lam, "Maximizing multiprocessor performance with the SUIF compiler," Computer, vol. 29, no. 12, pp. 84-89, 1996.
  12. D. G. Chavarria-Miranda and J. M. Mellor-Crummey, "An evaluation of data-parallel compiler support for line-sweep applications," Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, Charlottesville, VA, 2002, pp. 7-17.
  13. R. A. Tefft and R. Y. Lee, "Reduction of complexity and automation of parallel execution through loop level parallelism," Proceedings of the 7th International Conference on Quality Software, Portland, OR, 2007, pp. 304-308.
  14. C. J. F. Pickett, "Software speculative multithreading for Java," Companion to the 22th ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion, Montreal, Canada, 2007, pp. 929-930.
  15. M. K. Chen and K. Olukotun, "The Jrpm system for dynamically parallelizing Java programs," Proceedings of the 30th Annual International Symposium on Computer Architecture, San Diego, CA, 2003, pp. 434-446.

Cited by

  1. Overview of Real-Time Java Computing vol.7, pp.2, 2013, https://doi.org/10.5626/JCSE.2013.7.2.89