| 查看: 1086 | 回复: 2 | ||
[求助]
关于fortran程序进行并行计算的问题
|
之前照着论文的公式和模板,写了一个3d phase-field的fortran程序,由于需要计算的网格数量多,因此,计算速度十分缓慢,按照网上的意思,openmp并行不仅对程序修改的少,而且加速效果好,于是我就在原先的fortran程序中加入了openmp并行。可是,我发现随着线程数threads的增加,我的计算速度反而变得越来越慢,所以想请教一下大佬们问题可能出在哪?个人感觉的原因有如下两点(1.我的程序中使用了大量的离散和差分,并且由于矩阵占据内存,因此对于差分这样的中间变量并没有使用矩阵进行存储,而是每次循环进行刷新,这样会不会导致我的程序不适合Openmp并行呢? 2.在使用opnemp并行和串行的比较时,为了能更好的比较两者的结果,我的网格取的比较小,目前我的网格数量大概在100*100*100左右,这样是不是不利于Openmp进行并行)。 除此之外,最最最主要的就是想请教下各位大佬们,对于上述的程序可以通过怎样的方式进行加速(MPI? GPU?) 谢谢大家了 |
» 猜你喜欢
职称评审没过,求安慰
已经有42人回复
回收溶剂求助
已经有7人回复
硝基苯如何除去
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
求助文献
已经有3人回复
三无产品还有机会吗
已经有6人回复
yhbgeophy
新虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3880.6
- 帖子: 558
- 在线: 35.4小时
- 虫号: 7437796
- 注册: 2017-11-07
- 性别: GG
- 专业: 应用地球物理学
★
jjdg: 金币+1, 感谢参与 2019-03-10 14:21:30
jjdg: 金币+1, 感谢参与 2019-03-10 14:21:30
|
OpenMP适合于一台电脑,共享内存式的并行,当你开的进程数大于电脑本身的可以的进程数时(一般是CPU核数x2),就起不到加速作用了。MPI一般用于集群的并行计算,如果你有这个条件可以集群,此外MPI也可以用于单机的并行,但是由于进程间通信比较耗时所以效果可能不如OpenMP。注:我刚开始看一些资料,没有实践多少,仅供参考 发自小木虫IOS客户端 |
2楼2019-03-08 18:16:59
cxuxc
新虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 2535.9
- 散金: 5048
- 红花: 13
- 沙发: 9
- 帖子: 2831
- 在线: 56.5小时
- 虫号: 5793267
- 注册: 2017-03-01
- 性别: GG
- 专业: 金属结构材料
3楼2019-06-11 13:41:10













回复此楼