Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object Model Cache Locality Abstract In modern computer systems the major performance bottleneck is memory latency. Multi-layer cache hierarchies are an.

Similar presentations


Presentation on theme: "Object Model Cache Locality Abstract In modern computer systems the major performance bottleneck is memory latency. Multi-layer cache hierarchies are an."— Presentation transcript:

1 Object Model Cache Locality Abstract In modern computer systems the major performance bottleneck is memory latency. Multi-layer cache hierarchies are an attempt to mitigate memory latency, relying on the theory that memory access tends to be sequential. As a good result data locality is a key element of maintaining high throughput. Data layout the way Java objects are laid out in memory or a placement of data objects in memory, has a great impact on memory access time. Since a program’s cache performance can be improved by changing the organization and layout of its objects, this research seeks to find a better layout for Java objects(organization of fields in object structure), focusing on how those fields will later be accessed. By doing this, objects can be accessed more quickly and programs will run faster. Introduction Caches have finite capacity and transfer data in units called cache blocks that encompass multiple words. Placing accessed structure elements in the same cache block improves cache block utilization and provides implicit prefetching. Generally speaking, object structures can be modified in two way: structure splitting and field reordering. Table1: object restructuring methods Figure1: Object restructuring methods Object Restructuring To recommend a new structure for one Java object, we need to gather some statistics about fields inside that object. Fields are reordered according to their hotness and their affinities. Affinity: Two fields are affine to each other when they are accessed close to each other. Hotness: Hotness is computed from the aggregated total estimated accesses to a field. For example in java/lang/String, fields hotness and affinity is as followings: Figure 2: java/lang/String According to fields hotness and affinity the best order for this object’s fields is “count“, ”value”, ”offset”, ”hashCode”. In reordering the fields some important matters should be taken into account, the recommended structure should not be bigger than the original structure of the object and also should improve cache performance. For multi processor systems in addition to fields hotness and affinity, false sharing should be considered. References The Java Virtual Machine Specification, Java SE 7 Edition An Efficient Profile-Analysis Framework for Data-layout Optimization: Shai Rubin, Rastislav Bodik, Trishul Chilimbi. 2002 Practical Structure Layout Optimization and Advice: Robert Hundt, Sandya Mannarswamy, Dhruva Chakrabarti. 2006 Cache-Conscious Structure Definition: Trishul M. Chilimbi, Bob Davidson and James R. Larus. 1999 Structure Layout Optimization for Multithreaded Programs: Easwaran Roman, Robert Hundt and Sandya Mannarswarmy. 2007 Taees Eimouri, Kenneth Kent, Aleksander Micic University of New Brunswick, IBM Canada Faculty of Computer Science teimouri@unb.cateimouri@unb.ca, ken@unb.ca, Aleksandar_Micic@ca.ibm.comken@unb.caAleksandar_Micic@ca.ibm.com TargetHeuristic Objective and Methods Field Reordering: Increases cache block utilization. Targets structures that have more than two fields and are larger than the cache block size. place fields that are concurrently accessed in the same cache block. Class Splitting: Increases cache utilization. Targets data objects whose collection of hot fields are smaller than the cache block size. Avoid bringing rarely accessed data into the cache.


Download ppt "Object Model Cache Locality Abstract In modern computer systems the major performance bottleneck is memory latency. Multi-layer cache hierarchies are an."

Similar presentations


Ads by Google