代码之家  ›  专栏  ›  技术社区  ›  luvieere

为非缓存一致性多核机器编程有哪些优势?

  •  3
  • luvieere  · 技术社区  · 16 年前

    Cache_coherence

    5 回复  |  直到 15 年前
        1
  •  4
  •   jldupont    16 年前

    什么样的编程范式

    消息传递。

    模式匹配——内存的输入块很可能是“只读”的:“输出”结果很可能被放置在单独的块中,等待某种“减缩器”。

    当然,我相信这只是众多例子中的一个。


    只想说明一下:采用“非缓存一致性”体系结构的主要原因是成本和成本;速度(假设使用此体系结构可以更有效地解决手头的问题)。

        2
  •  5
  •   Steve Jessop    16 年前

    保证 向不同的内核显示不同的内存。它只是保留这样做的权利。

    因此,利用非一致性并不是你要做很多额外的事情,而是你不必做的事情,因为你已经放弃了一致性的缺点——你不必重新设计你的并行代码,因为它花费了所有的时间坐在那里等待另一个核心的内存存储结果。

    一开始,非一致性缓存体系结构的缺点似乎是发现自己在使用一致性缓存自动提供的额外同步。没有双重检查锁定为您。然后您会意识到,实际上,一致性缓存体系结构为您的应用程序实现了这种同步(尽管是以超高速硬件实现的形式) 每一次内存访问

        3
  •  2
  •   erikkallen    16 年前

    您可以获得一点额外的性能,但是您永远不应该依赖每个处理器具有不同的缓存值,因为您永远不可能知道缓存何时被刷新。

        4
  •  1
  •   Community Mohan Dere    8 年前

    我不是专家;但我不认为它比缓存一致的体系结构有任何优势,除了实现起来更简单。当然,这种简单性可以允许在更复杂的相干系统中禁止进行其他优化,使非相干机器在仔细编程时更快。

    尽管如此,我同意你的看法 jldupont ,消息传递不需要一致性,因此它(几乎)是实现IPC的强制方式。

        5
  •  1
  •   Zan Lynx    16 年前

    您可以将Cell SPE本地内存看作一种缓存。它不是真正的缓存,因为它根本不是自动的,但速度是一样的,而且不连贯。

    推荐文章