cache oblivious algorithm

http://en.wikipedia.org/wiki/Cache-oblivious_algorithm

 

道理相对简单,但是想法还是很不错的。

考量cache oblivious最好是对比完全不考虑memory hierarchy结构的算法复杂度测量机制,O(nlogn)这样的,只是计数计算的复杂度。

或者在console上常常做的cache aware的优化,就是针对cache line size来组织数据结构大小,一次prefetch一个cache line的数据做操作。

这个cache oblivious比理想算法更接近于电脑硬件(考虑到memory hierarchiy)但也没有变态到完全根据cache line size来设计数据结构和算法。

简单说来,就是假设一个cache line size,对问题进行分而治之,分的粒度到virtual cache line size,就停止分解。

 

wikipedia上也列举了很多算法。

 

某种程度上讲,自我管理也可以做这种cache相关,人脑有一个最佳处理事情的大小,小了会降低效率,大了导致体力消耗快效率同样低。

把事情分解成较小的一块块的,粒度由个人能力决定,成为解决事情的最佳方案。


原文链接: http://blog.csdn.net/ccanan/article/details/5931029

你可能感兴趣的:(cache oblivious algorithm)