sobereva 发表于 2020-4-3 11:33
nstep、nsim都没必要特意设shared,因为它们并不会被改写
建议把所有private变量都直接用private(...)写明 ...
万里云 发表于 2020-4-3 13:11
推荐楼主用MPI,所有变量都是私有的,只能通过子程序显式交换数据。每个进程执行哪些任务也是显式指定的, ...
sobereva 发表于 2020-4-3 12:25
不用call OMP_SET_NUM_THREADS(4),而改成!$OMP PARALLEL DO ...后面加上NUM_THREADS(4)再试
wxhwbh 发表于 2020-4-3 14:40
好像还是不行。而且我刚刚检查了一下结果,并行运行出的结果是不对的(按上面所有方法能输出的话结果都不 ...
niobium 发表于 2020-4-3 16:08
那你把这个变量的值放大一点看看
niobium 发表于 2020-4-3 18:27
程序变慢可能是你本身每个线程的任务都是瞬间完成的,所以并行反而慢了。如果说整个程序串行也就分分钟完成 ...
wxhwbh 发表于 2020-4-3 20:48
我确实一条轨迹用不了多久。但如果步长取小了或者轨迹数变多了,计算速度还是会受影响。
现在主要还是想 ...
niobium 发表于 2020-4-3 20:51
那就是仔细检查每一个变量的private和share属性是否正确。凭我的感觉,你的share变量不止那几个
wxhwbh 发表于 2020-4-3 14:40
好像还是不行。而且我刚刚检查了一下结果,并行运行出的结果是不对的(按上面所有方法能输出的话结果都不 ...
wxhwbh 发表于 2020-4-3 14:17
谢谢你。不过MPI关于fortran的资料不太多,一直没怎么看明白。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) | Powered by Discuz! X3.3 |