Title :
Scaling Java Virtual Machine on a many-core system
Author :
Ganesan, K. ; Yao-Min Chen ; Xiaochen Pan
Author_Institution :
Oracle Corp., Austin, TX, USA
Abstract :
In order to effectively leverage the abundant parallelism provided by large many-core enterprise servers, Java applications, libraries and the virtual machine need to be carefully architected to avoid single-thread bottlenecks. Among the challenges tackled in scaling a single Java Virtual Machine (JVM), we discuss the most rewarding ones including converting shared data objects to per-thread independent objects, applying scalable memory allocators, utilizing appropriate concurrency frameworks, parallelizing garbage collection phases and enhancing data affinity to CPUs through a NUMA aware garbage collector. In this paper, we use SPECjbb2013 to illustrate the importance of various scaling bottlenecks and demonstrate the performance gain from the discussed solutions.
Keywords :
Java; multiprocessing programs; multiprocessing systems; storage management; virtual machines; CPU; Java applications; Java virtual machine scaling; NUMA aware garbage collector; SPECjbb2013; concurrency frameworks; data affinity enhancement; garbage collection phase parallelization; many-core enterprise servers; many-core system; per-thread independent objects; performance gain; scalable memory allocators; shared data object conversion; Benchmark testing; Concurrent computing; Hardware; Java; Libraries; Program processors; Scalability;
Conference_Titel :
Integrated Circuits (ISIC), 2014 14th International Symposium on
Conference_Location :
Singapore
DOI :
10.1109/ISICIR.2014.7029556