FDTD仿真提高工作站性能

目录

性能测试

问题:对lumerical fdtd软件,为什么在https://optics.ansys.com/hc/en-us/articles/4403780894355-FDTD-Performance-Benchmarks网页中,使用Intel Xeon Scalable 8375C 2.9GHz、64cores、256GB RAM的高性能工作站能够获得2106.1 mNodes/s的求解器速度,我自己的高性能工作站为Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz 3.50 GHz (2 个处理器),64cores,1064GB内存,只跑一个光子晶体激光器的四能级两电子模型的仿真,在fdtd软件中,我的processes设为38,threads设为1,结果速度才270 mNodes/s,CPU占用就30%. 和官网给出的求解器速度相比,我的慢了快10倍,我不知道是为什么?你能告诉我答案吗?请仔细搜索各种中英文网页和文献再回答,用中文回复

以下所参考的测试速度的方法见:https://blog.csdn.net/weixin_49613620/article/details/143775283 【当工作管理器中的状态指示模拟已完成初始化和网格划分,并且处于“正在运行”状态时,点击退出并保存。(注意,不用等到仿真结束)】

2号机 64核 128处理器,以下是只有一个fdtd任务时。【若有两个fdtd任务或其他很多人在跑comsol,也会变慢】

  • 进程38 线程1:速度:178 mnode/s
  • 进程16 线程4:在很多人跑的情况下: total FDTD solver speed on 16 processes: 342.338 Mnodes/s 运行时间16小时
  • 进程64 线程1:142 mmode/s
  • 进程32 线程4 316.28 mmode/s
  • 进程32 线程2 total FDTD solver speed on 32 processes: 369.269 Mnodes/s【这个很节约内存和核】
  • 进程8 线程8 285 mmode/s
FDTD solver speed on process 0: 35.6628 Mnodes/s
total FDTD solver speed on 8 processes: 285.302 Mnodes/s
  • 进程4 线程16 total FDTD solver speed on 4 processes: 252.204 Mnodes/s
  • 进程2 线程32
  • 进程16 线程8 total FDTD solver speed on 16 processes: 373.867 Mnodes/s
  • 进程20 线程2 total FDTD solver speed on 20 processes: 330.873 Mnodes/s
  • 进程20 线程6 total FDTD solver speed on 20 processes: 389.55 Mnodes/s
  • 进程24 线程5
  • 进程18 线程7 total FDTD solver speed on 18 processes: 349.634 Mnodes/s
  • 进程16 线程6 total FDTD solver speed on 16 processes: 367.029 Mnodes/s
综上,对这种光子晶体激光器,都用进程20 线程6
  • 注意始终保持进程x线程小于等于128

对3和4号机,linux,128个处理器(实际核0

在三号机和四号机上成功安装了FDTD的linux版本。【安装很困难,解决了很多bug】

当process=20、thread=6时,运行速度达到574 mnode/s(并且是有其他comsol程序在运行时), 而2号机最高运行速度就396 mnode/s.

linux确实运行速度更快。

1号机 56核 112个处理器

  • 进程30,线程1:速度231 mnode/s
  • 进程14 线程4 total FDTD solver speed on 14 processes: 333.502 Mnodes/s
  • 进程28 线程2 total FDTD solver speed on 28 processes: 173.575 Mnodes/s
  • 进程8 线程7 total FDTD solver speed on 8 processes: 227.034 Mnodes/s
  • 进程18 线程6 total FDTD solver speed on 18 processes: 367.507 Mnodes/s
  • 进程22 线程5 total FDTD solver speed on 22 processes: 383.947 Mnodes/s
  • 进程16 线程7 total FDTD solver speed on 16 processes: 313.542 Mnodes/s
  • 进程7 线程8
  • 进程4 线程14
  • 进程2 线程24
综上,对这种光子晶体激光器,都用进程22 线程5

自己电脑 内存8

  • 进程6 线程1: total FDTD solver speed on 6 processes: 76.3556 Mnodes/s
  • 进程2 线程4:
  • 进程4 线程2 total FDTD solver speed on 4 processes: 79.873 Mnodes/s
  • 进程8 线程1
  • 线程1 进程8
  • 进程2 线程3
  • 进程8 线程2 total FDTD solver speed on 8 processes: 95.2849 Mnodes/s
  • 进程5 线程3 total FDTD solver speed on 5 processes: 96.4523 Mnodes/s
  • 进程4 线程4 total FDTD solver speed on 4 processes: 93.029 Mnodes/s
综上,对这种光子晶体激光器,都用进程5 线程3

注意以上仿真都是在别人也都在用1、2号机的情况下。若别人没有在用,速度可以再提高两百mnode/s

11.25号更新:若进行参数扫描,则其实还要更改capacity,能够极致利用多CPU、大内存工作站的性能进行多个任务并发运算!

官网有提到这点。

对1号机

  • 进程22 线程5 capacity2: total FDTD solver speed on 22 processes: 579.763 Mnodes/s【在只有我一个人,就一个任务,cpu占用达到50%】
  • 进程22 线程5 capacity1: total FDTD solver speed on 22 processes: 597.791 Mnodes/s【只有一个任务】
  • 进程22 线程5 capacity2:total FDTD solver speed on 22 processes: 290.025 Mnodes/s 【存在两个fdtd任务时,这是第二个fdtd任务的速度】
当分别提交两个模型时,cpu占用率会上升,也就是说两个模型会进行并发运算。所以不需要设置capacity。
  • 若不进行参数扫描,而是一个模型一个模型提交,就不需要设置capacity,因为我测试过,当分别提交两个模型时,cpu占用率会上升,也就是说两个模型会进行并发运算。所以不需要设置capacity。 官网也是说在参数扫描时才需要设置capacity,这样多个扫描可以同时运行。

fdtd仿真需要多次迭代模型,和comsol很不一样。

迭代网格、迭代软件中进程和线程设置(何时速度最快)、迭代不同泵浦强度下的峰值波长偏移量

对不同结构的模型,不一定是按上面测试得到的进程和线程速度最快,都需要临时测试【官网说的】。网格也是要临时测试。

在windows中,除非要gpu加速,否则就应该用2020版的fdtd,而不是2024版,因为对2024版,当comsol和fdtd存在时,工作站会优先把几乎所有cpu给comsol,fdtd就特别慢。而2020版没这个问题。

这与软件绑定电脑core有关。还是要用2020版

posted @   初心如磐使命在肩!  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示