CentOSがインストールされているものとする.
画面左上の「アプリケーション」から「端末」を開く.(お気に入りに「端末」がなければシステムツールにある)
#ref(): File not found: "n1.PNG" at page "MPICHによる並列処理での最適化手法"
まず,sudoが正常に機能するか確認するために
sudo echo test
と入力.tpuのパスワードが要求されるので,パスワード「tpu」を入力する.「test」と表示されていればOK.
以下のエラーが出たとき
sudoercファイル内にありません。この事象は記録・報告されます。と出た時は,
su
usermod -G wheel tpu
su tpu
と入力すると,sudoが機能するようになる.
これから使用するvimというエディターについて.「通常モード」と「挿入モード」があり,書き加える場合は基本的に「挿入モード」でしかできないので,以下の表のコマンドを使いこなす必要がある.
#ref(): File not found: "n2.PNG" at page "MPICHによる並列処理での最適化手法"
「挿入モード(文字入力モード)」から「通常モード」にするには「Esc」キーを押す.
すぐ確認できるように写真に撮るなど残しておくことをオススメする.
無効化する理由は、プログラムが動かなくなったり,インストールできなくなるからである.
sudo vim /etc/selinux/config
と入力すると,
#ref(): File not found: "n3.PNG" at page "MPICHによる並列処理での最適化手法"
図のようになるので,vimのコマンドを使い「挿入モード(文字入力モード)」にする.(aかiを押せば「挿入モード」になる)
SELINUX=enforcingをコメントアウト(先頭に#をつけるとコメントアウト)し,最後の行に
SELINUX=disabled
と入力し,「通常モード」にし(Escキー),ファイルを保存して終了する.(ファイルの保存は「:wq」←通常モードのときにそのまま打ってよい)
手動でもSELinuxを停止する.
sudo setenforce 0
と入力.次にSELinuxの動作状態を確認する.
getenforce
と入力.「Permissive」か「Disabled」と表示されていればOK.ダメな場合は無効化手順をもう一度実行してみる.
sudo systemctl disable firewalld
sudo systemctl stop firewalld
と入力. ファイアウォールが停止したか確認する.
systemctl status firewalld
と入力.「Active:inactive(dead)」と表示されていればOK.
sudo yum -y install java-1.8.0-openjdk-devel mpich mpich-devel gcc-c++ openssl-devel
と入力. インストールが終わり,完了しました!と表示されていればOK.
.bashrcのファイルを変更し,bash環境の設定を変更する.
vim .bashrc
と入力.ファイルの最後に
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0.-openjdk
を追加しファイルを保存して終了する.←vimのコマンド
.bashrcのファイルの変更を反映するために
source .bashrc
と入力.
nmcli con mod enp0s3 ipv4.method manual ipv4.addresses 192.168.0.XXX/24
と入力(XXXの部分は学籍番号の下3桁にする). 川口の場合は192.168.0.29となる.
注意
このとき、192.168.0.1は使わない.
nmcli con mod enp0s3 ipv4.gateway 192.168.0.1
nmcli con down enp0s3
nmcli con up enp0s3
と入力.設定したIPアドレスで動作しているか確認する.
nmcli device show enp0s3
と入力.確認したら「Ctrl+C」で抜ける.
#ref(): File not found: "n4.PNG" at page "MPICHによる並列処理での最適化手法"
マスターPCに通信できるか確認する.
ping 192.168.0.200
と入力.
64 bytes from 192.168.0.200: icmp_seq=1 ttl=64 time=0.111 ms
と表示されていれば通信できている.
表示されていなければ,
・LANケーブルが接続されているか確認してみる
・再起動してみる
XXXはIPアドレス設定した番号を入力する.川口の場合,slave29となる.
sudo hosstname slaveXXX
echo "slaveXXX" | sudo tee /etc/hostname > /dev/null
hostname
と順に入力.「slaveXXX」と表示されていればOK.
次に,IP番号とホスト名を対応させるために,/etc/hostsファイルを編集する.
sudo vim /etc/hosts
と入力.
既にある行はそのままで、その後に以下の行を追加する.
192.168.0.200 master0 192.168.0.XXX slaveXXX 192.168.0.YYY slaveYYY …
並列処理で使うPC分入力する.
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub -o "StrictHostKeyChecking no" master0
sshpass -p "tpu" ssh-copy-id -i ~/.ssh/id_rsa.pub -o "StrictHostKeyChecking no" master0
sshpass -p "tpu" ssh-copy-id -i ~/.ssh/id_rsa.pub -o "StrictHostKeyChecking no" slave1
↑slaveの台数分実行
動かないとき
ssh-add ~/.ssh/id_rsa
マスターPCとスレーブPCでsshできることを確認する.
ssh master0(slaveXXX)
と入力.sshを抜けるときは
exit
と入力.
共有ディレクトリの作成
mkdir /home/tpu/share
と入力.
共有ディレクトリの設定
sudo vim /etc/export
と入力.以下を最後の行に追加する.
/home/tpu/share 192.168.0.0/24(rw,no_root_squash)
ドメイン名の設定
sudo vim /etc/idmapd.conf
と入力.
Domainのコメントアウトを外す.
#ref(): File not found: "n5.PNG" at page "MPICHによる並列処理での最適化手法"
マウントとは,slavePCでmasterPCの特定のフォルダを操作・利用可能にすること.
slaveからmasterPCに通信できるか確認する
ping master0
slavePCがmasterPCをマウントできるようにmasterPCで
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl start nfs-lock
sudo start nfs-idmap
sudo systemctl enable nfs-server
sudo systemctl reload nfs-server
と入力.