今天发现我能用的服务器系统都是ubuntu的,试着在ubuntu上安装virtualbox安装也成功了,然后问题就是应该如何将vmware的虚拟机导入到virtualbox里面,这里就是文件-导出ovf文件,导出的时候把ovf的后缀改成ova,这样就行了。在virtualbox那里直接导入就行了,在我的电脑上试过了。后来 又需要对虚拟机进行扩容,虚拟机的磁盘空间不足,看了这个帖子跟着人家的步骤走就扩容成功了。
重新试着换个pytorch的版本,以及cmake的版本,重新安装horovod,就安装成功了。
首先配置python3.7的环境
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.07-Linux-x86_64.sh
bash Anaconda3-2019.07-Linux-x86_64.sh
创建环境
conda create --name pytorch3.7 python=3.7
conda activate pytorch3.7
安装cmake
bash cmake-3.18.2-Linux-x86_64.sh
在/etc/profile里面配置环境变量
cmake --version即可查看版本
安装pytorch
conda install gxx_linux-64
conda install pytorch-cpu==1.3.1
conda install torchvision-cpu==0.3.0 cpuonly -c pytorch
HOROVOD_WITH_PYTORCH=1 pip install --no-cache-dir horovod
因为import一些模块报错
pip uninstall torchvision
pip install torchvision==0.4.0
HOROVOD_WITH_PYTORCH=1 pip install --no-cache-dir horovod
安装完torchvision==0.4.0,pip show torch发现版本自动变成了1.2.0
安装太慢,换源
linux:
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
重新安装horovod
import horovod.torch的时候报错
/libstdc++.so.6: version `CXXABI_1.3.11’ not found (required by /home/ipoc345/newconda3.7/a
因为版本太低了
find ~/ -name libstdc++.so*
替换成
(pytorch3.7) ipoc345@ubuntu:~/newconda3.7/anaconda3/envs/pytorch3.7/lib$ ln -sf libstdc++.so.6.0.26 libstdc++.so.6
跑起来的命令
horovodrun -np 2 -H server1:1,server3:1 python /home/ipoc345/exashare/pytorch_mnist.py
只在虚拟机server1和server3上部署了pytorch
virtualbox上可以修改磁盘大小,40960是扩充到40G
VBoxManage modifyhd e:\vbox\Ubuntu12.04\Ubuntu1204-201310-disk1.vdi --resize 40960
扩充完之后,再按之前的来分区
virtualbox将网卡改成网桥模式就可以和主机在同一个网络了
不好的地方
每次运行代码前都需要source /etc/profile然后给lib增加软连接。