Ven*_*uri 4 parallel-processing operating-system
现在我正在研究并行计算和算法我对术语concurrent execution和术语有点困惑simultaneous execution.
这些条款有什么区别?我们何时必须使用concurrent,何时必须simultaneous在并行计算中使用?
同时执行是关于利用多个资源(核心,HW线程等)以便同时执行多个任务.任务不必以任何方式进行交互,例如,您可能在两个不同的核心上运行两个不同的应用程序.
能够同时执行多个任务的设计系统的技术可以说是同时执行.例如,超线程也被称为"SMT" - 同时多线程,因为它处理在单个核心上同时运行两个线程及其完整上下文的能力(这是英特尔的方法,AMD有一点点不同的解决方案,请参阅 - 英特尔和AMD多线程之间的差异)
并发性是一个驻留在更高抽象层次上的术语,与操作系统世界有关,它是执行环境的一个属性,在这个属性中,您有多个任务可以在给定的时间范围内执行,您无法控制订单甚至他们执行的交错.它们在多个核上同时运行,或者在具有一些抢占机制和一些调度算法的单个核上运行并不重要.这里重要的是这种并发性迫使您以保证正确性的方式设计任务(特别是如果它们交互或共享数据).如果任务设计正确(具有适当的锁定,障碍,信号量以及保证正确数据流的任何内容),并且操作系统正常工作(例如在上下文切换上保存状态,或清除缓存并击落TLB),那么可以使用"引擎盖下"的任何形式的执行模型运行.
既然您指的是并行算法,那么适当的术语可能是并发执行.
这个帖子中有很多例子(附加链接到源 - 我不会在这里复制它以避免剽窃:) - 并发与并行 - 有什么区别?
| 归档时间: |
|
| 查看次数: |
6579 次 |
| 最近记录: |