DATA-ORIENTED DESIGN The hardware will thank you.

If you wish to submit an article, please contact support@dataorienteddesign.com for details.


Lots of good resources linked from this site by Daniele Bartolini: Data Oriented Design Resources

Data-Oriented Design book - online version

Data-Oriented Design book (2013 beta version) - PDF download
This is a free resource. Feel free to read, copy, download, upload, print, burn to CD, hand to someone on a pen drive, but do not claim the work is your own, or charge anyone for the right to read the material.

Data-Oriented Design book - 2018 paperback version

FIRST PREV : PAGE 0 : NEXT LAST

Things to consider : #03 08/11/2011:14:36:12

Cache oblivious code is not ignorant, just not dependent.

http://www.1024cores.net/home/parallel-computing/cache-oblivious-algorithms

So, keep in mind space filling curves and binary reflected gray code as possible access patterns to your data to maximise cache hits when you don't even know the target hardware spec.

http://en.wikipedia.org/wiki/Space-filling_curve

http://en.wikipedia.org/wiki/Gray_code

These access patterns shuffle back and forth over similar addresses so are much more likely to hit items in the cache even without tuning for the specific platform. You trade off in readability, but it does mean that you can turn the code into a black box as even future hardware releases are likely to benefit from this design choice.