Fortran Coder

查看: 3031|回复: 3
打印 上一主题 下一主题

[求助] Fortran 串行代码改并行代码

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
7 点
跳转到指定楼层
楼主
发表于 2021-12-30 16:52:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助,将下面一段串行代码改为并行代码要怎么操作?NP=2,DIR3(NP*2)已知
[Fortran] 纯文本查看 复制代码
do ii=1,NP*2
        DIR2=DIR3(ii)
        print*,"DIR2=",DIR2
          i= CHDIR(DIR2)
        i=system("./cesm1.exe >> cesm.log.$LID 2>&1")
enddo
怎么下手呢?我用的是linux的intelmpi 编译器。
求指导,有重谢。


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1339 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2021-12-30 20:48:25 | 只看该作者
你这个代码,没有什么并行的必要。并不能起到你想要的作用。

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
7 点
板凳
 楼主| 发表于 2021-12-31 15:31:47 | 只看该作者
fcode 发表于 2021-12-30 20:48
你这个代码,没有什么并行的必要。并不能起到你想要的作用。

你好,请问下,不能用np*2个线程计算吗,因为每次循环的任务是独立的

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2021-12-31 15:54:10 | 只看该作者
i=system("./cesm1.exe >> cesm.log.$LID 2>&1")

你这种直接启动cesm1.exe 就可以了。操作系统都是多进程的。

多进程(或多线程)和并行是两回事。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-20 08:57

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表