10. METAX DockerHub HPC APP
10.1. 基准测试
10.1.1. HPL
HPL(High Performance Linpack)是一项高度并行计算的基准测试,相关信息可参见http://www.netlib.org/benchmark/hpl/。HPL是测试高性能计算集群系统浮点性能的基准,通过对高性能计算集群采用高斯消元法求解多元一次稠密线性代数方程组的测试,评价高性能计算集群的浮点计算能力。它对求解问题的规模没有限制,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。
版本:2.2
10.1.2. macaHPCG
macaHPCG是一款基于HPCG(High Performance Conjugate Gradient)基准测试的应用程序。HPCG是当前主要的HPC系统性能测试基准之一,是一个精简的大规模稀疏线性方程组并行求解器,涵盖了区域分解(Domain Decomposition)、多重网格(Multigrid)和预条件子(Preconditioner)等重要的线性方程组求解技术。与HPL相比,HPCG重点考察访存性能,相关信息可参见https://www.hpcg-benchmark.org。
macaHPCG使用MXMACA软件栈编写,能够充分发挥沐曦通用GPU的出色性能。这使得macaHPCG成为评估和比较超级计算系统在实际问题求解方面的性能的有力工具。
版本:0.9.0
10.1.3. SHOC
SHOC(Scalable HeterOgeneous Computing)是一个全面、可扩展、开放且易于使用的GPU基准测试套件,旨在帮助用户评估GPU系统的性能,并为GPU应用程序的开发和优化提供参考,相关信息可参见https://github.com/vetter/shoc/tree/master。它包含了多个基准测试,涵盖了多种计算模式和应用领域,如线性代数、图形处理和流体力学等。SHOC的基准测试覆盖了BLAS、FFT、Dense Linear Algebra(稠密线性代数)、Sparse Linear Algebra(稀疏线性代数)、Graph Algorithms(图算法)、MD5 Hashing等领域。
SHOC具有可扩展性,可以测试不同规模的问题和系统。它支持单节点和多节点GPU系统的测试,以及不同数量和类型的GPU设备。此外,SHOC是一个开源项目,用户可以自由下载和使用该软件,并根据需要进行定制和修改。SHOC提供了简单易用的命令行接口,使用户可以轻松地运行测试并获取结果。此外,SHOC还提供了详细的文档和代码示例,以帮助用户了解和使用该套件。
版本:commit 0aea03beba2f09fcb5935cc11737372fe4de9ec0
10.2. 材料力学与分子动力学
10.2.1. VASP
VASP(The Vienna Ab initio Simulation Package)是一款用于原子尺度材料模拟的计算软件,广泛应用于研究电子结构性质和分子动力学模拟,相关信息可参见https://vasp.at。它基于第一性原理方法,通过求解Kohn-Sham方程或Hartree-Fock近似下的Roothann方程,利用密度泛函理论(density functional theory,DFT)来近似求解多体薛定谔方程。此外,VASP还支持混合泛函方法,将Hartree-Fock方法与DFT方法相结合。在VASP中,电子的单粒子轨道、电荷局域密度和电势等以平面波基组进行表示。与离子之间的相互作用采用模守恒赝势、超软赝势或缀加投影平面波方法描述。VASP在金属及其氧化物、半导体、晶体、掺杂体系、分子、团簇、表面体系和界面体系等领域的原子尺度模拟中得到了广泛应用,是一款备受欢迎的软件工具。
版本:6.2.0
10.2.2. CP2K
CP2K(https://www.cp2k.org)是一款用于量子化学和固体物理的软件包,可进行原子尺度的模拟,适用于固态、液态、分子、晶体和生物系统的研究。CP2K支持多种方法,包括混合高斯和平面波混合基(GPW/GAPW),并且支持DFTB、LDA、GGA、MP2、RPA、半经验方法(如AM1、PM3、PM6、RM1、MNDO)以及经典力场(如AMBER、CHARMM)。CP2K可用于分子动力学、蒙特卡洛方法、Ehrenfest动力学、振动分析、核心能级光谱、能量最小化,并提供NEB或dimer方法用于过渡态模拟。它是一款功能强大且广泛应用于科学研究领域的软件工具。
版本:2023.1
10.2.3. GROMACS
GROMACS(https://www.gromacs.org)是一款用于模拟分子动力学的软件,旨在模拟分子的运动和相互作用。作为一款高度优化的程序,GROMACS可在多种计算机架构上运行,并被广泛应用于生物物理学和化学研究领域。该软件能够模拟各种分子系统,包括蛋白质、脂质、核酸和多糖等生物大分子,以及溶剂、离子和小分子等非生物分子。此外,GROMACS还提供丰富的模拟功能,如温度和压力控制、自由能计算和路径采样等。
版本:2022.1
10.2.4. LAMMPS
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一款用于模拟原子、分子和其他粒子的分子动力学软件,相关信息可参见https://www.lammps.org。作为一款高度优化的程序,LAMMPS可在各种计算机架构上高效运行,并且广泛应用于材料科学、生物物理学、化学和地球科学等研究领域。该软件能够模拟多种分子系统,包括固体、液体和气体等。此外,LAMMPS还提供丰富的模拟功能,如温度和压力控制、自由能计算和路径采样等。
版本:patch_4May2022
10.2.5. OpenMM
OpenMM(https://openmm.org)是一款用于模拟分子运动和相互作用的高度优化分子动力学模拟软件。它能够在各种计算机架构上高效运行,并且被广泛应用于生物物理学和化学研究中。OpenMM可用于模拟多种分子系统,包括蛋白质、脂质、核酸、多糖等生物大分子,以及溶剂、离子和小分子等非生物分子。该软件提供了广泛的模拟功能,包括温度和压力控制、自由能计算和路径采样等。
版本:8.0.0
10.2.6. NAMD
NAMD(NAnoscale Molecular Dynamics)是一款开源的高性能分子动力学模拟软件,相关信息可参见https://www.ks.uiuc.edu/Research/namd。NAMD是一个基于Charm++并行框架的分子动力学软件,具备多种力场的支持,用于模拟和分析生物分子的运动方程、性质和结构等。NAMD通过原生的GPU加速技术对多个计算模块进行加速,包括Bonded计算和Nonbonded计算等。沐曦通用GPU进一步提升了NAMD在MXMACA软件栈上的性能表现,以提供更快速且准确的模拟结果。这为科学家研究生物分子的结构、性质和动态行为等提供了有力的工具和平台。
版本:2022-05-10
10.2.7. Amber
Amber(Assisted Model Building with Energy Refinement)是计算生物学和计算化学领域广泛应用的软件套件,用于模拟和分析生物分子的结构、动力学和相互作用,相关信息可参见https://ambermd.org。它提供了强大的工具和算法,包括分子力学模拟、分子动力学模拟和结构优化等任务;适用于各种生物分子体系,如蛋白质、核酸、碳水化合物和小分子;支持多种力场参数化和模型构建方法,并提供精确的参数化和模拟设置;提供分子动力学和蒙特卡洛等模拟算法,以研究分子的时间演化和采样;还包括能量最小化、结构优化和能量计算等功能,用于研究生物分子的稳定性、构象变化和相互作用。
Amber软件包括AmberTools和AmberMD等模块和工具,提供了命令行接口和图形界面。该软件支持并行计算,具备在多核CPU和GPU等平台上高性能计算能力,以加速大规模模拟和计算任务。此外,Amber还与其他计算化学和生物信息学软件集成,为科学家提供丰富的研究工具和资源。
版本:amber22
10.3. 并行编程库
10.3.1. RAJA
RAJA(https://github.com/LLNL/RAJA)是一款面向C++的并行编程库,旨在为科学计算和工程应用程序提供高性能的并行计算支持。该库提供了多种并行编程模式,包括共享内存、分布式内存和异构GPU计算等,并且支持多种硬件架构(如CPU和GPU)、操作系统和编译器。
RAJA库的设计目标是提供简洁易用的API,使用户能够轻松地利用各种并行模式来编写并行计算代码。同时,RAJA库针对不同的硬件架构进行了算法和数据结构的优化,以提供高效的并行计算性能。
MetaX对RAJA库进行了移植,使其适配到MXMACA平台,实现了在MXMACA上无缝运行RAJA程序的能力。因此,用户可以在MXMACA平台上充分利用RAJA库的并行计算能力,为科学计算和工程应用程序提供高性能和可扩展性的解决方案。
版本:V2022.10.4
10.3.2. Kokkos
Kokkos(https://kokkos.github.io)是一种并行编程库,旨在帮助编写高性能的科学计算和工程应用程序。该库支持多种并行计算模式,并提供跨平台的API来实现这些模式。Kokkos库使用C++语言开发,利用模板元编程技术提高代码的泛化性和可重用性。它可在多种硬件平台上运行,包括CPU、GPU和FPGA等。此外,该库还支持多种编译器和操作系统。
Kokkos库允许用户使用不同的并行模式来描述问题。用户可以根据需求选择最合适的模式来解决问题。Kokkos库在许多科学计算和工程应用中得到广泛应用,并展现出出色的性能。该库支持多种并行计算模式,并提供了针对不同硬件架构进行优化的算法和数据结构。
MetaX对Kokkos库进行了移植,使其适配到MXMACA平台,实现了在MXMACA上无缝运行Kokkos程序的能力。这样的适配能够充分发挥MXMACA平台的优势,为科学计算和工程应用提供高性能和可扩展性的解决方案。
版本:3.7.01
10.4. 求解器
10.4.1. PETSc
PETSc(Portable, Extensible Toolkit for Scientific Computation)是一个用于解决科学应用程序中偏微分方程问题的工具包,相关信息可参见https://petsc.org。它为科学家们提供了在计算机上高效求解这些方程的能力。PETSc支持多种编程语言,包括C、Fortran和Python,并提供了丰富的功能和工具来简化和加速科学计算过程。
PETSc不仅包含了一系列高效的求解器和预处理器,还集成了TAO(Toolkit for Advanced Optimization),它为科学家们提供了优化模拟结果的高级工具。此外,PETSc还支持在多台计算机上进行并行计算,以提高计算任务的速度和效率。
MetaX对PETSc进行了深度优化,特别是在数据传输方面。这些优化措施提高了PETSc在GPU上的性能,使其能够更快速地求解科学应用程序中的偏微分方程。沐曦通用GPU支持PETSc与其他软件包HYPRE和OpenFOAM相结合,形成了一个强大的GPU并行计算解决方案,能够更好地加速计算流体力学问题的求解过程。
版本:3.18.0
10.4.2. HYPRE
HYPRE(High-Performance Preconditioners)是一个线性求解器库,专为处理大规模科学模拟问题而设计,能够比传统方法更快地解决这些问题,从而使得更大、更详细的模拟成为可能。相关信息可参见http://www.llnl.gov/casc/hypre/。HYPRE库提供了一套全面可扩展的求解器,特别适用于处理结构化和非结构化网格问题,并采用并行多重网格方法。
HYPRE库具有高度的可移植性,并且支持多种编程语言。MetaX对HYPRE与PETSc的集成进行了优化,特别是在内部数据结构方面。通过减少不必要的数据拷贝和同步操作,提高了PETSc与HYPRE的连接效率,从而为其他应用程序(如OpenFOAM)提供了高效的GPU并行求解方案。
这种优化使得在大规模算例上,使用PETSc+HYPRE进行并行计算时能够更高效地解决问题,为科学模拟提供了更快速和准确的求解能力。这对于需要处理复杂问题的科学领域而言具有重要意义,并为实现更大规模和更精细的模拟成果提供了强有力的支持。
版本:2.23.0
10.5. 生物医学与健康
10.5.1. AutoDock
AutoDock(https://autodock.scripps.edu/)是一款开源的蛋白质-小分子自动对接软件,主要用于执行配体-蛋白质分子之间的结合模拟,可用于计算生物学、药物设计和虚拟筛选等领域。其提供的自动对接功能和能量评估方法为研究人员提供了强大的工具来研究蛋白质与小分子之间的相互作用。它包含两个主要程序,即AutoGrid和AutoDock。其中,AutoGrid用于计算格点中的相关能量,而AutoDock则负责构象搜索和评估。
在AutoDock中,配体和受体之间的结合能力通过能量匹配来评估。在1.0和2.0版本中,能量匹配得分基于简单的基于AMBER力场的非键相互作用能进行计算。非键相互作用能包括范德华相互作用、氢键相互作用和静电相互作用。
然而,在AutoDock 3.0及以后的版本中,引入了半经验的自由能计算方法来评估受体和配体之间的能量匹配情况。这种方法提供了更准确的能量评估,帮助研究人员更好地理解和预测配体-受体相互作用的强度和稳定性。
版本:4.2.6
10.5.2. BlastP
BLAST(Basic Local Alignment Search Tool)是由美国国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发和管理的一套基于局部序列比对算法的搜索工具,用于生物大分子一级结构序列的比对。相关信息可参见https://blast.ncbi.nlm.nih.gov/Blast.cgi。该工具能够将输入的核酸碱基序列或蛋白质氨基酸序列与数据库中的已知来源序列进行比对,提供序列之间的同源性信息,从而帮助鉴定输入序列的来源以及与已知序列的进化关系。通过BLAST的使用,研究人员可以在海量的序列数据库中搜索并找到与他们的序列相关的信息,从而加深对生物大分子的理解。
BLAST包含五种基本功能,分别是blastn、blastx、blastp、tblastn和tblastx。其中,blastp是用于蛋白质序列对蛋白质序列库进行比对的功能。它能够直接将输入的蛋白质氨基酸序列与数据库中的氨基酸序列进行比对,寻找相似性并计算匹配程度。
版本:ncbi-blast-2.2.28+
10.5.3. RELION
RELION(REgularised LIkelihood OptimisatioN)是一款用于进行冷冻电镜生物分子结构的重建的开源软件,由剑桥大学分子生物学实验室的Sjors Scheres教授于2012年发布,相关信息可参见https://github.com/3dem/relion。它被广泛应用于单颗粒冷冻电镜图像处理,并获得了多个高分辨率(4Å以下)的重建结果。RELION利用MPI和GPU实现并行加速,并通过fltk和x11提供GUI界面。它包含多个基本模块,如数据导入、束流诱导运动校正、CTF估计、自动颗粒挑选、二维类平均、高分辨率三维重构等。我们完成了RELION在MXMACA环境下进行移植,使其能够在拥有沐曦通用GPU的环境中运行,从而为用户提供了在冷冻电镜结构重建中的可靠工具。
版本:4.0.0
10.5.4. BART
BART(Berkeley Advanced Reconstruction Toolbox)是一款开源的MRI图像重建软件,相关信息可参见https://github.com/mrirecon/bart。BART提供了在CPU和GPU上进行多维数组处理、傅里叶变换、小波变换等算法的能力,并支持迭代优化重建算法。该软件以命令行形式提供接口,可与Python和MATLAB进行集成。此外,基于TensorFlow的支持,BART还具备自动微分(automatic differentiation)的功能,从而实现了MRI重建与深度学习框架的融合。MetaX已成功将BART移植到沐曦通用GPU环境中,使其能够在该环境下运行,为用户提供可靠的MRI图像重建工具。
版本:v0.8.00
10.6. 力学
10.6.1. PyFR
PyFR(https://www.pyfr.org)是一款高保真开源计算流体力学(CFD)软件平台,由英国帝国理工学院的Peter Vincent教授领导开发,采用基于Flux Reconstruction (FR) 格式。该软件平台使用Python编写,并应用了Mako模板库,实现了代码主体和运行平台相互独立的效果。PyFR基于现代硬件架构设计,支持多种GPU、CPU平台加速方式,具有出色的性能和强大的扩展性。它适用于解决一些具有挑战性的流体动力学问题,如飞机设计、F1赛车和风力涡轮机等。
基于MXMACA软件栈中的MCRUNTIME API,对PyFR进行了移植,并增加了MXMACA后端,使得PyFR能够轻松地在沐曦通用GPU上运行。这意味着用户可以利用沐曦通用GPU的加速能力,更高效地运行PyFR,从而加快流体力学模拟的计算速度,并且能够处理更具挑战性的复杂流动问题。
版本:1.14.0
10.6.2. METAXFOAM(OpenFOAM)
METAXFOAM是一款基于OpenFOAM(https://www.openfoam.com)的开源软件,专注于通过GPU进行计算流体力学计算。OpenFOAM是广泛应用的开源计算流体力学软件,提供了全面的流程功能,包括数据预处理、数值计算和后处理等环节。其中,数值计算部分包含了多个常用的流体力学求解器,如不可压非稳态求解器icoFoam、稳态不可压求解器simpleFoam、非稳态不可压湍流求解器pimpleFoam、可压流体求解器rho*Foam和浮力驱动流求解器buoyant*Foam等。然而,OpenFOAM原生运行于CPU上。METAXFOAM已实现了对不可压求解器icoFoam、simpleFoam和pimpleFoam中的大部分功能进行全流程GPU加速。这意味着利用沐曦通用GPU强大的计算能力,显著提升了这些求解器的计算效率。同时,MetaX还将高效并行求解器PETSc和Hypre嵌入到OpenFOAM中,进一步加速了计算过程。
通过METAXFOAM,用户可以充分利用OpenFOAM的强大功能,并在GPU加速下获得更高的计算性能。
版本:v2206
10.6.3. SPECFEM3D
SPECFEM3D(https://github.com/SPECFEM/specfem3d)是一款开源的计算地震学软件,它采用谱元法来模拟地震波在不同尺度下的传播。该软件能够在各种类型的六面体协调网格(包括结构化和非结构化网格)中进行声学(流体)、弹性(固体)、耦合声学/弹性、多孔弹性或地震波传播的模拟。
SPECFEM3D广泛适用于区域尺度的流体流动和地震波传播问题。它具有灵活性,可以与专用的反演工具相结合,用于地震层析成像和地震危险性分析等研究。该软件提供了一个强大而可靠的工具,用于模拟和研究地震波传播的物理过程,有助于深入理解地震事件和地球内部结构的特征。
版本:4.0.0
10.7. 可视化
10.7.1. Cycles
Cycles(https://github.com/blender/cycles)是Blender中集成的一款高度交互和易用的光线追踪引擎,被广泛应用于三维图形图像编辑和渲染的领域。它提供了丰富的渲染功能,包括表面、体积和次表面散射等效果,并支持各种材质属性,如玻璃、透明、金属、毛发和散射等。Cycles还提供了多种光照属性,包括点光源、区域光源和环境光源等。通过集成了OIDN和Optix降噪器,Cycles能够以高精度渲染物体的光照效果,实现真实的全局光照。Cycles支持多种CPU和GPU硬件,并且可以在不重新编译的情况下轻松切换到具备适当硬件和软件条件的机器上。MetaX将Cycles移植至沐曦通用GPU进行光线追踪渲染加速。
版本:commit 3eaf89c3c0b600eabc3d2fd8361fa17abc8f8992