Intel Visual Fortran
Lahey Fortran
NAG Fortran
PGI Fortran
Silverfrost Ftn95
GFortran for windows / Simply Fortran
等等
我们建议,商业开发,选择 Intel Visual Fortran + Visual Studio
个人开发,计算,选择 GFortran + Code::Blocks 或 Simply Fortran
个人学习,选择 Silverfrost Ftn95
备忘:
教程: Parallel Programming in Fortran 95 using OpenMP
使用 OpenMP 应该算是一种比较简单的并行方式,用
将需要并行的部分放进去就行了。
gfortran 编译的话使用 -fopenmp 选项即可
如果不是并行程序的话,仅仅会输出一次,但是这里输出了 4 次,因为有四个线程。而教程中也对这个做了解释:
Since the code enclosed between the two directives is executed by each thread, the message Hello appears in the screen as many times as threads are being used in the parallel region.
不知道那个控制台的图标为啥变成了四个红点,是不是点的个数表示线程数呢?
One of the aims of the OpenMP standard is to offer the possibility of using the same source code lines with an OpenMP-compliant compiler and with a normal compiler. This can only be achieved by hiding the OpenMP directives and commands in such a way, that a normal compiler is unable to see them. For that purpose the following two directive sentinels are introduced: !$OMP & !$
需要注意的是 !$OMP 前面不能出现非空字符,否则将会被认为是普通的注释。OMP的这种方式可以很巧妙地使得程序能够在所有的编译器上运行,如果不支持OMP的话就当作普通的注释,如果支持那么这些就会起作用。另外 指令后面有一个空格,这个主要是为了 指令和后面的语句分隔开。这个空格是强制添加的,否则将作为普通注释来处理。
OMP 的指令行支持续行,和 fortran 没多大区别,只要记得每一行都有指令符号就行了。
暂时就学了这么点。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)