欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

并行计算π值

程序员文章站 2022-03-07 11:35:24
...

并行计算定义

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

并行计算特征

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-****** 生成SSH**,过程中一路回车,不需要进行输入操作。

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

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

9.输入命令 cd切换到家目录。 再输入命令 scp -r [email protected]:~/ 将ssh目录复制到其他节点。

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

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

10.输入命令 scp /etc/hosts .mpd.conf mpd.hosts [email protected]:~/ 将3个文件复制到其他节点。(该

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

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

11.输入命令 ssh 用户名@主机名(如 ssh [email protected]) 登陆到其他节点。

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 [email protected]:~/
scp queen [email protected]:~/
复制代码

3.并行计算

mpiexec -n 4 ./queen
复制代码

转载于:https://juejin.im/post/5ad8b2e2f265da0b9c1029c0