Filters








3,111 Hits in 5.3 sec

Layout Transformations for Heap Objects Using Static Access Patterns [chapter]

Jinseong Jeon, Keoncheol Shin, Hwansoo Han
Lecture Notes in Computer Science  
Our experiments with the Olden benchmarks demonstrate that layout transformations for heap objects based on our static access pattern analysis improve cache locality by 38% and performance by 24%.  ...  Since modern applications heavily use structures allocated in the heap, this paper proposes an efficient structure layout based on static analyses.  ...  Heap Layout Transformations Before we discuss how to extract access patterns at compile-time, this section describes two heap layout transformations.  ... 
doi:10.1007/978-3-540-71229-9_13 dblp:conf/cc/JeonSH07 fatcat:o7be4nzuurfp5dikmhetrl7uai

Speculative separation for privatization and reductions

Nick P. Johnson, Hanjun Kim, Prakash Prabhu, Ayal Zaks, David I. August
2012 SIGPLAN notices  
To reduce sensitivity to memory layout, Privateer speculatively separates memory objects.  ...  Polaris [29] Array Expansion [10] ASSA [14] DSA [31] RSSA [23] Static PD [21] Dynamic LRPD [22] R−LRPD [7] Privateer (this work)  ...  Prakash Prabhu thanks Google, Inc. for fellowship support.  ... 
doi:10.1145/2345156.2254107 fatcat:mo2nunbuyndlbojivo6jxwqvbu

Speculative separation for privatization and reductions

Nick P. Johnson, Hanjun Kim, Prakash Prabhu, Ayal Zaks, David I. August
2012 Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation - PLDI '12  
To reduce sensitivity to memory layout, Privateer speculatively separates memory objects.  ...  Polaris [29] Array Expansion [10] ASSA [14] DSA [31] RSSA [23] Static PD [21] Dynamic LRPD [22] R−LRPD [7] Privateer (this work)  ...  Prakash Prabhu thanks Google, Inc. for fellowship support.  ... 
doi:10.1145/2254064.2254107 dblp:conf/pldi/JohnsonKPZA12 fatcat:uvykq5b5pnf6hbtqgd4v7df56e

Automatic pool allocation

Chris Lattner, Vikram Adve
2005 SIGPLAN notices  
The key contribution is a new compiler algorithm for partitioning heap objects in imperative programs based on a context-sensitive pointer analysis, including a novel strategy for correct handling of indirect  ...  This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct instances of heap-based data structures into seperate memory pools and allows heuristics to be used to  ...  We are also grateful to Shengnan Cong for her assistance with the fpgrowth program, the members of the LLVM group for their comments and suggestions on the paper, and the anonymous reviewers for their  ... 
doi:10.1145/1064978.1065027 fatcat:6zfqopashbdnpjby5poywssuce

Backward-compatible constant-time exception-protected memory

Pradeep Varma, Rudrapatna K. Shyamasundar, Harshit J. Shah
2009 Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium - ESEC/FSE '09  
We present a novel, table-free technique for detecting all temporal and spatial memory access errors (e.g. dangling pointers, out-ofbounds check, etc.) in programs supporting general pointers.  ...  Our approach is the first technique to provide such error checking using only constant-time operations.  ...  [8] are similar to us in temporal access error checking, although they only cover dangling pointer checks for heap-allocated objects.  ... 
doi:10.1145/1595696.1595710 dblp:conf/sigsoft/VarmaSS09 fatcat:get6dwo35zdyxgbw2ze2kv3t5m

Automatic Restructuring of Linked Data Structures [chapter]

Harmen L. A. van der Spek, C. W. Mattias Holm, Harry A. G. Wijshoff
2010 Lecture Notes in Computer Science  
Programs using pointer linked data structures are notorious for producing such so called irregular memory access patterns.  ...  The memory pool is restructured at run-time using this permutation, after which all pointers (both stack and heap) that refer to the restructured pool must be updated.  ...  We believe the restructuring transformations for pointer-linked data restructures that have been described in this paper do not only enable data layout remapping, but also provide the basis for new techniques  ... 
doi:10.1007/978-3-642-13374-9_18 fatcat:ybnnmljmjbge5cpbjibzve3k4y

Automatic pool allocation

Chris Lattner, Vikram Adve
2005 Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation - PLDI '05  
The key contribution is a new compiler algorithm for partitioning heap objects in imperative programs based on a context-sensitive pointer analysis, including a novel strategy for correct handling of indirect  ...  This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct instances of heap-based data structures into seperate memory pools and allows heuristics to be used to  ...  We are also grateful to Shengnan Cong for her assistance with the fpgrowth program, the members of the LLVM group for their comments and suggestions on the paper, and the anonymous reviewers for their  ... 
doi:10.1145/1065010.1065027 dblp:conf/pldi/LattnerA05 fatcat:vsylzw3th5gyfj5kqv2bsloecu

Utilizing field usage patterns for Java heap space optimization

Zhuang Guo, José Nelson Amaral, Duane Szafron, Yang Wang
2006 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research - CASCON '06  
, and bidirectional object layout.  ...  Motivated by this observation, we designed a heap compression mechanism that classifies object instances at runtime based on their field-usage patterns and eliminates unused fields to save space.  ...  His research interests include distributed and parallel systems and object-oriented programming languages.  ... 
doi:10.1145/1188966.1188974 dblp:conf/cascon/GuoASW06 fatcat:a2iu452gererhijjud6xgb6bsu

Making pointer-based data structures cache conscious

J.R. Larus, M.D. Hill, T.M. Chilimbi
2000 Computer  
Cacheconscious reorganization transforms the pointer structure layout into a linear memory layout, sequenced according to the expected data access pattern, and maps structure elements to reduce Cache-conscious  ...  Compilers use two array-structure properties to reorder the accesses: uniform, random access to array elements, and a number-theoretic basis for statically analyzing data dependencies.  ... 
doi:10.1109/2.889095 fatcat:yvivmpsrrffjrgab54cl2ctyee

Cache-conscious structure definition

Trishul M. Chilimbi, Bob Davidson, James R. Larus
1999 Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation - PLDI '99  
A program's cache performance can be improved by changing the organization and layout of its data-even complex, pointer-based data structures.  ...  These techniques produced significant performance improvements, but worked best for small structures that could be packed into a cache block.  ...  ACKNOWLEDGEMENTS The authors would like to thank Ronnie Chaiken, Roger Crew, Richard Shupak, and Daniel Weise for helpful discussions.  ... 
doi:10.1145/301618.301635 dblp:conf/pldi/ChilimbiDL99 fatcat:nv2qrhenofemfpqhrw765bz6mu

Composition-based Cache simulation for structure reorganization

Keoncheol Shin, Hwansoo Han, Kwang-Moo Choe
2010 Journal of systems architecture  
Finding the best data layout has been an ultimate goal of memory optimization. Even with data access profile, heuristic algorithms are needed to reorganize data layout for better locality.  ...  Instead of running all possible layouts, we simulate only the primary subsets of layouts and compose the cache misses for all layouts by summing up the cache misses of component subsets.  ...  These two methods commonly use the field affinity graph, but STATIC uses the static access patterns based on regular expressions, while FILED_AFFI counts the neighboring accesses within the access window  ... 
doi:10.1016/j.sysarc.2010.01.002 fatcat:dp5nscbsibdivpvdwhqg76to6a

Cache-conscious structure definition

Trishul M. Chilimbi, Bob Davidson, James R. Larus
1999 SIGPLAN notices  
A program's cache performance can be improved by changing the organization and layout of its data-even complex, pointer-based data structures.  ...  These techniques produced significant performance improvements, but worked best for small structures that could be packed into a cache block.  ...  ACKNOWLEDGEMENTS The authors would like to thank Ronnie Chaiken, Roger Crew, Richard Shupak, and Daniel Weise for helpful discussions.  ... 
doi:10.1145/301631.301635 fatcat:tzge4niglneetcbn2cyncuqktm

Panthera: holistic memory management for big data processing over hybrid memories

Chenxi Wang, Huimin Cui, Ting Cao, John Zigman, Haris Volos, Onur Mutlu, Fang Lv, Xiaobing Feng, Guoqing Harry Xu
2019 Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2019  
Panthera analyzes user programs on a Big Data system to infer their coarse-grained access patterns, which are then passed to the Panthera runtime for efficient data placement and migration.  ...  For Big Data applications, the coarse-grained data division information is accurate enough to guide the GC for data layout, which hardly incurs overhead in data monitoring and moving.  ...  We are especially grateful to our shepherd Jennifer Sartor for her feedback, helping us improve the paper substantially.  ... 
doi:10.1145/3314221.3314650 dblp:conf/pldi/WangCCZVML0X19 fatcat:mpkwj5a5ezarfjdvnzyzu74m74

Safely Abstracting Memory Layouts [article]

Juliana Franco, Alexandros Tasos, Sophia Drossopoulou, Tobias Wrigstad, Susan Eisenbach
2019 arXiv   pre-print
Modern architectures require applications to make effective use of caches to achieve high performance and hide memory latency.  ...  In managed languages like Java and C#, the abstract view of memory and proliferation of moving compacting garbage collection does not provide enough control over placement and layout.  ...  access patterns).  ... 
arXiv:1901.08006v1 fatcat:olwk6ysex5cdfnbmnjt32rny6u

Automatic feedback-directed object fusing

Christian Wimmer, Hanspeter Mössenbösck
2010 ACM Transactions on Architecture and Code Optimization (TACO)  
The order of objects on the heap is changed in such a way that objects that are accessed together are placed next to each other in memory.  ...  Array fusing specifically optimizes arrays, which are frequently used for the implementation of dynamic data structures.  ...  ACKNOWLEDGMENTS We would like to thank the Java HotSpot TM compiler team at Sun Microsystems, especially Thomas Rodriguez, Kenneth Russell, and David Cox, for their persistent support, for contributing  ... 
doi:10.1145/1839667.1839669 fatcat:ugvquqaf6basleqnfpm4iilwuu
« Previous Showing results 1 — 15 out of 3,111 results