0
点赞
收藏
分享

微信扫一扫

HPC平台计算软件依赖, Singularity超级简单

小禹说财 2022-04-21 阅读 62

传统传统 

如上图所示, 做科学计算, 安装各种软件, 经常遭遇依赖问题.

可能是各计算软件/代码, 过多侧重于能否解决问题, 依赖优化方面考量的较少. 再或者是各种矩阵运算、数学近似, 在不同MPI版本以及不同版本数学库之间有些许差异, 导致计算结果可能有明显的差异, 即所谓差之毫厘, 谬之千里.

为了保证计算软件/代码能顺利安装和运行, 保证数据可重复性, 一般建议按照软件/代码作者所测试的平台和工具链版本来进行安装部署, 否则极有可能安装失败, 或者算出来结果不对.

绝大多数情况下, HPC的用户是没有管理权限的, 顶多也只能在$HOME里面折腾, 而且绝大多数情形下, HPC是几乎不会对外联网的, 所以, git, wget都基本会无法使用的. 少数情况下, HPC管理员会搭理你, 但是会说, 我只负责HPC平台运行, 不负责用户的具体运算软件.

用户摆弄自己的专业代码都很头疼了, 哪有功夫去摆弄Linux? 况且市面上的Linux教程, 基本针对Linux系统管理员或者运维, 哪有针对做科学计算应该具备什么样的Linux技能的教科书呀? 

所谓鸟格私房菜这种教程, 做科研计算的小伙伴, 看了也是白看. 

Singularity方案

下图描述一种解决方案. 

这里, 把每一个App的特殊依赖和App直接打包为一个可执行的二进制文件. 解决一切烦恼.

这种模式下, 用户的App不再和系统的各种库打交道, 而直接和内核沟通. 细节如图片文字所述. 

 Singularity是什么

谁在使用/Who are using Singularity 

  • Texas Advanced Computing Center 

    Oak Ridge Leadership Computing Facility 

    Purdue University 

    National Institutes of Health HPC 

    UFIT Research Computing at the University of Florida 

    San Diego Supercomputing Center 

    Lawrence Berkeley National Laboratory 

    University of Chicago 

    Argonne National Lab

    … the list is growing…

​​​​​​​虚拟化效率低下???

什么? !!!!

那么你认为这么多知名实验室超算用户都是傻子吗?

各种Linux平台上跑docker虚拟化的互联网公司都是傻子吗?

建议摒弃基于微软平台下的虚拟机性能认知. 

运行计算

case 1, run parallel VASP/ 运行VASP

传统模式

  1. 安装Intel编译器套件,
  2. 拿到VASP源码, 修改配置文件,
  3. 使用intel编辑器编译vasp源码, 得到二进制文件,
  4. 配置二进制文件, 启用MPI, 避免和其他版本冲突
  5. 运行 
    mpirun -np 4 vasp_std

Singularity模式

  1. 下载制作好的文件, 比如是vasp6-hpc4you.exe, 放到$HOME/bin
  2. 运行
    vasp6-hpc4you.exe 4 vasp_std
  3. 注意, 你无需在机器上安装任何MPI或者关照任何已经存在的MPI版本.

case 2,  run ORCA/ 运行ORCA

传统模式

  1. 1.安装特定版本gcc,

    2.源码编译安装特定版本的openMPI,

    3.下载ORCA,

    4.配置ORCA和对应的openMPI版本, 避免和其他版本openMPI冲突, 合理屏蔽系统MPI. 可能要涉及到编辑~/.bashrc文件或者配置module文件, 并学会如何激活这种设定. 

    5.运行 

    orca InputFile > OutputFile

Singularity模式  

  1. 下载制作好的文件, 比如是orca5-hpc4you.exe, 放到$HOME/bin
  2. 运行
    orca5-hpc4you.exe InputFile > OutputFile
  3. 注意, 你无需在机器上安装任何MPI, 也无需关照任何已经存在的MPI设定.

case 3,  run g09/ 运行g09

传统模式

  1. 拿到g09软件包, 解压到指定目录
  2. 根据手册, 设定用户组和组权限(很多小伙伴在这一步就卡住了)
  3. 配置g09, 设定g09root以及编写g09初始化脚本(99%的硕士博士新生搞不定的)
  4. 启用g09脚本, 比如放在~/.bashrc中 (99%的硕士博士新生搞不定的, 找不到~/.bashrc,更不晓得怎么把脚本放里面, 因为不会vi)
  5. 运行计算
    g09 InputFile.com &

Singularity模式

  1. 下载制作好的文件, 比如是g09-hpc4you.exe, 放到$HOME/bin
  2. 运行
    g09-hpc4you.exe InputFile &
  3. 注意, 你无需在机器上做任何设定哦.
举报

相关推荐

0 条评论