24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1976  |  回复: 6

spursspurs

新虫 (小有名气)

[求助] abaqus调用fortran时,让fortran并行运算已有1人参与

各位专家帮忙啊,在使用abaqus调用intel fortran时,怎样才能让fortran程序openmp模块调用实现程序的并行?程序中已加入了openmp语句!!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fish.yfyh

铜虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
spursspurs: 金币+2 2013-12-29 08:39:17
OpenMP很简单,用Intel Fortran的话,在编译选项中添加-openmp.
然后在代码里面通过set_omp_num_threads(nprocs)指定并行的线程数即可。
2楼2013-12-28 20:20:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

spursspurs

新虫 (小有名气)

引用回帖:
2楼: Originally posted by fish.yfyh at 2013-12-28 20:20:53
OpenMP很简单,用Intel Fortran的话,在编译选项中添加-openmp.
然后在代码里面通过set_omp_num_threads(nprocs)指定并行的线程数即可。

非常感谢你的回答!我是用abaqus调用程序,也就是说直接调用子程序.for文件,fortran没有编译,所以不知怎么开启OPENMP啊?,代码里已经有并行语句了,求指导
3楼2013-12-29 08:38:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

spursspurs

新虫 (小有名气)

引用回帖:
2楼: Originally posted by fish.yfyh at 2013-12-28 20:20:53
OpenMP很简单,用Intel Fortran的话,在编译选项中添加-openmp.
然后在代码里面通过set_omp_num_threads(nprocs)指定并行的线程数即可。

我感觉是不是在fortran或者abaqus的什么文件中设置下呢?可是不知道怎么弄?
4楼2013-12-29 08:41:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fish.yfyh

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by spursspurs at 2013-12-29 08:38:58
非常感谢你的回答!我是用abaqus调用程序,也就是说直接调用子程序.for文件,fortran没有编译,所以不知怎么开启OPENMP啊?,代码里已经有并行语句了,求指导...

在源代码部分的循环部分用:
!$omp parallel
!$omp do
....
!$omp end do
!$omp end parallel

然后在外面编译的时候, 加上-openmp的选项即可.

» 本帖已获得的红花(最新10朵)

5楼2013-12-29 17:19:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

spursspurs

新虫 (小有名气)

送红花一朵
引用回帖:
5楼: Originally posted by fish.yfyh at 2013-12-29 17:19:08
在源代码部分的循环部分用:
!$omp parallel
!$omp do
....
!$omp end do
!$omp end parallel

然后在外面编译的时候, 加上-openmp的选项即可....

怎么加-openmp?麻烦详细的说下,因为用的是cmd命令窗口,abaqus调用fortran的语句为:abq6111 job=Job-1 int user=1.for 怎么加并行?
6楼2013-12-29 17:24:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fish.yfyh

铜虫 (小有名气)

引用回帖:
6楼: Originally posted by spursspurs at 2013-12-29 17:24:19
怎么加-openmp?麻烦详细的说下,因为用的是cmd命令窗口,abaqus调用fortran的语句为:abq6111 job=Job-1 int user=1.for 怎么加并行?...

abq6111 job=Job-1 int user=1.for
这是调用fortran, 不是吧。看不出调用的什么子程序,以及子程序的形参实参也没有啊?

好吧,也许我没用过abaqus. 那你去找到编译的诸如Makefile的文件. 里面的诸如FFLAG之类的选项添加即可.
7楼2013-12-29 21:10:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 spursspurs 的主题更新
信息提示
请填处理意见