日期:2013-12-11     编译: hpc100.cn    
  多尺度模型能帮助在更大范围内或者提供更多细节的理解物理化学现象。经典的多尺度模型的例子包括原子模型和粗粒度模型(coarse-grained models),将多个原子用单个混合粒子(fused particle)代替;或者将精细的流体力学模型和相对粗糙的结构力学模型组合。在这两个例子中,我们对单个尺度的现象都有着相当深的了解和认识,但对不同尺度间如何作用或交互了解甚少。由于理解这种作用或交互是能从整体理解混合尺度现象的关键,因此许多研究者正积极的研究并使用多尺度模型技术。[1]

    2010年,来自不同领域的研究者们意识到了对通用多尺度计算方案的一致需求,由此启动了欧洲信息基础设施MAPPER项目(the European e-Infrastructure MAPPER project)。此项目致力于使用高性能计算解决多尺度应用需求,相关领域包括生物医药、水文、纳米材料、聚变及系统生物学。

    此项目最终选定了基于理论和组件的“多尺度模型及模拟框架”(Multiscale Modeling and Simulation Framework)[2],该框架基于一组耦合的单尺度模型定义多尺度模型。 由于单尺度模型通常已经存在,因此这个框架实现能很好的支持代码复用,同时由于耦合的多尺度模型能拆分,这使得调度和分布式处理很容易进行。单尺度模型(或者称为子模型)会各自单独实现、校验并确认,然后再加上交互作用。交互主要通过输入输出端口、发送或接受参数、数据集或几何参数实现。系统管道组件负责数据从一个端口到另一端口的传输,解释组件则负责数据转换,这就实现了所谓的尺度桥梁(scale-bridging)技术。

    多尺度耦合库及环境(Multiscale Coupling Library and Environment 2 ,MUSLE 2)是用反馈循环(我们称为周期性耦合拓扑,cyclic coupling topologies)(feedback loops)实现的一个多尺度模型应用和执行库。 MUSCLE是一个真正领域/行业无关的实现,目前已经被前文所述的MAPPER项目采用,并在欧洲的多个超级计算机系统以及Amazon云环境中应用。它包括了一个库、脚本化的耦合以及一个运行环境。

    依据设计,子模型独立完成各自计算,MUSCLE2允许不同的子模型采用不同的开发语言实现(C/C++/Fortran/Java/Python,或者MATLAB),并且可以运行在不同的多个计算机系统上。数据通信模块则依据硬件系统条件选择共享内存方式(首选)或者TCP/IP通讯。

    MUSCLE2将子模型代码隔离,从而使得用户在更改耦合模型时无需重新编译子模型计算代码。同时,由于耦合计算代码和子模型计算资源独立,所以同一个耦合可以提交到多个系统。这使得我们不仅可以使用更多的计算资源,更重要的是,我们可以为不同的子模型计算选择最适合它的计算系统,例如大内存系统,或者配备GPGPU的加速计算系统。

    在单台超级计算机内部,MUSCLE 2可以为不同进程建立直接的连接。但由于大部分超级计算机都设置了防火墙,组织用户自己在计算节点间的直接通信,因此MUSCLE 2提供了TCP/IP转发服务,称为Transport Overlay。只要每个系统事先已经安装MUSCLE2,它就可以在不同节点间传递消息。

    为了优化大消息传递速度,MUSCLE2提供了使用MPWide库的选项(http://www.github.com/djgroen/MPWide),这是一个高性能的通讯函数库,过去主要用在多集群并行宇宙模拟[3]。 

    MUSCLE2 是一个开源软件(遵循LGPL V3协议),运行于Linux和 X环境。


参考文献:
[1] Groen et al., Survey of Multiscale and Multiphysics Applications and Communities, IEEE Computing in Science and Engineering, http://dx.doi.org/10.1109/MCSE.2013.47.

[2] Borgdorff et al., Foundations of distributed multiscale computing: Formalization, specification, and analysis, Journal of Parallel and Distributed Computing http://dx.doi.org/10.1016/j.jpdc.2012.12.011

[3] Groen et al., A lightweight communication library for distributed computing, accepted by the Journal of Open Research Software, http://arxiv.org/abs/1312.0910.
 

版权所有:中国计算机学会高性能计算专业委员会、中国工业与应用数学学会高性能计算与数学软件专业委员会