Fortran 90中的控件和数据并行功能?

时间:2014-09-26 18:53:57

标签: parallel-processing fortran programming-languages fortran90 language-features

在我的一篇大学论文中,我发现了一个问题'FORTRAN 90中的控制和数据并行性的特点?'

现在根据我的理解,Fortran 90中的内置数组操作是数据并行的一个例子,因为Fortran能够使用简单的代码对数组元素执行加法,乘法等操作,如:c = a + b ....

但是fortran 90中的控制并行功能是什么?而这个问题值得8分,所以我想只有数组并行的数组操作才行,所以必须有更多的东西....

请帮助!!

1 个答案:

答案 0 :(得分:1)

我不认为Fortran 90具有内置于该语言中的任何控制并行性。 ("控制并行性"意味着两个完全不同的代码块可以并行运行。它通常用名称"任务并行性"。)更现代的Fortrans don't obviously offer this作为一部分语言。

技术上也没有内置的数据并行性;它"仅仅"使编程人员可以轻松实现数据并行性,发现它,程序员利用数组和切片操作。但是,编程更容易编码,编程也更容易分析。

我们显然没有想到F90之前,例如"标量" Fortran具有数据并行性。 用于超级计算机的Scalara Fortran编译器长期以来能够通过仔细分析循环来检测阵列级操作。很明显,标量Fortran语言没有内置的数据并行性,但超级计算机编译器却发现并利用它(不像F90超级计算机编译器那么容易)。

所以这里的教训是实现数据并行性是特定编译器的属性,而不是语言。

但对于良好的数据并行性而言,还有什么不足够的。您还需要能够谈论内存布局。那也不在Fortran 90中。

Fortran有各种各样的扩展,提供这两种扩展,通常作为编译指示或特殊注释,所以程序的其余部分看起来像vanilla Fortran,标量或F90。任务并行性通常可以通过许多编译器提供的OpenMP扩展来实现。