计算化学公社

标题: 使用WSL(Windows subsystem for linux)在win10系统下用Linux版“搞死”做计算 [打印本页]

作者
Author:
exity    时间: 2020-2-14 17:42
标题: 使用WSL(Windows subsystem for linux)在win10系统下用Linux版“搞死”做计算
本帖最后由 exity 于 2021-3-2 10:41 编辑

2021.3.2更新
由于WSL2中默认mnt挂载目录权限为777
建议不要把g09文件夹放在挂载目录下。


话说VMware最近有点抽风(其实是阿三把win10搞抽风导致VM抽风),虚拟机用起来各种不顺畅,以前好用的vm-tools直接拷贝文件也失效了,几番折腾没有很好的解决,一怒之下把VMware卸载了,可是有些小作业犯不着上传到服务器,用“搞死W”又不能满足需求,于是转而折腾WSL,目前实现了WSL下用Linux版“搞死”做计算,性能和VMware目测相差无几(俺VM不能用了,因此也没法对比。),理论上应该更高,在此把步骤分享给大家,一起进步~!

1. 确定你是windows10系统,windows10s是不行的。
2. 进入如下路径Control Panel\Programs\Programs and Features,点击右边“Turn Windows features on or off”窗口,在弹出的对话框里勾选中“Windows Subsystem for linux”的复选框,对应的中文版自己翻译一下,应该大差不差,重启系统。
3. 打开Microsoft Store,搜索ubuntu,这时大概率会切换到“在Windows上运行Linux?”界面,点击“获取这些应用”,安装第一个linux发行版“ubuntu”,其他几个发行版应该也能用,但是我不熟悉,感兴趣的同学可以自己折腾。
4. 等Ubuntu安装好后,点击打开,这时会要你输入用户名和密码,假设我们使用iceeyes这个用户名。
5. 用mkdir命令,建立apps文件夹,用于安装“搞死”,具体用法为 mkdir /home/iceeyes/apps,回车就行。
6. 然后在你的windows系统下,在C盘下建立一个文件夹,命名为mywslfiles(这一步是在windows系统下操作的)
7. 在你的linux终端下输入命令 cd /mnt/c/mywslfiles,就能进入到mywslfiles文件夹了。然后在windows下,把你要安装的“搞死”文件夹放在"mywslfiles"里。
8. 输入命令 cp -r /mnt/c/mywslfiles/g09 /home/iceeyes/apps/
9. 输入命令 cd /home/iceeyes/apps/g09
10. 输入命令 mkdir scratch
11. 输入命令 chmod 750 -R *
12. 输入命令 vim ~/.bashrc,写入如下命令
        export g09root=/home/iceeyes/apps
        export GAUSS_SCRDIR=/home/iceeyes/apps/g09/scratch
        source /home/iceeyes/apps/g09/bsd/g09.profile
13. 保存后退出ubuntu终端,再次进入
14. 把你的gjf放在mywslfiles文件夹下,然后enjoy your calculation!!!
15. 期待有同学对比下wsl下和vmware下的计算耗时!!!

================根据三楼同学的评测@paramecium86==================
WSL效率较高

做了个简单的对比。蒽环几何优化 opt b3lyp/6-31g(d) em=gd3 都是用双核 150MW
                                                Elapsed time
g16w a03 64bit                             14分59秒
g16 a03 vmware /centos7.8             4分25秒
g16 a03 wsl  /ubuntu                      3分51秒

作者
Author:
zjxitcc    时间: 2020-2-15 21:47
感觉一个缺憾是/etc/hosts不能用,这次修改了,下次启动WSL会被抹掉。其他的功能都跟正经的Ubuntu没太大区别。
另外,MobaXterm既可以识别WSL,也能提供自己的linux环境(其实是cygwin)。如果不做计算,只是用linux常用命令的话,感觉MobaXterm更简便。做计算的话感觉还是WSL比MobaXterm带的小系统更专业点。
作者
Author:
paramecium86    时间: 2020-2-16 05:10
做了个简单的对比。蒽环几何优化 opt b3lyp/6-31g(d) em=gd3 都是用双核 150MW
                                                Elapsed time
g16w a03 64bit                             14分59秒
g16 a03 vmware /centos7.8             4分25秒
g16 a03 wsl  /ubuntu                      3分51秒


作者
Author:
exity    时间: 2020-2-16 08:02
paramecium86 发表于 2020-2-16 05:10
做了个简单的对比。蒽环几何优化 opt b3lyp/6-31g(d) em=gd3 都是用双核 150MW
                          ...

看来原生的WSL效率还是高一些,这几天虽然没有进行对比,但是感觉上确实快很多。
作者
Author:
exity    时间: 2020-2-16 08:45
zjxitcc 发表于 2020-2-15 21:47
感觉一个缺憾是/etc/hosts不能用,这次修改了,下次启动WSL会被抹掉。其他的功能都跟正经的Ubuntu没太大区 ...

写个脚本,一键覆盖 :D
作者
Author:
冰释之川    时间: 2020-2-16 09:17
本帖最后由 冰释之川 于 2020-2-16 09:19 编辑

补充一下 WSL无法更改权限的解决方案 (某丝就你作,文件夹权限还要750!!):

Step1 创建wsl.conf文件

在 /etc 目录下创建一个 wsl.conf 文件,添加以下配置:

  1. [automount]
  2. enabled = true
  3. options = "metadata,umask=22,fmask=11"
复制代码




Step2 在.bashrc中添加以下配置

  1. if [ "$(umask)" = "0000" ]; then
  2.   umask 0022
  3. fi
复制代码


重启WSL,重新修改那些文件和文件夹的权限,成功!

作者
Author:
exity    时间: 2020-2-16 09:36
冰释之川 发表于 2020-2-16 09:17
补充一下 WSL无法更改权限的解决方案 (某丝就你作,文件夹权限还要750!!):

Step1 创建wsl.conf文件 ...

chmod就可以的,冰冰姐这是啥情况?能否细说一下,我学习学习。
作者
Author:
冰释之川    时间: 2020-2-17 16:06
exity 发表于 2020-2-16 09:36
chmod就可以的,冰冰姐这是啥情况?能否细说一下,我学习学习。

就是刚装完WSL,你用chmod修改文件权限  无效
作者
Author:
exity    时间: 2020-2-17 17:38
冰释之川 发表于 2020-2-17 16:06
就是刚装完WSL,你用chmod修改文件权限  无效

呃...我这里并未出现这样的情况,装好就能chmod了...
作者
Author:
pika02    时间: 2020-2-19 23:26
本帖最后由 pika02 于 2020-2-20 20:20 编辑

谢谢lz,wsl,wsl
刚整了台新主机,还在考虑要不要装个虚拟机或者双系统,看到这帖说wsl效率更高,可以不用折腾虚拟机了

==============20200220================
按照该方法在wsl的ubuntu 18.04 LTS中运行g09 E.01成功,但照猫画虎装上了g16 A.03 AVX2后(已经把g09删干净了,.bashrc也弄干净了),却出现Error: illegal instruction, illegal opcode错误。
http://sobereva.com/439中查到这个错误是由于CPU不兼容AVX2造成的。我的cpu是3950x,avx2照理来说没毛病,首先猜测是WSL的锅。

然鹅在此博客(https://computational-chemistry. ... 9/09/05/zen2-linux/)中看到
早速 Gaussian16 revB01 を Ryzen 3900x でインストールして動かそうとしましたが、
Error: illegal instruction, illegal opcode
というエラーが出てしまい、うまく行きませんでした。

最初は、どう対処したら良いか全く分からなかったのですが、Gaussian16 revC01 に変えたら動きました!理由は、よく分かりません。

revC01 のリリース日は 7 月なので、ZEN2 に対応しているとも考えづらいです。。。

g16 B01在zen2上有毛病,而C01能用,表明应该是旧版本高斯的锅?




作者
Author:
exity    时间: 2020-2-23 12:21
pika02 发表于 2020-2-19 23:26
谢谢lz,wsl,wsl
刚整了台新主机,还在考虑要不要装个虚拟机或者双系统,看到这帖说wsl效率更高,可以不 ...

3950X...土豪啊......跑高斯效率怎么样?
作者
Author:
pika02    时间: 2020-2-23 13:53
exity 发表于 2020-2-23 12:21
3950X...土豪啊......跑高斯效率怎么样?

我有空测测再单独发个帖子
现在可以参考这个https://computational-chemistry. ... ussian16-benchmark/
3950x就比3900x多了4个核,估计效率是1.2-1.3倍的3900x
作者
Author:
Daniel_Arndt    时间: 2020-2-28 04:36
zjxitcc 发表于 2020-2-15 21:47
感觉一个缺憾是/etc/hosts不能用,这次修改了,下次启动WSL会被抹掉。其他的功能都跟正经的Ubuntu没太大区 ...

我在2017年时曾遇到过MobaXterm里面的awk不正常的情况。我折腾了半天,以为是自己的awk代码有bug。后来用MSYS2里面的awk,才发现自己的代码什么问题也没有。
作者
Author:
comboy2008    时间: 2020-2-29 13:00
用WSL比虚拟机运行linux有优势。我原来在群里发过测试,运行test0397.gjf的测试。wsl没有图像界面,确实比vmare要快10-20%。此外,vmare支持的cpu核心数也有限制为16核心。但是wsl核心数没有限制。多少核心都能用上。这个是vmare比不了的。
作者
Author:
snljty    时间: 2020-2-29 14:07
再装个虚拟桌面比如xming,然后.bashrc里面加一句export DISPLAY=:0,之后GaussView,UltraEdit之类的也都能用。
作者
Author:
pika02    时间: 2020-3-18 18:17
本帖最后由 pika02 于 2020-3-18 18:20 编辑
snljty 发表于 2020-2-29 14:07
再装个虚拟桌面比如xming,然后.bashrc里面加一句export DISPLAY=:0,之后GaussView,UltraEdit之类的也都 ...
Ubuntu子系统中缺少libGLU.so.1、libfreetype.so.6、libXrender.so.1、libfontconfig.so.1、libSM.so.6,需要安装:

  1. sudo apt install libglu1-mesa libfreetype6 libxrender-dev libfontconfig libsm6
复制代码

来源https://zhuanlan.zhihu.com/p/38170085

我装的是VcXsrv,试了一下,多窗口模式,取消Native opengl,gview跑起来了


作者
Author:
zhoutao2011    时间: 2020-4-5 12:39
您好!请问装完后把gjf放进mywslfiles中,打开Ubuntu输入g09 < a.gjf > a.out总提示 No such file or directory,请问是怎么回事?谢谢您
作者
Author:
exity    时间: 2020-4-6 06:49
zhoutao2011 发表于 2020-4-5 12:39
您好!请问装完后把gjf放进mywslfiles中,打开Ubuntu输入g09 < a.gjf > a.out总提示 No such file or direc ...

cd到 /mnt/c/mywslfile这个文件夹下了吗?
如果没有就是这个问题,可能需要补充一点最基础的linux知识。
作者
Author:
zhoutao2011    时间: 2020-4-6 13:05
exity 发表于 2020-4-6 06:49
cd到 /mnt/c/mywslfile这个文件夹下了吗?
如果没有就是这个问题,可能需要补充一点最基础的linux知识。

是的,已经转移到用户目录运行了,谢谢你
作者
Author:
Yaqi    时间: 2020-8-11 09:31
请问,直接从microsoft store安装的话,虚拟系统是默认安装在C盘吗?scratch临时文件夹也在C盘吗?如果想用其他的盘,要怎么操作?
作者
Author:
abin    时间: 2020-8-11 09:35
comboy2008 发表于 2020-2-29 13:00
用WSL比虚拟机运行linux有优势。我原来在群里发过测试,运行test0397.gjf的测试。wsl没有图像界面,确实比v ...

把图形界面关闭了就得了,
然后都是字符界面,
有什么区别。
作者
Author:
exity    时间: 2020-8-11 09:52
Yaqi 发表于 2020-8-11 09:31
请问,直接从microsoft store安装的话,虚拟系统是默认安装在C盘吗?scratch临时文件夹也在C盘吗?如果想用 ...

WSL挂载都在/mnt下,自己随意喽。
作者
Author:
Yaqi    时间: 2020-8-11 10:08
exity 发表于 2020-8-11 09:52
WSL挂载都在/mnt下,自己随意喽。

谢谢解答,如果我想把scratch文件夹放在F盘,是不是直接环境变量设置成:
export GAUSS_SCRDIR=/mnt/f/scratch
就可以了?
作者
Author:
biogon    时间: 2020-8-11 10:14
Yaqi 发表于 2020-8-11 10:08
谢谢解答,如果我想把scratch文件夹放在F盘,是不是直接环境变量设置成:
export GAUSS_SCRDIR=/mnt/f/s ...

对的
作者
Author:
Yaqi    时间: 2020-8-11 10:53
biogon 发表于 2020-8-11 10:14
对的

明白了,感谢解答。
作者
Author:
Yaqi    时间: 2020-8-16 16:28
楼主好,按照您帖子的教程,我配置了WSL,满怀希望地试算了两个体系(一个大体系、一个小体系),并和windows版的做了对比,结果发现WSL比windows版本计算速度还要慢,有点懵,怀疑是自己哪里没搞对。以下是两个测试任务的具体信息:

1. 计算丙烷的单点能(11个原子)。

WSL关键词:
%mem=100GB
%chk=22.chk
%nprocshared=36
#p b3lyp/def2tzvp

所用时间:Elapsed time:       0 days  0 hours  4 minutes 39.9 seconds.

Windows关键词:
%mem=100GB
%chk=D:\WSL\Gaussian\22-1.chk
%nprocshared=36
#p b3lyp def2tzvp

所用时间:Elapsed time:       0 days  0 hours  4 minutes  0.8 seconds.

Windows版本比WSL快了14%左右。

2. 计算一种MOF结构的单点能(182个原子)

WSL关键词:
%mem=100GB
%chk=uio-66.chk
%nprocshared=36
# b3lyp/genecp empiricaldispersion=gd3bj

所用时间:Elapsed time:       0 days  5 hours 15 minutes 23.7 seconds.

Windows关键词:
%mem=100GB
%chk=D:\WSL\Gaussian\uio-66-1.chk
%nprocshared=36
# b3lyp/genecp empiricaldispersion=gd3bj

所用时间:Elapsed time:       0 days  3 hours 18 minutes 52.8 seconds.

Windows版本比WSL快了35%左右。

不知道发生了什么?求解答。





作者
Author:
hebrewsnabla    时间: 2020-8-16 16:39
Yaqi 发表于 2020-8-16 16:28
楼主好,按照您帖子的教程,我配置了WSL,满怀希望地试算了两个体系(一个大体系、一个小体系),并和windo ...

你的windows版本高斯和linux版本高斯的版本一致吗?

另外,既然有36核的机器了,不如直接装个真linux,比折腾子系统方便。
作者
Author:
Yaqi    时间: 2020-8-16 16:50
hebrewsnabla 发表于 2020-8-16 16:39
你的windows版本高斯和linux版本高斯的版本一致吗?

另外,既然有36核的机器了,不如直接装个真linux ...

版本是一样的,Gaussian 16 A.03。
因为Windows中的一些程序也要同时使用,之前是用虚拟机的,看到这个子系统计算效率更高又没有核数限制,就试了一下。
作者
Author:
exity    时间: 2020-8-16 20:02
Yaqi 发表于 2020-8-16 16:28
楼主好,按照您帖子的教程,我配置了WSL,满怀希望地试算了两个体系(一个大体系、一个小体系),并和windo ...

我没见过64bit的win版高斯,我用的windows版高斯内存只能用到2G,核心数貌似也有限制,但我不是很清楚。
你这个情况我觉得有两种可能性。
1 任务耗时不能一概而论,根据体系不同耗时可能在WIN版和WSL有不同
2 64位的windows版高斯确实很快(但真的很少见)
作者
Author:
Alizzard    时间: 2020-12-4 09:39
冰释之川 发表于 2020-2-16 09:17
补充一下 WSL无法更改权限的解决方案 (某丝就你作,文件夹权限还要750!!):

Step1 创建wsl.conf文件 ...

也可以装个WSL的ssh,然后远程传进去文件和用其他服务器没啥区别,也没有权限问题。
就是传大文件有点蛋疼…………
作者
Author:
gog    时间: 2020-12-7 21:54
linux计算效率最高,为啥要折腾windows系统。这个功能是只编辑和输入代码的用,软件编译和调试,该是还在linux中进行吧。
作者
Author:
喵星大佬    时间: 2021-8-22 06:58
Yaqi 发表于 2020-8-16 16:28
楼主好,按照您帖子的教程,我配置了WSL,满怀希望地试算了两个体系(一个大体系、一个小体系),并和windo ...

你的WSL里高斯的所有工作目录(文件,临时文件)要用wsl的目录,比如/opt,/home/xxx之类的,不要用/mnt下的,速度差别很大




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3