Reputation: 17240
Data Oriented Design is most formally introduced by this Sony Research document and this document.
Beyond the obvious, however, I was wondering what other aspects of programming fall under "Data Oriented Design"? Would SIMD/SSE instructions? How about anything which reduces TLB misses? Or CPU-affinity?
So far my only understanding of DOD is "anything which reducing cache misses". Is there anything not obvious which falls under Data Oriented Design?
Upvotes: 2
Views: 376
Reputation: 11
The obvious to me is that DOD is about data centric design. To see it more in context. I take the obvious first impression of it counter part OOD. Object oriented is modeling your solution to real world model. Wich is nice as that easier to comprehend. But your hardware doesn't like it that way. Data oriented is data centered. Of how the platform likes it.
SMID, Cache line Are some of the platform details. But there is much more to it then cache lines.
Data oriented makes concurrent programming much easier then OoD way. OOD is much more friendly for humans. As every body knows the real world. DOD you need to know much more about the platform, to model the data to get the most performance. And also what for transforms you do on that data.
DOD is about, know the platform and know problem domain. To get the most out of it with DOD.
Upvotes: 1