Exploitation of multicore systems in a java virtual machine

  • Authors:
  • R. A. Sciampacone;V. Sundaresan;D. Maier;T. Gray-Donald

  • Affiliations:
  • IBM Software Group, Ottawa, ON, Canada;IBM Software Group, Markham, ON, Canada;IBM Software Group, Markham, ON, Canada;IBM Software Group, Ottawa, ON, Canada

  • Venue:
  • IBM Journal of Research and Development
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Java®programming language and the Java virtual machine (JVM®) are intended to provide a level of abstraction from the underlying hardware and operating system (OS). This abstraction poses challenges from a performance perspective, because developers are often unable to make use of best-practice approaches during software development for their deployed OSs and hardware platforms. The rise of multicore processor systems has been swift and has changed many software developers' underlying assumptions with respect to the hardware over the last ten years. The role of the JVM is to hide such platform complexity by adapting appropriately through runtime analysis and reaction to application behavior. The JVM is an essential component for exploiting the full potential of multicore processor systems through effective management of the memory subsystem, removing impediments to application and system scalability with respect to the number of logical processors, producing efficient and highly optimized code, and providing user tools for monitoring and analysis. This paper reviews the key techniques and tools available in the IBM Developer Kit for the Java 6 release for managing and optimizing Java for multicore processor environments and describes performance results to demonstrate the effectiveness of such tools and techniques.