文章目录
0、一些参考
1、编译器
arm安装petsc
1、安装petsc(这一次未成功)
1、下载解压,到petsc-3.8.4目录下,1
2、配置时候,设置PETSC_ARCH环境变量,选项是下载mpich,把下载好的f2cblaslapack路径写上(f2cblaslapack下载地址),因为直接下载不好使,就先下载了,那个mpich也可以提前下载好,
./configure PETSC_ARCH=linux-arm --download-mpich --download-f2cblaslapack=/home/pi/yymFolder/f2cblaslapack-3.4.2.q3.tar.gz --with-debugging=0
如果换成这样的句子就编译不通过
./configure --with-cc=mpicc --with-cxx=mpic++ --with-fc=mpif90 --with-mpiexec=mpirun --download-f2cblaslapack
2、安装slepc
下载解包
2、到目录下,添加环境变量
export SLEPC_DIR=/home/pi/yymFolder/slepc-3.8.3 // 此只在当前有效
或者sudo vim /etc/profile
在文件底部添加
export SLEPC_DIR=/home/pi/yymFolder/slepc-3.8.3
然后保存退出,:wq
再更新一下环境变量
source /etc/profile
3、./configure (之后的make句子,就是系统自动提示的了)
4、建立slepc库
make SLEPC_DIR=$PWD PETSC_DIR=/home/pi/yymFolder/petsc-3.8.4 PETSC_ARCH=linux-arm
5、make test
会出现测试成功的案例
安装petsc3-12-2(第2次未成功)
因为刚才那个不能运行例子所以再装了一个新的
使用之前自己装的openMPI做
./configure PETSC_ARCH=linux-arm --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-mpiexec=mpirun --download-f2cblaslapack --with-debugging=0
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=linux-arm all
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=linux-arm check
使用的是slepc3.12.2 ,操作和上面的一样
再次安装PETC(3、还是没成功)
1、这次使用的是mpich-3.3.1作为通信
然而整完了之后运行例子都过不去,说是分割(segament)有问题,下边的就可以看下mpich的安装吧
mpich安装的收就说有问题,不过运行例子是正确的。
首先需要gcc(树莓派自带的有),gfortran(需要自己装)
gcc -v // 树莓派系统自带的有
sudo apt-get install gfortran
gfortran -v
1、首先下载tar.gz包,解压缩,进到解压之后的相应的mpich文件夹下
2、建一个文件夹,作为mpich的安装路径
mkdir /home/pi/mpich-install
3、在刚解压的文件夹下配置mpich的安装信息
./configure --prefix=/home/pi/mpich-install
4、make 编译
5、make install 安装
6、添加环境变量
sudo vim /etc/profile //在文件最后添加如下3个
export PATH=/home/pi/mpich-install/bin:$PATH
export INCLUDE=/home/pi/mpich-install/include:$INCLUDE
export LD_LIBRARY_PATH=/home/pi/mpich-install/lib:$LD_LIBRARY_PATH
使生效
source /etc/profile
检查安装正确没有
which mpicc
会显示
/home/pi/mpich-install/bin/mpicc
然后 测试一个例子
在mpich-3.3.1目录下找到example
mpicc -o hello hello.c
mpiexec -n 4 ./hello
会看到运行了4个进程
2、配置时候多了一个
–with–mpi-dir=/home/pi/mpich-install 这是第3种呈现方式*(第一种是全部download,第二种是指定下载的.tar.gz包)*,配置好了,在./configure 配置petsc时直接给出配置好的mpi的目录,
./configure PETSC_ARCH=linux-arm --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-mpiexec=mpirun --with-mpi-dir=/home/pi/mpich-install --download-f2cblaslapack --with-debugging=0
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=linux-arm all
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=linux-arm check
最后又配置了一下,还是有点错
./configure PETSC_ARCH=linux-arm --with-mpiexec=mpirun --with-mpi-dir=/usr/local/openmpi --download-f2cblaslapack --with-debugging=0
(第4次安装petsc成功了)
解压缩之后,没有相应的arch,此时环境变量只能添加一个PETSC_DIR,在配置的时候,也不要指定相应的arch,在执行配置语句的时候只需要指定mpi和fblaslapack, ./configure --with… 这一句之后会生成相应的架构arch,
./configure --with-mpi-dir=/home/pi/mpich-install --download-fblaslapack // 因为此时与petsc对应的mpich之前已经配置安装好了,所以可以直接这么用,
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=arch-linux2-c-opt all
make PETSC_DIR=/home/pi/yymFolder/petsc-3.12.2 PETSC_ARCH=arch-linux2-c-opt check
(第5次安装petsc3.8.4)
1、只设置一个PETSC_DIR
2、./configure
3、把系统生成相应的arch添加到环境变量中去
export PETSC_DIR=/home/yym/src/petsc/petsc-3.8.4
和上边一样,首先只设置一个环境变量PETSC_DIR,就开始
./configure让系统自己识别arch,然后再自己生成相应的arch,然后再把架构
添加到环境变量中去
./configure --download-mpich==/home/yym/mpich-install --download-fblaslapack
或者
./configure --with-mpi-dir=/home/pi/mpich-install --download-fblaslapack=/home/pi/src/fblaslapack-3.4.2.tar.gz
make PETSC_DIR=/home/pi/yymFolder/petsc-3.8.4 PETSC_ARCH=arch-linux2-c-opt all
make PETSC_DIR=/home/pi/yymFolder/petsc-3.8.4 PETSC_ARCH=arch-linux2-c-opt test
make PETSC_DIR=/home/pi/yymFolder/petsc-3.8.4 PETSC_ARCH=arch-linux2-c-opt streams
然后需要设置两个环境变量,为了下一个slepc库的使用:
在/etc/profile文件中
export PETSC_ARCH=arch-linux2-c-debug // 这里使用上面自动生成的架构
//使生效
source /etc/profile
总结3种方式
1、最简单,配置文件自动识别机器硬件 现场下载需要的通信基础和线性代数数学库完成配置
./configure --with-mpi-dir=/home/pi/mpich-install --download-fblaslapack
2、下载好相关安装包,再安装
./configure --download-mpich --download-f2cblaslapack=/home/pi/yymFolder/f2cblaslapack-3.4.2.q3.tar.gz
3、配置好环境,在安装petsc的时候,指定一下需要的东西的路径
./configure --with-mpi-dir=/home/pi/mpich-install --with-packages-dir=/adirectory
不能提前指定arch,在配置之前可以指定PETSC_DIR这个环境变量,但arch不能指定,不然出错,环境变量在编译安装完成之后再添加。
如果运行例子出错提醒是找不到petsc.so.就添加一个环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/txdy827/software/petsc-3.8.4/arch-linux-cxx-debug/lib
二、基础操作
0 操作系统
1、开箱装系统
有两种方式,
1、直接下载镜像文件,2下载NOOBS引导安装程序写入SD卡
吾用第一种方式
去树莓派的官方网站https://www.raspberrypi.org ,下载镜像文件 (自己下载的是.zip文件,可以直接用balenaEtcher软件(https://www.balena.io/etcher/)直接刷进系统)
应该同时把ssh,和wpa_supplicant.conf文件设置好(为了开机就可以连的上)
系统设置
sudo raspi-config
2、使用putty.exe连接树莓派,
在E:googledown目录下。输入ip就能登陆了。如果putty中文乱码就:在打开putty.exe之后的window->translation中的Remote character set改为“UTF-8”。再输入登录名pi,输入密码就好了。
想要无显示器操作树莓派,只需要SD卡烧好系统之后,插卡开机,SSH登录即可。
3、ssh服务
3.1未开机操作
则把SD卡取下来,用在根目录下,创建一个空白的ssh文件(没有扩展名)就好了,另一种说法是在/boot分区下创建
3.2 命令行
或者命令行
service sshd restart
4、VNC
4.1开启服务
sudo raspi-config
依次选择
5 Interfacing Options Configure connections to peripherals
-> VNC
-> Yes
4.2分辨率
sudo raspi-config
选择 Advanced Options > Resolution,选择一个合适的分辨率,1280*720
5、wifi网络配置
5.1 第一次使用时候
一个链接设置网络
把SD卡在电脑上读出,在/boot分区下配置wpa_supplicant.conf文件设置SSID 和密码,这样在启动树莓派时候,树莓派系统会自动读取wpa_supplicant.conf文件连接wifi设备。
设置格式:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="yym_desktop"
psk="hahaha369"
key_mgmt=WPA-PSK
priority=4
}
network={
ssid="lianhua"
psk="Y66x1H97"
priority=2
}
ssid网络的名字
psk:密码
priority:优先级,(不能为负,越大越优先)
scan_ssid:连接隐藏WiFi时需要指定该值为1
如果wifi没有密码则:
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=NONE
}
5.2 之后再想设置WiFi时
WiFi这个文件在/etc/wpa_supplicant 目录下的 wpa_supplicant.conf,一样的修改
#保存文件后几秒钟应该就会自动连接到该wifi
#查看是否连接成功
ifconfig wlan0
5.3 一根网线连接笔记本
笔记本->控制面板\网络和 Internet\网络和共享中心->具体的网络->属性->共享->允许✔ -> VMware Network Adapter VMnet8
在命令行
arp -a
在192.168.137.1网段下的动态ip就是树莓派的
5.4、树莓派设置wifi静态ip
把/etc/network/路径下的interfaces文件设置成连接wifi。
然后修改/etc/dhcpcd.conf文件:添加:
sudo vi /etc/dhcpcd.conf
#设置局域网静态ip,
interface eth0
static ip_address=192.168.0.2/24
static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
#设置wifi固定ip
interface wlan0
static ip_address=192.168.43.2/24
static routers=192.168.43.1
static domain_name_servers=192.168.43.1 8.8.8.8
6、查询自己ip
1 有一个工具(Advanced IP Scanner)可以查询到和自己笔记本连接同一网段的设备。
2 或者路由器查询,host登录可查询
7、软件安装拆卸
8、安全关机重启
关机
sudo shutdown -h now
sudo halt
sudo poweroff
sudo init 0
重启
sudo reboot
shutdown -r now
shutdown -r 18:23:52 #定时重启在18点23分52秒关闭
9.集群 (ssh-keygen连接)
9.1.修改hostname (pi001)
sudo raspi-config
在 Network Options->hostname 修改
在reboot就好了
9.2 安装mpich
上面有
9.3 安装软件(mpi4py)
//
wget https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-2.0.0.tar.gz
sudo tar -zxvf mpi4py-2.0.0.tar.gz
cd mpi4py-2.0.0
sudo apt-get update
sudo apt-get install aptitude // 安装这个aptitude ,不知道干啥用
sudo aptitude install python-dev
sudo apt install libopenmpi-dev
python setup.py build
sudo python setup.py install
export PYTHONPATH=/home/pi/mpi4py-2.0.0
mpiexec -n 5 python /home/pi/mpi4py-2.0.0/demo/helloworld.py
9.3建立ssh连接
:~ $ ssh-keygen // 产生.ssh文件夹,并生成通信密码 按3下enter键产生公钥keys
cd .ssh
cp id_rsa.pub pi001
pi@pi001:~/.ssh $ ssh pi@192.168.0.11 // 远程登陆pi2
pi@pi002:~ $ ssh-keygen // 在pi002生成ssh的公钥
pi@pi002:~ $ cd .ssh
cp id_rsa.pub pi002
pi@pi002:~/.ssh $ scp 192.168.0.2:/home/pi/.ssh/pi001 . //把pi001的keys复制到当前pi002上
传输结果:
# pi001 100% 390 110.7KB/s 00:00
pi@pi002:~/.ssh $ cat pi001 >> authorized_keys //把pi001的keys写道授权的keys
pi@pi002:~/.ssh $ sudo chmod +rwx /home/pi/.ssh // 修改权限
pi@pi002:~/.ssh $ exit
//重登pi001把其他的都远程拷贝过来,并添加到授权的keys中
pi@pi001:~/.ssh $ scp 192.168.0.3:/home/pi/.ssh/pi003 .
pi@pi001:~/.ssh $ cat pi003 >> authorized_keys
9.4一起跑例子
-f ~/mpi_config_file -f指定文件,文件指定mpi分配哪个节点开几个进程跑例子
pi@pi001:~ $ mpiexec -n 8 -f ~/mpi_config_file python /home/pi/mpi4py-2.0.0/demo/helloworld.py
Hello, World! I am process 1 of 8 on pi001.
Hello, World! I am process 3 of 8 on pi001.
Hello, World! I am process 2 of 8 on pi001.
Hello, World! I am process 0 of 8 on pi001.
Hello, World! I am process 4 of 8 on pi002.
Hello, World! I am process 5 of 8 on pi002.
Hello, World! I am process 6 of 8 on pi002.
Hello, World! I am process 7 of 8 on pi002.
10、集群(NFS)
sudo hostnamectl set-hostname pi003
再/etc/hosts修改一下pi003
在sudo vim /etc/hosts 修改节点名字
回答问题专业点:服务器centous,版本号,操作系统一下全答完
uname -m 输出主机的硬件架构名称 x86_64位
uname -r 内核发行号
修改主机名:/etc/hostname
/etc/hosts
然后重启
10.1简介:
nfs
nfs-utils NFS服务的主程序
rpcbind 中介问路的 centos 6是(rpc) centos5是portmap
在ubantu系统中只用
sudo apt-get install nfs-kernel-server
服务器共享一个自己的目录,客户端指定一个挂载点,远程挂载,访问客户端本机挂载点,等价于,访问远程服务器的目录,
NFS使用一些端口传输数据,服务重启时端口不固定,要告诉客户端使用的是哪个端口,用的是RPC(Remote Procedure Call)服务,
NFS功能多,(权限管理,磁盘限额等等),每个功能分配一个端口,功能启动顺序不同,随机分配端口号,所以端口号不固定,而客户端又要找到服务器,所以要服务器端先打开RPC服务(中介),,然后服务器再在RPC服务中注册信息,等着客户端来向RPC询问端口号,再去服务器端访问,
服务器挂载图
NFS工作流程图
工作流程图原理:
下载nfs软件包
sudo apt-get install nfs-kernel-server
修改配置文件,指定哪个文件是共享文件
sudo vim /etc/exports
#文末添加
/home/pi/share * (rw,sync,no_root_squash,no_subtree_check)
#保存退出
#1 共享的目录
#2 *:允许所有的网段访问,也可以使用具体的IP
#3 rw 可读写,(ro只读)
#4 sync 资料同步写入内存和硬盘
#5 no_root_squash:root用户操作时,转成匿名
#6 no_subtree_check:不检查子目录的权限
ps ax | grep nfs
#结果如下:
pi@pi001:~ $ ps ax | grep nfs
48 ? I< 0:00 [nfsiod]
1140 ? S 0:00 [nfsd]
1141 ? S 0:00 [nfsd]
1142 ? S 0:00 [nfsd]
1143 ? S 0:00 [nfsd]
1144 ? S 0:00 [nfsd]
1145 ? S 0:00 [nfsd]
1146 ? S 0:00 [nfsd]
1147 ? S 0:00 [nfsd]
1229 pts/0 S+ 0:00 grep --color=auto nfs
#就是好了,
3、重启服务,将会自动映射端口:
sudo /etc/init.d/rpcbind restart
效果:[ ok ] Restarting rpcbind (via systemctl): rpcbind.service.
4、重启nfs服务:
sudo /etc/init.d/nfs-kernel-server restart
出现了错误
[....] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.serviceJob for nfs-server.service canceled.
有人说:还得下载
sudo apt-get install nfs-kernel-server package
sudo apt-get install nfs-client package
sudo apt-get install nfs-common
然而其实是因为
配置文件 的*和小括号之间不能有空格 !!!
改了之后
sudo /etc/init.d/nfs-kernel-server restart
效果:[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
10.2 客户端
在/mnt/下建立share文件夹,并修改权限
mkdir share
因为客户端的/mnt目录默认权限是root所以 修改组和属于
sudo chgrp -R pi share/
sudo chown -R pi share/
# sudo chmod pi:pi share/ 这一句不知道为啥不认
挂载
// 这一句不行,需要相同的文件夹,还要挂载时候给读写权限
//sudo mount -t nfs 192.168.0.2:/home/pi/share /mnt/share
sudo mount -t nfs 192.168.0.253:/home/pi/share /home/pi/share -o rw // rw顺序还不能写反了(wr不行)
然后就可以共享服务器的那个文件夹了
客户端挂载之后,需要在服务器端操作一下(ls就行),客服端才刷新
#查看本地挂载信息 最后一行
pi@pi002:/mnt/share $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 15G 4.0G 9.8G 29% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.5M 1.9G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 52M 201M 21% /boot
tmpfs 391M 0 391M 0% /run/user/1000
192.168.0.2:/home/pi/share 15G 4.0G 9.8G 29% /home/pi/share
10.3跑程序
1、设置分布式进程配置文件,在/home/pi/目录下:
vim mpi_config_file,
在这个文件中:指定每个节点开启几个进程
node001:4
node002:4
node003:4
node004:4
node005:4
把mpi的例子程序cpi,拷贝到/home/pi/share/目录下
执行:mpiexec -n 20 -f /home/pi/mpi_config_file ./cpi
10.4 取消挂载
pi@pi002:/mnt/share $ sudo umount /home/pi/share/
#umount.nfs4: /mnt/share: device is busy // 因为自己还在此目录下,所以不行
pi@pi002:/mnt/share $ cd ..
pi@pi002:/mnt $ ls
share
pi@pi002:/mnt $ sudo umount /mnt/share/
# 好了
服务器端 关闭 nfs 和rpc
sudo /etc/init.d/nfs-kernel-server stop
sudo /etc/init.d/rpcbind stop
登录树莓派之后,再ssh node001,一次,为了调用~/.ssh里边关联的东西,把树莓派各节点吊起来,
在源程序,目录下能跑,在共享文件目录下不能跑。待解决
//可行
mpiexec -n 24 -f /home/pi/mpi_config_file ./cpi
//可行,共享目录下
mpiexec -n 8 -f /home/pi/mpi_config_file ./cpi
执行自己的程序:
需要把PETSC_DIR/PETSC_ARCH/lib这个库拷贝到共享文件夹下
并添加环境变量$LD_LIBRARY_PATH
1、把自己项目文件拷贝到共享文件夹下,
2、库添加到环境变量,
3、挂载时候加可读可写权限 -o rw
4、节点1可免密码登录节点2,节点2可免密码登录自己,(此时已经能跑程序了,但是节点2不能免密码登录节点1,节点1却也不能免密码登录自己,就很奇怪)
执行
10、5增加新节点
1、拷贝镜像
2、修改主机名
sudo vim /etc/hostname
#修改文件内容为:
pi005
3、修改/etc/hosts文件
sudo vim /etc/hosts
前两行:127.0.0.1或者127.0.1.1都可以
在(后面步骤)固定ip之前需要重启一下!!
4.0 固定IP;
4.1在/etc/network/interfaces文件中
把address 192.168.0.4,修改成address 192.168.0.6
sudo vim /etc/network/interfaces
4.2在/etc/resolv.conf文件中
添加
nameserver 192.168.0.1
sudo vim /etc/resolv.conf
nameserver 192.168.0.1 (这里不能复制粘贴,手写)
4.3重启网络
service networking restart
或者sudo /etc/init.d/networking restart
就可以看到设置好了
再登录时使用新ip登录192.168.0.7
5.1生成ssh密钥
ssh-keygen
5.2把生成的密钥发送给节点node001
scp id_rsa.pub pi@node001:~/.ssh/id_rsa.pub.node00n 改n
5.3、在node001节点上 cat id_rsa.pub.node00n >> authorized_keys 改n
5.4再把node001的authorized_keys传到新节点上
需要在节点node001上通报新节点!!
sudo vim /etc/hosts
添加新节点,
然后:
scp authorized_keys pi@node00n:~/.ssh/authorized_keys **改n**
11、编写远程挂在的脚本
主节点:
一个start_mount_other_nodes.sh
#!/bin/bash
ssh node002 "/home/pi/init/connect.sh"
ssh node003 "/home/pi/init/connect.sh"
从节点:
~/init/目录下:
connect.sh
#!/bin/bash
sudo mount -t nfs 192.168.0.253:/home/pi/share /home/pi/share -o rw
为了安全关机,可以远程命令使从节点关机:
从节点:
~/init/目录下
shutdown.sh
#!/bin/bash
sudo shutdown -h now
主节点:
shutdown_other_nodes.sh
#!/bin/bash
ssh node002 "/home/pi/init/shutdown.sh"
ssh node003 "/home/pi/init/shutdown.sh"
12、换使用openmpi来跑
mpich和openmpi都是实现mpi消息队列的一种软件。其中会有实现相同的功能,但具体实现细节(设计,调用方式)肯定会有不同的地方。
如下是一些尝试的结果:
1、配置文件只能放在程序的当前目录下。
2、mpiexec这个程序,需要写绝对路径。
3、mpich中的-f 参数,在openmpi中对应的参数是:-hostfile
4、配置文件的写法不同。
进来node001号节点之后:
1、启动nfs服务脚本程序:
cd ~
sh start_nfs.sh
2、使各从节点挂载nfs文件系统:
中间需要大概半分钟的等待时间。等待cpu从操作系统重新交到shell手中时,再执行下一步。
(中间没出现错误信息就是正确执行了,如果其中有个别树莓派节点port22无效,连接不上,就重启一下那个树莓派,然后重新执行这一条命令。主节点重启从节点的脚本:修改这个脚本程序中的节点名字 再执行重启:./reboot_other_node.sh。)
cd ~
./start_mount_other_nodes.sh
3、到共享文件文件夹下,并找到要执行的程序:
cd /home/pi/share/
cd mydist_v4.0.0/mydist
或者
cd /home/pi/share/mydist_v4.0.0/mydist
4.0、指定各节点的开启内核线程的配置文件:
openmpi和mpich中的写法有所不同,
在pi@pi001:~/share/mydist_v4.0.0/mydist$路径下:
配置文件:30_2_mpi_config_file
node001 slots=2
node002 slots=2
node003 slots=2
4.1、编译程序(编译过了,可以跳过)
cd ~/share/mydist_v4.0.0/mydist/
mpicc cfd.c -o mydist -lm
# 执行程序:
mpirun -n 10 ./mydist
4.2、并行执行程序
-hostfile 指定使用哪个配置文件,
配置文件:指定内核线程数,通过修改配置文件设置各树莓派节点参与工作的内核线程个数。
-np 指定用户进程数
通过修改配置文件,进行实验。
/home/pi/openmpi/bin/mpirun -hostfile 30_2_mpi_config_file -np 60 ./mydist
pi@pi001:~/share/mydist_v4.0.0/mydist$
/home/pi/openmpi/bin/mpirun -hostfile 48_2_mpi_config_file -np 96 ./mydist
#-hostfile 的作用和mpich中的-f一样,指定各节点的配置信息
#mpirun换成 /home/pi/openmpi/bin/mpirun
#或者/home/pi/openmpi/bin/mpiexec
#-hostfile后面的配置文件需要在当前目录下
4.3、切换另外两种算法进行计算:
修改para.dat文件中的参数:
参数: itime
等于 1 对应sgs算法
等于 2 对应lu_sgs算法
等于 3 的时候对应gmres算法
cd ~/share/mydist_v4.0.0/mydist/
vi para.dat
4.4、切换迭代次数:
在程序的当前目录:打开cfd.c文件
cd /home/pi/share/mydist_v4.0.0/mydist
vi cfd.c
注释掉58,59两行
5、主节点关机其他各从节点:
cd ~
./shutdown_other_nodes.sh