SIMD VS MIMD

zr_hebo

本文翻译自国外文章,详见原文

并行计算将大任务分割成可以同时执行的小任务,SIMD和MIMD是两种使用多处理器甚至多机器进行并行计算的架构。SIMD代表一条指令处理多条数据组成的数据流,MIMD支持多条指令处理多条数据组成的数据流。SIMD和SIMD实现相似的基本功能,但是它们在实际使用和技术实现上都是不同的。

SIMD

SIMD架构在多条数据上同时执行同一条命令,包括查询、计算和存储信息的命令。一个使用的示例是同时检索多个文件。具有局部内存的处理器以同步的方式使用同一条命令处理不同的数据,通过多处理器间通信来实现移位分配。

MIMD

MIMD架构在大量数据集上同时执行多条命令。一个使用示例是执行各种数学运算(如加法,乘法),使用很多分离的计算组件,按照顺序同时解决复杂的数学问题。MIMD可能是也可能不是同步的,比SIMD计算越来越常见。

实际使用的差异

SIMD通常用于处理器执行大量计算的问题,这些计算需要处理器并行执行相同命令。MIMD常用于如下场景:将复杂算法分割为无关的、独立的部分,每个部分分配给一个不同的处理器来并发处理的解决方案。

技术上的差异

SIMD和MIMD在技术实现上也不同。SIMD的处理器通常更简单、更小、更便宜,也比MIMD处理器更快。但是MIMD能够处理复杂的多的操作。使用SIMD模拟实现MIMD操作,会花费更多的时间。SIMD要顺序的执行复杂操作,可是MIMD处理器能够并行的处理。

阅读 6.2k

数据之旅
扬起风帆,徜徉数据的汪洋中,有风浪也有阳光和海风。

闻道百,以为莫己若者,我之谓也。

9 声望
7 粉丝
0 条评论

闻道百,以为莫己若者,我之谓也。

9 声望
7 粉丝
文章目录
宣传栏