Article Information  
Just-in-Time Compilation-Inspired Methodology for Parallelization of Compute Intensive Java Code

Keywords: Just-in-Time Compilation, Loop Level Parallelization, Multicore System, Runtime Analysis, Java Virtual Machine.

Mehran University Research Journal of Engineering & Technology

Volume 36 ,  Issue 1

GHULAM   MUSTAFA , WAQAR MAHMOOD   , MUHAMMAD USMAN GHANI   ,

References
1. Zhang, T.Y., and Suen, C.Y., "A Fast Parallel Algorithm for Thinning Digital Patterns", Communications of the ACM, Volume 27, No. 3, pp. 236-239, 1984.
2. Alfredo Buttaria, J.L., Kurzaka, J., and Dongarra, J., "A Class of Parallel Tiled Linear Algebra Algorithms for Multicore Architectures", Parallel Computing Volume 35, No. 1, pp. 38-53, 2009
3. Wang, Y., Fan, J., Liu, W., and Han, Y., "A Parallel Algorithm to Construct BISTs on Parity Cubes", IEE Proceedings of 2nd International Conference on Information Science and Control Engineering, pp. 54-58, 2015.
4. Polychronopoulos, C.D., Girkar, M., Haghighat, M.R., Lee, C.L., Leung, B., and Schouten, D., "Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors", International Journal of High Speed Computing, Volume 1, No. 1, pp. 45-72, 1989.
5. Haghighat, M., and Polychronopoulos, C., "Symbolic Program Analysis and Optimization for Parallelizing Compilers", Springer Berlin Heidelberg, pp. 538-562, 1993.
6. Whaley, J., and Kozyrakis, C., "Heuristics for Profile- Driven Method-Level Speculative arallelization", Proceedings of International Conference on Parallel Processing, pp. 147-156, 2005.
7. Tournavitis, G., Wang, Z., Franke, B., and O’Boyle, M.F.P., "Towards a Holistic Approach to Auto- Parallelization: Integrating Profile-Driven Parallelism Detection and Machine-Learning Based Mapping", ACM SIGPLAN Notices, Volume 44, No. 6, pp. 177-187, 2009.
8. Jang, H., Kim, C., and Lee, J.W., "Practical Speculative Parallelization of Variable-Length Decompression Algorithms", ACM SIGPLAN Notices, Volume 48, pp. 55-64, 2013.
9. Jimborean, A., Clauss, P., Martinez, J.M., and Sukumaran- Rajam, A., "Online Dynamic Dependence Analysis for Speculative Polyhedral Parallelization", Euro-Par, Parallel Processing, pp. 191-202, 2013.
10. Liu, B., Zhao, Y., Li, Y., Sun, Y., and Feng, B., "A Thread Partitioning Approach for Speculative Multithreading", The Journal of Supercomputing, Volume 67, No. 3, pp. 778-805, 2014.
11. Yiapanis, P., Rosas-Ham, D., Brown, G., and Lujan, M., "Optimizing Software Runtime Systems for Speculative Parallelization", ACM Transactions on Architecture and Code Optimization, Volume 9 No. 4, 2013.
12. Alle, M., Morvan, A., and Derrien, S., "Runtime Dependency Analysis for Loop Pipelining in High-Level Synthesis", Proceedings of 50th Conference on Annual Design Automation, pp. 51:1-51:10, ACM, 2013.
13. Aumage, O., Barthou, D., Haine, C., and Meunier, T., "Detecting Simdization Opportunities through Static/ Dynamic Dependence Analysis", Euro-Par: Parallel Processing Workshops, Lecture Notes in Computer Science, Volume 8374, pp. 637-646, 2014.
14. Tzenakis, G., Papatriantafyllou, A., Vandierendonck, H., Pratikakis, P., and Nikolopoulos, D., "BDDT: Block-Level Dynamic Dependence Analysis for Task-Based Parallelism", Advanced Parallel Processing Technologies, Lecture Notes in Computer Science, Volume 8299, pp. 17-31, 2013.
15. Verdoolaege, S., Carlos Juega, J., and Cohen, A., "Polyhedral Parallel Code Generation for CUDA", ACM Transactions on Architure Code Optimum, Volume 9 No. 4, pp. 54:1-54:23, 2013.
16. Steffan, J.G., Colohan, C.B., Zhai, A., and Mowry, T.C., "A Scalable Approach to Thread-Level Speculation", ACM, Volume 28, No. 2, pp. 1-12, 2000.
17. Harris, T., Cristal, A., Unsal, O.S., Ayguade, E., Gagliardi, F., Smith, B., and Valero, M., "Transactional Memory: An Overview", IEEE Micro, Volume 27, No. 3, pp. 8-29, 2007.
18. Bik, A.J., and Gannon, D., "A Prototype Bytecode Parallelization Tool", Concurrency - Practice and Experience, Volume 10, Nos.11-13, pp. 879-885, 1998
19. Aycock, J., "A Brief History of Just-in-Time", ACM Computing Surveys, Volume 35, No. 2, pp. 97-113, 2003.
20. Pemberton, S., and Daniels, M., "Pascal Implementation: The P4 Compiler and Interpreter", Ellis Horwood, 1982.
21. Ierusalimschy, R., DeFigueiredo, L.H., and Celes, W., "The Implementation of Lua 5.0", Journal of Universal Computer Science, Volume 11, No. 7, pp. 1159-1176, 2005.
22. Mustafa, G., Waheed, A., and Mahmood, W., "SeekBin: An Automated Tool for Analyzing Thread Level Speculative Parallelization Potential", Proceedings of 7th IEEE International Conference on Emerging Technologies, pp. 1-6, 2011.
23. Knuth, D.E., "An Empirical Study of FORTRAN Programs", Software: Practice and Experience, Volume 1, No. 2, pp. 105-133, 1971.
24. Mathew, J. A., Coddington, P. D., and Ha-wick, K. A., "Analysis and development of Java Grande benchmarks", Proc. 1999 conference on Java Grande, USA, ACM, pp. 72-80, 1999.
25. Hinsen, K., "A Glimpse of the Future of Scientific Programming", Computing in Science & Engineering, Volume 15, No. 1, pp. 84-88, 2013.
26. Österlund, E., "Garbage Collection Supporting Automatic JIT Parallelization in JVM", LNU, 2012
27. Österlund, E., and Löwe, W., "Analysis of Pure Methods Using Garbage Collection", Proceedings of ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, pp. 48-57, Beijing, China, 2012.
28. Österlund, E., "Automatic Memory Management System for Automatic Parallelization", LNU, 2011.
29. Koch, T.J.K.E.V., and Björn, F., "Limits of Region-Based Dynamic Binary Parallelization", SIGPLAN Notices, Volume 48, No. 7, pp. 13-22, 2013.
30. Leung, A., Lhotak, O., and Lashari, G., "Automatic Parallelization for Graphics Processing units", Proceedings of 7th International Conference on Principles and Practice of Programming in Java, Calgary, pp. 91-100, Alberta, Canada, 2009.
31. Monteyne, M., "Rapidmind Multi-Core Development Platform", RapidMind Inc., Waterloo, Canada, February, 2008.
32. Hammacher, C., Streit, K., Hack, S., and Zeller, A., "Profiling Java Programs for Parallelism", Proceedings of ICSE Workshop on Multicore Software Engineering, pp. 49-55, 2009.
33. Christopher, J.F.P., Clark, V., and Allan, K., "LIBSPMT: A Library for Speculative Multi-threading", Sable Technical Report, 2007.
34. Pickett, C.J.F., and Verbrugge, C., "SableSpMT: A Software Framework for Analysing Speculative Multi-threading in Java", Proceedings 6th ACM SIGPLANSIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pp. 59-66, Portugal, 2005
35. Carlstrom, B.D., Chung, J., Chafi, H., McDonald, A., Minh, C.C., Hammond, L., Kozyrakis, C., and Olukotun, K., "Transactional Execution of Java Programs", OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages, 2005.
36. Chen, M.K., and Olukotun, K., "The JRPM System for Dynamically Parallelizing Sequential Java Programs", IEEE Micro, Volume 23, No. 6, pp. 26-35, 2003.
37. Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Bala, K., and Chew, L.P., "Optimistic Parallelism Requires Abstractions", Communication ACM, Volume 52, No. 9, pp. 89-97, 2009.
38. Chan, B., and Abdelrahman, T.S., "Run-Time Support for the Automatic Parallelization of Java Programs", Journal Supercomputer, Volume 28, No. 1, pp. 91-117, 2004.
39. Singer, J., Brown, G., Luján, M., Pocock, A., and Yiapanis, P., "Fundamental Nano-Patterns to Characterize and Classify Java Methods", Electronic Notes in Theoretical Computer Science, Volume 253, No. 7, pp. 191-204, 2010.
40. Bik A. J. C., and Gannon D. B., "Automatically exploiting implicit parallelism in Java", Concurrency: Practice and Experience, vol. 9, no. 6, pp. 579–619, 1997.
41. Bruneton, E., Lenglet, R., and Coupaye, T., "ASM: A Code Manipulation Tool to Implement Adaptable Systems", Technical Report, France Telecom R&D, 2002