简体   繁体   中英

What falls under “Data Oriented Design”?

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM