| 查看: 1098 | 回复: 2 | ||
[求助]
关于fortran程序进行并行计算的问题
|
之前照着论文的公式和模板,写了一个3d phase-field的fortran程序,由于需要计算的网格数量多,因此,计算速度十分缓慢,按照网上的意思,openmp并行不仅对程序修改的少,而且加速效果好,于是我就在原先的fortran程序中加入了openmp并行。可是,我发现随着线程数threads的增加,我的计算速度反而变得越来越慢,所以想请教一下大佬们问题可能出在哪?个人感觉的原因有如下两点(1.我的程序中使用了大量的离散和差分,并且由于矩阵占据内存,因此对于差分这样的中间变量并没有使用矩阵进行存储,而是每次循环进行刷新,这样会不会导致我的程序不适合Openmp并行呢? 2.在使用opnemp并行和串行的比较时,为了能更好的比较两者的结果,我的网格取的比较小,目前我的网格数量大概在100*100*100左右,这样是不是不利于Openmp进行并行)。 除此之外,最最最主要的就是想请教下各位大佬们,对于上述的程序可以通过怎样的方式进行加速(MPI? GPU?) 谢谢大家了 |
» 猜你喜欢
基金委咋了?2026年的指南还没有出来?
已经有8人回复
拟解决的关键科学问题还要不要写
已经有4人回复
基金申报
已经有5人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
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











回复此楼