在Win10使用WSL2环境运行xTB程序

xTB 是 Grimme 组开发的“半经验”的类 DFT 程序,普适性不错,而且开源,不过暂时只有 Linux 版,但好在 Windows 10 已经开始拥抱开源,有了 Linux 子系统,因此对于少量的计算,使用 Win 下的 WSL 快速在可视化和计算中切换很有用处。

WSL2 的安装

系统需求

最好的方法就是参考微软的 WSL 文档https://docs.microsoft.com/zh-cn/windows/wsl/install-win10,这里简单概述一些WSL2(不是 WSL1)涉及的要点:

  • Windows 系统版本:(不同的版本有不同的要求)
    • 20H2,可参照 2004
    • 2004, 内部版本 19041 or higher:测试表明需要额外安装 Linux 内核供 WSL 2 使用:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel
    • 1903 或 1909,不建议使用,需要自行安装如 KB4566116,并须使用winver验证 Windows 版本在 18362.1049 或 18363.1049 以上

安装步骤

需要启用的系统功能(建议按照步骤依次进行):

  • 启用“适用于 Linux 的 Windows 子系统”可选功能:
    (_使用管理员权限_)

    1
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • 启用“虚拟机平台”可选组件:
    (_使用管理员权限_)

    1
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 启用后需要重启

  • 将 WSL 2 设置为默认版本:
    (_使用管理员权限_)

    1
    wsl --set-default-version 2

    如果没有安装此前提到的内核会报错

  • 安装需要的 Linux 分发版即可(通过 Windows Store

额外说明

  • 如果需要使用 root 用户作为默认用户,可以执行:
1
ubuntu config --default-user root
  • 如果要通过Windows资源管理器访问wsl目录:
    可以通过在“此电脑”右键“添加网络位置”实现,需要输入的路径为\\wsl$\ubuntu.

xTB 的配置和使用

建议直接使用 xtb-python,此外需要配置的还有一些环境变量,以合理地处理一些原子数较多的体系:

1
2
3
4
5
ulimit -s unlimited
export OMP_STACKSIZE=4G
export OMP_MAX_ACTIVE_LEVELS=1
export OMP_NUM_THREADS=<ncores>,1
export MKL_NUM_THREADS=<ncores>

!注意,可能会与 Gaussian 软件的使用存在一定冲突,可能会使内存占用上升。