张小白带你体验昇思1.5的MindScience

网友投稿 905 2022-05-30

唉,其实说起昇思,张小白也是一头雾水。叫了1年多的MindSpore“头孢”, 被以“上不得厅堂”为由,强行改为“昇思”。其实Mind是头脑,Spore是孢子。头孢这个词真的信达雅的翻译,而且,专治各种AI的不服,跟头孢作为药物具备广谱杀菌的超高实用价值,其实也是对应的。

不过领导的话还是不能不听的,你说叫啥就叫啥吧。张小白宁可偷偷地叫它“曼sir跑",想必大姐大应该不会有什么想法。

既然自称不喜欢4,跳过了1.4版本直接推出1.5版本,但是请告诉我为啥它自己要叫”昇4“?有深思,还有熟虑吗?

以上是对1.5版本名字的吐槽,张小白对昇思已经熟虑过了,就到此为止了。

------------------------------华丽的分割线----------------------------------

张小白曾经在微信群里面问大家,1.5版本有啥好体验的?AI大侠姐夫甲的四弟姐夫丁建议说:要不试试MindScience?

沿着丁大大指引的方向走路一定是没错的。

既然张小白曾经用了WSL装了GPU版本的MindSpore( https://bbs.huaweicloud.com/blogs/293332 ),不如就这样一路走下去吧。

先看一下现在的环境:

Ubuntu 18.04

Python 3.7.5

CUDA 11.4

从官方文档上来看,这次MindSpore 1.5的升级不仅可以支持Python 3.7.5,还可以支持Python 3.9.0了。

那就直接装起来吧:

pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.5.0-rc1/MindSpore/gpu/x86_64/cuda-11.1/mindspore_gpu-1.5.0rc1-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple

在做别的事情之前,先根据提示升级下pip:

pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

根据官方文档,试验第一种验证方式:

python -c "import mindspore;mindspore.run_check()"

再试验第二种验证方式:

看来没啥问题。GPU表现良好,不愧是张小白的3080移动版显卡。(具体显卡折腾过程参见:https://bbs.huaweicloud.com/forum/thread-146553-1-1.html )

这次MindSpore 1.5特意提到,它不想仅仅做一个AI的框架了,它还想具备科学计算的能力。(这充分说明,能做AI的它已经很AI了。。。)所以,物理、化学、电子信息、生物、材料。。。。这些学科中如果需要科学计算的,没准都能用上MindSpore:

所以,这次专门推出了一个科学计算行业套件,叫做MindScience,( https://mindspore.cn/mindscience?version=/master/ )其实仔细品品,这个Science中文翻译成“昇思”可能才是对的。(张小白你打住好不好?不好意思。。。嘴欠。。。)

当然,MindScience只是个全集,里面还需要根据行业来YoLo一下,目前典型的分两类:MindElec——电磁仿真,MindSPONGE——分子模拟。

其实分子模拟在MindSpore 1.2版本好像就出现过吧?https://zhuanlan.zhihu.com/p/375042410

随着华为跟高校的深度合作,想必这样的分类也会越来越多。

张小白翻了翻官网具体的案例,分子模拟的案例好像都是基于GPU,电磁仿真的案例好像都是基于Ascend。既然张小白暂时用的是wsl的GPU环境,那么就只能先试试MindScience之MindSPONGE了。先阅读后干活,这样可以减少无谓的消耗。。。

https://mindspore.cn/mindscience/docs/zh-CN/master/mindsponge/intro_and_install.html

在本文的一开始,mindspore 1.5.0 GPU版本已经装好了。所以下面装MindSPONGE。

根据 https://www.mindspore.cn/news/newschildren?id=734 文档,

应该下载0.1版本:

打开:https://mindspore.cn/versions 搜索 MindSPONGE:

复制上图的链接进行安装:

wget https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.5.0-rc1/MindScience/any/mindscience_mindsponge_gpu-0.1.0rc1-py3-none-any.whl

pip install ./mindscience_mindsponge_gpu-0.1.0rc1-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

验证mindscience安装:

python -c 'import mindsponge'

暂时没报错。

然后开始下载AmberTools。事实证明,这次试验最大的工作量就在这里。

打开:http://ambermd.org/GetAmber.php

打开 http://ambermd.org/InstUbuntu.php

点开 Installation->Ubuntu:

这里告诉了你具体的编译方法。

那么,我们开干吧。

先下载 AmberTools21的源码:

解压:

看看目录:

先试着configure GPU版本:

./configure --with-python /root/anaconda3/bin/python -cuda gnu

按Y继续:

好像报错了,说csh没有。

那就装csh吧:

apt-get install csh

重新configure

又报错,说Python路径不对,修改为which python的结果:

CUDA_HOME没设置,那就设置一下:

export CUDA_HOME=/usr/local/cuda

找不到 fortran的so文件。fortran张小白隐约记得是科学计算的语言。。听说比1972年诞生的C语言还要老。查了一下,果然如此,它是1954年提出,1956年开始正式使用。

不过,看来这条路行不通啊。

张小白又开始了度你千遍也不厌倦的过程:

参考 https://www.cnblogs.com/wq242424/p/14283900.html

恩,应该是前面编译的姿势不对。

继续开干:

./run_make

找不到cmake。。。那就装cmake:

重来:

。。。

。。。

...

找不到FLEX,参考 https://blog.csdn.net/pas_zoujp/article/details/117351781 ,那就装FLEX,3080你想要啥张小白都给你。。。

再来:

。。

。。。

很好!按照提示继续做下去:

make install

source /root/amber20/amber.sh

...

...

。。。

。。。

恩,成功安装了Amber.

那就开始执行这个tleap工具吧:

tleap:

加载tleap自带的ff14SB力场

source leaprc.protein.ff14SB

搭建丙氨酸三肽模型

ala = sequence {ALA ALA ALA}

利用tleap加载其自带的tip3p力场

source leaprc.water.tip3p

利用tleap中的slovatebox溶解丙氨酸三肽链, 完成体系构建。10.0代表加入的水距离我们溶解的分子及体系边界至少在10.0埃以上

solvatebox ala TIP3PBOX 10.0

张小白带你体验昇思1.5的MindScience

将建好的体系保存成parm7及rst7文件

saveamberparm ala WATER_ALA.parm7 WATER_ALA_350_cool_290.rst7

手工编辑 in文件:

加载数据:

myload.py

python myload.py

构建模拟流程

mycreate.py

好像不知道怎么玩下去了。

那就到gitee仓库,下载mindscience的码云仓库:

git clone https://gitee.com/mindspore/mindscience.git

切换到 /mindscience/MindSPONGE/examples/polypeptide/scripts 目录

执行 ./run.sh

其实run.sh的命令内容如下:

只是它都是执行的是data下的内容。

那我们改写下,用刚才由tleap自己生成的参数:

python ../src/main.py --i /root/NVT_290_10ns.in --amber_parm /root/WATER_ALA.parm7 --c /root/WATER_ALA_350_cool_290.rst7

好像输出的结果比 run.sh少几行。

结果贴出来看看:

root@LAPTOP-52ANL5OD:~/mindscience/MindSPONGE/examples/polypeptide/scripts# python ../src/main.py --i /root/NVT_290_10ns.in --amber_parm /root/WATER_ALA.parm7 --c /root/WATER_ALA_350_cool_290.rst7 Mode set to NVT check atom_numbers system size is 36.004769 33.398901 30.222429 skin set to 2.00 Angstram excluded atom numbers 3169 Start reading residue list: amber_parm7 in residue_information End reading residue list bond type numbers 10 angle type numbers 14 dihedral type numbers 20 START INITIALIZING NEIGHBOR LIST: excluded atom numbers 3169 copy lj type to new crd factor is: [2.1383579e+09] long range correction factor is: -746427.7146318428 End initializing long range LJ correction START INITIALIZING LANGEVIN_LIU DYNAMICS: langevin_liu_gamma is 1.0 target temperature is 290.0 K friction coefficient is 1.0 ps^-1 random seed is 1 max velocity is 0.0 END INITIALIZING LANGEVIN_LIU DYNAMICS fftx: 48 ffty: 36 fftz: 32 pme cutoff 10.0 pme tolerance 1e-05 restrain_weight is 100 self.simple_constrain_is_initialized 0 angle type numbers 14 START INITIALIZING Coordinate Molecular Map: END INITIALIZING Coordinate Molecular Map self.mol_map_is_initialized 1 [WARNING] CORE(158,7ff895763740,python):2021-09-30-23:03:04.870.330 [mindspore/core/ir/anf_extends.cc:65] fullname_with_scope] Input 0 of cnode is not a value node, its type is CNode. _steps_ _TEMP_ _TOT_POT_ENE_ _BOND_ENE_ _ANGLE_ENE_ _DIHEDRAL_ENE_ _14LJ_ENE_ _14CF_ENE_ _LJ_ENE_ _CF_PME_ENE_ 1 0.788 -5836.529 48.745 0.891 14.904 9.041 194.479 763.169 -6867.758 Main time(s): 0.5331320762634277 Main time(s) without compiler: 0.0012359619140625 Save .out file successfully! Save .dat file successfully! [WARNING] PIPELINE(158,7ff895763740,python):2021-09-30-23:03:05.181.564 [mindspore/ccsrc/pipeline/jit/init.cc:310] operator()] Start releasing dataset handles... [WARNING] PIPELINE(158,7ff895763740,python):2021-09-30-23:03:05.256.617 [mindspore/ccsrc/pipeline/jit/init.cc:313] operator()] End release dataset handles.

其中记录了模拟过程中输出的各类能量, 分别是迭代次数(steps),温度(TEMP),总能量(TOT_POT_E),键长(BOND_ENE),键角(ANGLE_ENE),二面角相互作用(DIHEDRAL_ENE),非键相互作用,其包含静电力及Leonard-Jones相互作用。(这段文字全部是照抄的,因为真的看不懂)

反正这就是张小白使用MindSpore 1.5的MindScience和Amber模拟丙氨酸三肽水溶液体系的过程。至于这个溶液是干嘛的,张小白真的一点兴趣都没有,估计不能喝。还是蜜雪冰城适合张小白。

(全文完,谢谢阅读)

GPU加速云服务器 MindSpore Python Ubuntu 昇腾

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:软件测试介绍
下一篇:YAML学习笔记
相关文章