Abstract
This paper proposes a method-level parallel library, called JPL, and an improved version based on aspect-oriented programming, called AOJPL. Both JPL and AOJPL execute a method based on run-time reflection. By adding OpenMP-like notations to the definition of a method, AOJPL can automatically finish some tasks of JPL, thus making AOJPL easy to utilize. Experimental results show that when JPL and AOJPL are applied to several benchmarks in the JGF Benchmark Suite for varying numbers of threads on two different multicore processors (Intel Xeon and Sun Sparc T2), their performance tracks JOMP very closely under the situation that the number of software threads is not more than a number (8 for Intel Xeon and 64 for Sun Sparc T2). When the number of software threads surpasses the number, JPL and AOJPL significantly outperform JOMP for all four benchmarks. Both JPL and AOJPL can gain good scalability.
Similar content being viewed by others
References
Aamir S, Jawad M (2009) Towards efficient shared memory communications in MPJ express. In: Java workshop at the 23rd IEEE International parallel and distributed processing symposium, Rome, Italy, May 2009
AspectJ. http://www.eclipse.org/aspectj/
Bik AJC, Gannon DB (1997) Automatic exploiting implicit parallelism in Java. Concurrency 9(6):576–619
Bull JM, Kambites ME (2000) JOMP—an OpenMP-like interface for Java. In: Proceedings of the ACM conference on Java Grande, p 53
Chen MK, Olukotun K (2002) Exploiting method-level parallelism in single-threaded Java programs. In: Proceedings of international conference on parallel architectures and compilation techniques, pp 176–184
Hall MW, Martonosi M (1999) Adapting parallelism in compiler parallelized code. In: Concurrency and computation: practice and experience
Hu S, Bhargava R, John LK (2003) The role of return value prediction in exploiting speculative method-level parallelism. J Instr-Level Parallelism 5:1–21
Ji WX. Cpplib. http://cs.bit.edu.cn/~pass
Kiczales G, Irwin J, Lamping J, Mendhekar A, Maeda C, Lopes CV, Loingtier J (1997) Aspect-oriented programming. In: Proceedings of ECOOP
OpenMP. http://www.openmp.org/
Oplinger JT, Heine DL, Lam MS (1999) In search of speculative thread-level parallelism. In: Proceedings of international conference on parallel architectures and compilation techniques, pp 303–313
Otto F, Pankratius V, Tichy WF (2009) XJava: Exploiting parallelism with object-oriented stream programming. In: Proceeding of Euro-Par 2009, pp 875–886
Smith LA, Bull JM, Obdrizalek J (2006) A parallel Java Grande benchmark suite. In: ACM/IEEE conference of supercomputing
Allen MD, Sridharan S, Sohi GS (2009) Serialization sets: a dynamic dependence based parallel execution model. ACM SIGPLAN Not 44(4):85–96
SQL Server. http://www.microsoft.com/sqlserver/
Warg F, Stenstrom P (2001) Limits on speculative module-level parallelism in imperative and object-oriented programs on CMP platforms. In: Parallel architectures and compilation techniques, pp 221–230
Whaley J, Kozyrakis C (2005) Heuristics for profile-driven method-level speculative parallelization. In: International conference on parallel processing, pp 147–156
Zhang L, Krintz C, Nagpurkar P (2007) Language and virtual machine support for efficient fine-grained futures in Java. In: Proceedings of the 16th international conference on parallel architecture and compilation techniques, pp 130–139
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Zhang, Y., Ji, W. A scalable method-level parallel library and its improvement. J Supercomput 61, 1154–1167 (2012). https://doi.org/10.1007/s11227-011-0690-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-011-0690-5