“如果你的仿真还没有受到硬件限制,说明你的仿真还没有入门”
对于仿真工程师来讲,最痛苦事情莫过于等待求解器计算。实际工程中稍微上规模的案例计算时间短则几小时,长则几天甚至更长。在这个过程中如果出现问题,还要找到原因排除问题重新计算(比如内存不够,可能造成程序退出,也可能和硬盘交换内存性能下降,再比如常见的网格质量差计算不收敛)。工程师都希望用最快的机器进行计算。
这也从某种程度上说明了为什么主流的仿真工具就那么几个:仿真的首要问题是稳定和精度,而这种稳定性和高精度只能通过长期的用户迭代和技术积累实现。
本文从硬件,软件以及开发三个方面来介绍仿真 HPC(High Performance Compuing)
海量数据的筛选,和大规模计算和评估,这些任务无法短时间内在 PC 机上完成,只能依赖高并发,高共享的集群式 HPC 硬件。
区别于一般的 PC 机器,仿真用 HPC 硬件重点在于处理计算海量数据,因此并不单单追求单核计算性能,而是包括共享内存,CPU 调度,资源分配,网络吞吐,硬盘读写性能,数据存储等综合考量。
以我国神威·太湖之光为例,该超级计算机由 40 个运算机柜和 8 个网络机柜组成。每个运算机柜比家用的双门冰箱略大,4 块由 32 块运算插件组成的超节点分布其中。每个插件由 4 个运算节点板组成,一个运算节点板又含 2 块“申威 26010”高性能处理器。一台机柜就有 1024 块处理器,整台“神威·太湖之光”共有 40960 块处理器。每个单个处理器有 260 个核心,主板为双节点设计,每个 CPU 固化的板载内存为 32GBDDR3-2133。
HPC 硬件并不是简单的数字加法,对于用户而言,需要综合考虑各个因素,在评估经济性的前提下做出最佳选择。
目前的 HPC 软件,主要是用来协调计算机硬件资源,包括 CPU,内存,IO,集群等。以 CPU 为例,普通 PC 好的 CPU 只在几十核,资源调度以多进程,线程为主。服务器,集群则涉及到多台计算之间资源调度。而对于类似超算机器,核心可能有几百万,几千万,普通的资源调度算法本身可能也需要资源调度。
当一个有海量数据的任务交给 HPC 处理时,会遇到如下问题:该任务有多少比例可以分解单独分别执行,可单独执行的任务时间是否均匀,单个任务放在单独机器上内存是否足够,磁盘读写性能是否能同步,网络带宽是否会成为瓶颈等等,当所有问题放在一起考虑的时候,HPC 就不可避免的成为一个系统工程。数据计算量越大,硬件越多,系统就越复杂。找到一个合适业务的 HPC 模式并不是容易的事,尤其是受限于硬件资源,很多 HPC 更多的依赖经验或者少考虑效率。所有这些操作需要好的软件来控制。
[版权声明] :本文系网友分享,仅以非商业性的交流和科研为目的,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网( friends@stuch.cn )联系!我们将协调给予处理。转载授权码:确权中,请原作者尽快与我们取得联系,阅读原文(请登录)..