在本书的上下文中,所谓的“细粒度并行”究竟意味着什么?

时间:2018-03-04 06:29:42

标签: parallel-processing operating-system terminology

我正在阅读操作系统:内部和设计原则。在第10.1节“多处理器调度”中,作者引入了一个同步粒度表,如下所示:

  
      
  • 好:单个指令流中固有的并行性
  •   
  • 中:单个应用程序中的并行处理或多任务处理
  •   
  • 粗略:在多道程序设计环境中对并发进程进行多处理
  •   
  • 非常粗略:跨网络节点进行分布式处理以形成单一计算环境
  •   
  • 独立:多个不相关的流程
  •   

他解释了这样的细粒度并行性:

  

细粒度并行性代表了更多   并行性的复杂使用比使用线程时发现的要多。虽然很多   已经在高度并行的应用程序上完成了工作,这是迄今为止专门的应用程序   分散的地区,有许多不同的方法。

我可以理解中等粒度是关于线程和其他粒度,除了所谓的细粒度并行性。我在互联网上搜索并没有获得太多信息。那么请你为我澄清一下吗?一些例子确实会有所帮助。

提前致谢!

1 个答案:

答案 0 :(得分:2)

它是对所谓的指令级并行性的引用,它是可以从同一个线程并行执行的指令。

例如,如果您有两个说明,例如

a = b*2
c = d+5 

这些指令可由处理器并行执行,没有任何问题,因为它们不以任何方式相互依赖。

另一方面,如果你有像

这样的说明
a = b*2
c = a+5

在这种情况下,第二条指令取决于第一条指令,直到第一条指令的结果可用时才能处理。这是指令级并行性的限制因素,因为大多数指令依赖于其他指令。

  

细粒度并行性代表了更为复杂的用法   并行性比使用线程时发现的那样。

这是因为为了在同一个线程中识别独立的指令,你必须能够查看指令管道,这不是一件容易的事,需要特殊的硬件和编译器优化。

另一方面,线程级并行很容易,因为您知道来自两个不同线程的两条指令不可能相互依赖。