System Requirements
- OS: Microsoft Windows XP/2000 and Linux
A major computing trend over the last few decades has been the widening gap between processor speed and main memory speed. As a result, system architectures increasingly use caches and memory hierarchies to avoid memory latency. The access times of different levels of a memory hierarchy typically vary by orders of magnitude. Therefore, it is desirable to have cache-coherent layout to reduce the access times. We have designed a novel algorithm to compute cache-oblivious layouts of data elements to minimize the access time of applications on the layouts. Our algorithm only requires an input graph that represents runtime access patterns of an application on the data elements. Our algorithm probabilistically measures the expected number of cache misses of a layout and computes a cache-oblivious layout that minimizes the expected number of cache misses. Moreover, the cache-oblivious layout is not optimized for any particular cache, block sizes, or replacement policies; it is constructed to work well under any cache parameters. Please refer to the documentation for details regarding the API and the contents of the distribution.
OpenCCL is an open source code to compute cache-oblivious layouts of graphs and polygonal meshes to improve performances of a wide variety of applications including geometric processing and visualization applications.
OpenCCL has following features:
Keywords: cache coherent layouts, cache coherence, cache-oblivious layouts, cache coherent orders of data elements, layout optimization, reordering