Ubuntu下cuda+mpi配置

来源:互联网 发布:球球大作战小糖果软件 编辑:程序博客网 时间:2024/05/29 03:16
一、系统配置与软件环境
1.1 软件与系统安装文件准备
Ubuntu 14.04.1 desktop
cuda_7.5.18_linux.run(Ubuntu和cuda的版本不能变,否则会出现驱动适配问题)
mpich-3.0.4(尽量不要选择过高版本,hydra去除了gdb调试功能)

1.2 安装流程
1.2.1 cuda安装部分
a) 将cuda_7.5.18_linux.run文件放在某个目录下,如/home/driver
b) 按Ctrl+Alt+F1进入命令行模式,登陆后,进入.run文件所在目录下,依次执行命令:
sudo service lightdm start
sudo init 3
sudo sh ./cuda_7.5.18_linux.run
c) 开始安装后,按q进入安装选项,agreement中选择accept,选项中y或者n就选y,安装目录全部默认就可以,接着会提示重启电脑。重启后,按照上述过程重新执行,之后会显示Driver,ToolKit和Sample都安装成功
d) 配置环境变量:
sudo gedit /etc/profile
PATH=$PATH:/usr/local/cuda-7.5/bin
LD_LIBRARY_PATH=$LA_LIBRARY_PATH:/usr/local/cuda/lib64(64位系统,32位系统为/usr/local/cuda/lib)
source /etc/profile
e) 此时对应cuda driver的version可能比较低,如果需要较高版本的显卡驱动,需要到nvidia官网下载相应.run文件,按照上述过程执行(关闭X server)
1.2.2 mpi安装部分
a) mpi解压完成后,执行:
./configure –enable-fc –enable-cxx –enable-romio –enable-threads=multiple –with-pm=mpd(需要安装好g++和gfortran)
sudo make
sudo make install
如果which mpiexec打印出mpiexec所在位置,说明安装成功
默认路径下,不需要重新配置mpi环境变量
1.2.3 ssh服务器无密码登陆设置
a) 先确认本地安装openssh-server openssh-client
sudo apt-get install openssh-server
sudo apt-get install openssh-client
b) 设置主机名登录,假设两台主机名称分别为node1和node2,对应局域网的ip为192.168.0.1和192.168.0.2
sudo gedit /etc/hosts
分别两台机器中127.0.1.1 node1和127.0.1.1 node2前加上一个#(注释掉该句)
然后加入
192.168.0.1 node1
192.168.0.2 node2
c) 设置无密码登录,在node1的home目录下,执行
ssh-keygen -t rsa
在.ssh目录下产生id_dsa id_dsa.pub两个文件,执行
cat id_dsa.pub >> authorized_keys
将id_dsa id_dsa.pub authorized_keys一起拷贝到node2的.ssh文件目录里
d) 开启ssh server,执行
sudo /etc/init.d/ssh start
ps –e | grep ssh
如果看到有ssh-d,则说明启动完成
f) 在node1和node2上各执行ssh node1和ssh node2(共4次命令),若能够正常登录到相应桌面,说明ssh无密码登录配置成功
1.2.4 添加mpd配置文件
a) 在home目录下新建一个.mpd.conf文件,内容为
secretword=,只需要在保证各个机器上的内容相同即可,可以是123456。然后修改文件权限:
chmod 600 .mpd.conf
b) 任意目录下创建mpd.hosts文件,内容为在启动mpd进程管理器时,需要启动的机器名称,本例子下就为:
node1
node2
或者
192.168.0.1
192.168.0.2
或者加上数字,告诉相应需要启动的进程数:
node1:2
node2:2
每台机器启用2个进程
1.2.5 mpi+cuda程序测试
a) 进入Nvidia给出的Cuda Sample中的simpleMPI目录下,make
b) 执行mpdboot –n 2 –f /mpd.hosts
如果显示no_port错误,说明局域网网络连接有问题
如果显示failed to handshake,说明.mpd.conf文件权限或者内容有问题或者/etc/hosts文件内容有问题
c) 执行mpdtrace,若显示两台机器名称,说明执行正确
d) 执行mpiexec –n 2 ./simpleMPI
0 0
原创粉丝点击