2

此Sony Research 文档此文档最正式地介绍了 Data Oriented Design 。

然而,除了显而易见的,我想知道编程的其他方面属于“面向数据的设计”吗?SIMD/SSE 指令?有什么可以减少 TLB 未命中的方法吗?还是 CPU 亲和性?

到目前为止,我对 DOD 的唯一理解是“减少缓存未命中的任何东西”。有什么不明显的东西属于面向数据的设计吗?

4

1 回答 1

1

对我来说显而易见的是,国防部是关于以数据为中心的设计。在上下文中更多地看到它。我对它的对应部分 OOD 有着明显的第一印象。面向对象正在将您的解决方案建模为现实世界模型。Wich 很好,因为它更容易理解。但是你的硬件不喜欢这样。面向数据就是以数据为中心。平台喜欢它的方式。

SMID, Cache line 是平台的一些细节。但是除了缓存行之外,还有更多内容。

面向数据使并发编程比 OoD 方式更容易。OOD 对人类更加友好。因为每个人都知道现实世界。国防部您需要更多地了解该平台,以便对数据进行建模以获得最佳性能。还有你对这些数据进行的转换。

DOD 是关于,了解平台并了解问题领域。与国防部一起充分利用它。

于 2014-12-27T14:13:17.333 回答