并行计算π值

760 阅读5分钟

并行计算定义

并行计算或称平计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。

并行计算特征

1、将工作分离成离散部分,有助于同时解决;

2、随时并及时地执行多个程序指令;

3、多计算资源下的解决问题的耗时要少于单个计算资源下的耗时。

网络设置

并行计算机是靠网络将各个处理机或者处理器连接起来的,一般有以下几种方式,处理单元间有着固定连接的一类网络,在程序执行期间,这种点到点的链接保持不变。

命令

配置IP地址

1.点击菜单栏右侧的wifi图标,选择Edit Connections按钮。

2.点击Edit按钮编辑现有的有线连接。切换到IPV4 Settings选项卡,Method选择手动设置IP模式(Manual),点击add按钮添加IP。IP地址自行设定(如:192.168.0.1)保证4个节点在同一网段(网关相同)。子掩码255.255.255.0,网关根据IP设置(如:192.168.0.1),保存即设定成功。(可能需要手动点击wifi选择Ethernet Connection1)

安装ssh服务

sudo dpkg -i libck*
sudo dpkg -i openssh-client*
sudo dpkg -i openssh-sftp*
sudo dpkg -i openssh-server*

启动ssh服务

sudo service ssh start

安装MPICH2

cd//切换到家目录
cp softWare/mpich2-1.0.6.tar.gz ./   //回车复制软件包到家目录
tar zxf mpich2-1.0.6.tar.gz  //回车解压目录
mv mpich2-1.0.6 mpich2 //回车对文件夹进行重命名
cd mpich2 //回车切换到软件根目录
./configure //运行配置文件,运行后会输出很多的信息,请注意过程中是否有Error信息
make //编译软件,运行后会输出很多的信息,请注意过程中是否有Error信息
sudo make install //运行后会输出很多信息,请注意过程中是否有Error信息
//到此MPICH2 安装完成

检测MPICH2是否安装成功

which mpd
//输出:/usr/local/bin/mpd
which mpiexec
//输出:/usr/local/bin/mpiexec
which mpdboot
//输出:/usr/local/bin/mpdboot

配置系统文件

1.切换到集群机的第一个节点,打开终端。输入命令cd回车切换到家目录。

2.输入nano .mpd.conf//建立MPICH2的配置文件。并在窗口中输入MPD_SECRETWORD=123456,然后

ctrl+shift+o保存更改,回车,最后ctrl+x退出nano编辑器(注意.mpd.conf是隐藏文件,需要ls -al才能看

见,文件结尾不要换行)

3.输入chmod 600 .mpd.conf//修改文件权限

4.nano mpd.hosts//建立集群节点的列表文件,并在窗中输入参与节点的主机名,文件结尾不要换行。然

后保存关闭窗口。

5.输入命令 sudonano /etc/hosts 修改系统host文件 。将第二行的127.0.0.1修改为本机的IP地址。忘记IP

地址可以使用 ifconfig 命令查看。最后再把其他运算节点的IP 和 主机名加入到host 文件中。保存并退出

nano 编辑器。

6.输入命令 ping 主机名 检查是否能够与其他主机联通,如果不能联通 使用 ping IP地址 的方式检查。如果

不能ping 通主机名,检查是否正确修改 /etc/hosts 文件 ,如果不能ping 通 IP 检查节点是否正确连接有线网

络,或者IP地址是否正确。

7.输入命令 ssh-keygen 生成SSH密钥,过程中一路回车,不需要进行输入操作。

8.输入命令 cd .ssh 切换到ssh目录。通过ls 命令查看目录下面的文件,再输入命令 cp id_rsa.pub

authorized_keys 复制公钥为认证密钥 ,通过 ls 命令显示目录下的文件。

9.输入命令 cd切换到家目录。 再输入命令 scp -r .sshgjy@011225-2:~/ 将ssh目录复制到其他节点。

(scp 为远程复制命令,该命令需要执行多次将ssh目录复制到每一个节点 用户名@**主机名),第一次复

制需要输入yes,然后输入密码。

10.输入命令 scp /etc/hosts .mpd.conf mpd.hosts gjy@011225-2:~/ 将3个文件复制到其他节点。(该

命令需要执行多次,此时已经不需要输入密码,如果还需要密码,则ssh免密码登陆没有生效,请检查步骤

6、7、8操作是否正确)。

11.输入命令 ssh 用户名@主机名(如 ssh gjy@011225-2) 登陆到其他节点。

12.输入命令 sudomv hosts /etc/替换本机etc目录下的hosts 文件。

13.输入命令 exit 退出远程登陆。重复 9 ~ 12 步,直到每个节点都有这3个文件。

做π的并行计算

mpdboot -n 4 -f mpd.hosts //启动并行运算节点。(4为所有运算节点数 ,不能超过mpd.host文件中定义的主机数)
mpdtrace -l //查看所有启动的节点
mpiexec -n 4 ./mpich2/examples/cpi //并行计算PI值(4为运算的进程数,可以任意定义)

运行其他程序

1.编译文件 queen.c

mpicc -o queen queen.c//编译完成将生成一个叫.queen的文件

2.拷贝可执行文件到其他节点

scp queen gjy@011224-2:~/
scp queen gjy@011224-2:~/

3.并行计算

mpiexec -n 4 ./queen