天才一秒记住【热天中文网】地址:https://www.rtzw.net
她留着齐耳短发,皮肤白皙,鼻梁上架着一副细边黑框眼镜,眼神清亮,带着点审视的意味。
整个人看起来很干练,没什么多余的表情。
“你是林允宁?"
女生的眼神在四周扫了一圈,径直朝林允宁走过来。
他身上那身“春江七中”
的校服,在大学校园里着实显眼。
“顾师姐你好。”
林允宁起身打招呼。
“坐。”
顾念真言简意赅,直接拉开椅子在林允宁对面坐下,开门见山,“论文看了么?”
林允宁直接将自己优化后的方案草图推了过去:
“我的想法是异步IO。
每个计算节点完成自己的任务后,完成任务后批量缓冲,通过MPI-IOHDF5并行写到分区化的结果文件,最后主进程做索引合并即可。
这样可以避免因为某个节点计算缓慢而拖慢整个流程。
“另外,用MPI做跨节点间的粗粒度任务划分,每个节点负责一个参数子空间。
节点内部,再用OpenMP处理共享内存下的细粒度并行,比如K点积分循环。”
陈正平在一旁听得云里雾里,拿出个本子想要记下,却根本不知道从何写起。
顾念真拿起那张草图,只看了一眼,便点了点头,随即又提出了更尖锐的问题:
“异步IO,在节点数少的时候很高效。
但如果我们在上千个核心的集群上跑,频繁的文件读写会造成巨大的IO瓶颈,甚至比计算本身还慢。”
“是的,所以我准备用一个两级并行的混合模型。”
林允宁的回答不假思索,“在节点内部,用OpenMP实现共享内存并行,处理局部计算。
在节点之间,用MPI进行数据汇总和通信。
这样可以最大限度地减少跨节点的数据传输。
“而且,将最常访问的波函数和哈密顿矩阵块,预加载到每个计算节点的本地内存。
核心计算部分,尽量避免跨节点的数据交换。
“另外,我们不能简单地把K空间均匀切块,因为狄拉克点附近的计算密度远高于其他区域。
“我建议用你论文里提到的动态权重分配,根据每个区域的‘计算复杂度来划分任务,而不是几何区域。”
顾念真推了推眼镜,镜片后的目光里,第一次露出了明显的惊讶。
她原本以为,自己今天是要给一个有想法但基础薄弱的“物理学家”
补课。
却没想到,对方不仅看懂了她给的文献,甚至已经设计出了一套如此成熟的、工程化的解决方案。
“你原来做过高性能计算?”
她忍不住问道。
“没有,但是略懂一二。”
林允宁的回答依旧平静。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!