Blocking is a well-known optimization technique for improving the effectiveness of memory hierarchies. Instead of operating on entire rows or columns of an array, blocked algorithms operate on submatrices or blocks, so that data loaded into the faster levels of the memory hierarchy are reused. This paper presents cache performance data for blocked programs and evaluates several optimization to improve this performance. The data is obtained by a theoretical model of data conflicts in the cache, which has been validated by large amounts of simulation.We show that the degree of cache interference is highly sensitive to the stride of data accesses and the size of the blocks, and can cause wide variations in machine performance for different matrix sizes. The conventional wisdom of frying to use the entire cache, or even a fixed fraction of the cache, is incorrect. If a fixed block size is used for a given cache size, the block size that minimizes the expected number of cache misses is very small. Tailoring the block size according to the matrix size and cache parameters can improve the average performance and reduce the variance in performance for different matrix sizes. Finally, whenever possible, it is beneficial to copy non-contiguous reused data into consecutive locations.
The last few years have been a thrilling time for the commercial application of mixed integer programming. The technology has gone through an inflection point. Just a few years ago, MIP was viewed as a temptingly powerful modeling paradigm that would consistently disappoint in practice. In constrast, in the last few years MIP has become a vital capability that powers a wide range of applications in a variety of application domains. The shift can clearly be seen in the views of its practitioners, past and present. At one extreme, in the past year we have personally interacted with several OR practitioners who have not had direct exposure to modern MIP technology in several years. Their near-universal reaction to the claim that MIP models of useful size and complexity can now be solved is disbelief. Convincing them of the practicality of MIP modeling can require multiple, corroborating witnesses. At the other extreme, the expectations of users with recent experience can be quite surprising for those who have worked in the field for a while. A sophisticated MIP modeler recently expressed disappointment when models with millions of constraints and hundreds of thousands of binary variables could not be solved to optimality overnight. He had to console himself with solutions with 5% optimality gaps. The technology has clearly come a long way.One of the most remarkable observations about the transformation that has occurred in the last few years is that, for the most part, it was enabled by methods and theory that have been available in the academic literature for decades. We find this fact remarkable for two reasons. The first is that these insights and techniques, which were developed in the context of the then available MIP models, have proven so effective on the wide range of practical models solved today. Despite the generality and flexibility of the MIP modeling paradigm, the fundamental character of the models and the sources of inherent difficulty have not changed significantly with time. The second reason is simply that these techniques had not made it into commercial MIP software, despite their effectiveness.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.