SIMD VS MIMD

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

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

SIMD

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

MIMD

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

实际使用的差别

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

技术上的差别

SIMD和MIMD在技术实现上也不一样。SIMD的处理器一般更简单、更小、更便宜,也比MIMD处理器更快。可是MIMD可以处理复杂的多的操做。使用SIMD模拟实现MIMD操做,会花费更多的时间。SIMD要顺序的执行复杂操做,但是SIMD处理器可以并行的处理。内存

相关文章
相关标签/搜索