首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找Flynn的OpenMP和MPI分类代码示例

查找Flynn的OpenMP和MPI分类代码示例
EN

Stack Overflow用户
提问于 2021-01-29 10:31:13
回答 1查看 365关注 0票数 1

查找所有Flynn的分类示例代码,用于C/C++或Python代码来理解

任何密码都可以,我只是想学点东西。我试着找出其中的一些,但没有结果。

代码语言:javascript
复制
SIMD
SISD
MISD
MIMD
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 11:08:59

查找所有Flynn的分类示例代码,用于C/C++或Python代码来理解

分类学更多的是关于计算机架构本身。

让我们启动SIMD,从维基百科可以读到:

单指令多数据(SIMD)是Flynn的taxonomy.It中的一类并行计算机,它描述了具有多个处理元素同时在多个数据点上执行相同操作的计算机。这种机器利用数据级的并行性,但不使用并发性:在给定的时刻可以同时(并行)计算,但只有一个进程(指令)。

在OpenMP中,您可以使用SIMD指令,即:

代码语言:javascript
复制
#pragma omp simd
for ( i = 0; i < n; i++ )
    a[i] = b[i] * c[i];

关于SISD,从维基百科可以读到:

在计算中,SISD (单指令流,单数据流)是一种计算机体系结构,其中单核处理器执行单个指令流,对存储在单个存储器中的数据进行操作。

这与代码无关,而在于它将如何在底层体系结构中执行。反映这一概念的一项守则是:

代码语言:javascript
复制
for(int i = 0; i < N; i++)
   a[i]++;

关于MISD,从维基百科可以读到:

在计算中,多指令单数据( MISD )是一种并行计算体系结构,许多功能单元对同一数据执行不同的操作。管道体系结构属于这种类型,尽管纯粹主义者可能会说,经过管道中每个阶段的处理后,数据是不同的。

代码语言:javascript
复制
for(int i = 0; i < N; i++)
   a[i] = 10 * a[i] + a[i] / 2;

关于MIMD,从维基百科可以读到:

在计算中,多指令多数据( MIMD )是实现并行性的一种技术。使用MIMD的机器有许多异步和独立工作的处理器。

为此,可以使用包含两个进程的MPI应用程序,其中每个进程执行两个不同的应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65952780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档