前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fortran 的FORALL结构

Fortran 的FORALL结构

作者头像
fem178
发布2019-10-28 18:10:57
4.8K0
发布2019-10-28 18:10:57
举报
文章被收录于专栏:数值分析与有限元编程

FORALL结构旨在建立一种高效执行程序的结构,特别是在并行过程,例如多重循环

以上两种写法完全等效,需要指出的是:FORALL只能用于数组操作,也就是说,赋值符号两边只能是数组。然而在实际使用中,FORALL结构的运算速度并不比do循环快,有时甚至比do循环还慢不少。以下是Intel Fortran编译器的官方文档说明

可以看到,FORALL强烈依赖于编译器优化,不一定能提高速度。因此,Fortran2015里FORALL已经是要淘汰的语法了。想要并行优势,还不如直接mpi把do循环给拆了。

PS:cpu_time返回的是一个浮点型数字,表示当前CPU运行时间(以秒计)

示例:

program test_cpu_time

real :: start, finish

call cpu_time(start)

! put code to test here

call cpu_time(finish)

print '("Time = ",f6.3," seconds.")',finish-start

end program test_cpu_time

这样可以自己分别用FORALL结构和do循环结构做个测试,看看各自运行的时间。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档