赞
踩
在最开始的地方,笔者需要先声明一下,第一,这是一篇针对性的翻译,或者说是自己理解后写出的教程,旨在让大家尽快掌握OPENMP的使用,是以应用为目的,关于介绍历史的部分我不会重点翻译。第二,笔者在FORTRAN方面造诣有限,不能很深入的在FORTRAN视角进行介绍。原blog地址为:link
第一篇blog简单介绍一点并行计算知识,从下一篇开始,我们进入OpenMP编程的具体实现。
OpenMp为Open Multi-Processing的缩写。他是一种易学习的并行模型,同时兼具有可兼容性,易于使用的特点。
并行计算常见的存储模型有UMA,NUMA,COMA,CCNUMA等等……
我们这里OpenMP支持的是UMA以及NUMA。
UMA是Uniform Memory Access的缩写,即均匀存储访问。他具有以下特点:
具有上述特点的高紧密的联系的系统,也叫做紧耦合系统
NUMA自然是Non-Uniform Memory Access的缩写。特点与UMA的区别在于存储器的位置,存储器可以分布在各个处理器之间,同时自然也会有另一个问题——各个处理器访问内存的时间有所差异。
OpenMP的模型是基于线程(Threads)的并行。
在这里可以简单的将线程理解成一个可以独立运行的子程序。
线程的概念是建立在进程之上的,没有进程,就没有线程一说。
在这里还是保留原词,这个模型是OpenMP理解的关键中的关键。
程序的运行模式是这样的,从主进程开始,运行直到遇到第一个Fork点,开始进入并行域。之后再离开并行域。回到Join区,继续还运行主进程,知道遇到下一个Frok点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。