当前位置:   article > 正文

OpenMP Tutorials 01

openmp tutorials

在最开始的地方,笔者需要先声明一下,第一,这是一篇针对性的翻译,或者说是自己理解后写出的教程,旨在让大家尽快掌握OPENMP的使用,是以应用为目的,关于介绍历史的部分我不会重点翻译。第二,笔者在FORTRAN方面造诣有限,不能很深入的在FORTRAN视角进行介绍。原blog地址为:link

第一篇blog简单介绍一点并行计算知识,从下一篇开始,我们进入OpenMP编程的具体实现。

OpenMP简介与编程模型

OpenMp为Open Multi-Processing的缩写。他是一种易学习的并行模型,同时兼具有可兼容性,易于使用的特点。

共享存储模型

并行计算常见的存储模型有UMA,NUMA,COMA,CCNUMA等等……
我们这里OpenMP支持的是UMA以及NUMA。

UMA

Alt

UMA是Uniform Memory Access的缩写,即均匀存储访问。他具有以下特点:

  • 物理存储器被所有处理器所共享
  • 所有处理器访问内存的耗时是相同的
  • 每个处理器可以自带Cache
  • 除内存之外,所有的外围设备都是共享的

具有上述特点的高紧密的联系的系统,也叫做紧耦合系统

NUMA

Alt
NUMA自然是Non-Uniform Memory Access的缩写。特点与UMA的区别在于存储器的位置,存储器可以分布在各个处理器之间,同时自然也会有另一个问题——各个处理器访问内存的时间有所差异。

基于线程

OpenMP的模型是基于线程(Threads)的并行。
在这里可以简单的将线程理解成一个可以独立运行的子程序。
线程的概念是建立在进程之上的,没有进程,就没有线程一说。

Fork - Join模型

在这里还是保留原词,这个模型是OpenMP理解的关键中的关键。
程序的运行模式是这样的,从主进程开始,运行直到遇到第一个Fork点,开始进入并行域。之后再离开并行域。回到Join区,继续还运行主进程,知道遇到下一个Frok点。
Alt

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/267879
推荐阅读
相关标签
  

闽ICP备14008679号