IE2_1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[Rene_情報工学実験2]]
1週目
1週目では、Mpichにより、モンテカルロ法を用いて円周率を求...
実験手順
分散ネットワーク環境の構築
1. まず1組が4つの班に分かれ、着席する。(グループ分けは...
2. USBメモリを配布するので、その中のファイルを全て、自分...
3. 「VirtualBox-5.2.20-125813-Win.exe」(数字はバージョン...
4. VirtualBoxを起動する。
5. 左上の「新規」から仮想マシンを作成する。
#ref(IE2_01.png,,50%)
6. 仮想マシンの名前は何でも良いがとりあえず「tpu」とする...
#ref(IE2_02.png,,50%)
7. メモリーサイズは「2048MB」に設定して次に進む。
#ref(IE2_03.png,,50%)
8. 「仮想ハードディスクを作成する(C)」にチェックして作成...
#ref(IE2_04.png,,50%)
9. ハードディスクのファイルタイプを「VDI(VirtualBox Disk...
#ref(IE2_05.png,,50%)
10. 物理ハードディスクにあるストレージは「可変サイズ」を...
#ref(IE2_06.png,,50%)
11. HDDの容量は「30GB」に設定して作成する。(必ず30GBに増...
#ref(IE2_07.png,,50%)
12. 作成した仮想マシンの設定を行うため、設定ボタンを押す。
#ref(IE2_08.png,,50%)
13. ネットワークからアダプター1を「ブリッジアダプター」...
#ref(IE2_09.png,,50%)
14. アダプター2のネットワークアダプターを有効化し、「NAT...
#ref(IE2_10.png,,50%)
15. ストレージは, コントロラーIDEの「空」を選択し、右の光...
#ref(IE2_11.png,,50%)
16. 起動ボタンを押し、仮想マシンを起動する。(Windowsが激...
#ref(IE2_12.png,,50%)
17. ここから仮想マシン上での「CentOSのインストール・セッ...
18. 仮想マシンの画面が起動し、CentOS7のインストールメニ...
#ref(IE2_13.png,,50%)
19. 使用する言語を「日本語(Japanese)」を選択し、右下の「...
#ref(IE2_14.png,,50%)
20. 「ソフトウェアの選択(S)」を選択する。
#ref(IE2_15.png,,50%)
21. 「サーバー(GUI使用)」を選択して、左上の完了で進む。
#ref(IE2_16.png,,50%)
22. 「インストール先(D)」を選択する。
#ref(IE2_17.png,,50%)
23. 既に30GBのHDDが選択されている状態になるので、そのまま...
#ref(IE2_18.png,,50%)
24. 「ネットワークとホスト名 (N)」を選択する
#ref(IE2_19.png,,50%)
25.1 Ethernetの接続(enp0s3のみ) を「オン」(右上のスライ...
#ref(IE2_20.png,,50%)
25.2 無線の接続を「オン」(右上のスライドを変更)にして、...
#ref(IE2_20.png,,50%)
26. ここまでの手順を終えたら、右下の「インストールの開始(...
#ref(IE2_21.png,,50%)
27. rootパスワードの設定を行う。
#ref(IE2_22.png,,50%)
28. rootパスワードは「tpu」とする。パスワードを2回入力し...
#ref(IE2_23.png,,50%)
29. 「ユーザーの作成」に進み、ユーザー名を「tpu」にして、...
#ref(IE2_24.png,,50%)
30. インストールが完了すると、右下に「再起動」ボタンが現...
#ref(IE2_25.png,,50%)
31. CentOS起動後、初期設定のウィンドウが開くので、ライセ...
32. ログイン画面になるので「tpu」でログインする。
33. 最初のログインなので「ようこそ」ウィンドウが開くので...
34. 「初めて使う方へ」のウィンドウが開くが、特に読まなく...
35. 画面左上の「アプリケーション」から、「端末」を選択し...
36. まず、sudoが正常に機能するか確認するため、以下を入力...
$ sudo echo test
tpuのパスワード入力が要求されるので、パスワードを入力する...
#ref(IE2_25.png,,50%)
37. ここで、これから使用するvimというエディターについて説...
Vimで使用する主なコマンドを以下の表に示す。全て「通常モー...
表1:Vimのコマンド一覧
※「挿入モード(文字入力モード、Insert Modeと表示されること...
#ref(IE2_26.png,,50%)
38. 早速このvimを使って、SELinuxの無効化設定を行う。コマ...
$ sudo vim /etc/selinux/config
#ref(IE2_27.png,,50%)
上図のように、SELINUX=disabledを最後に追加し、SELINUX=enf...
ファイルを保存してvimを終了する。(「Esc」を押してコマンド...
39. さらに、手動でもSELinuxを停止する。以下のコマンドを実...
$ sudo setenforce 0
40. SELinuxの動作状態を確認する。以下のコマンドを実行する。
$ getenforce
「Permissive」もしくは「Disabled」と表示されればOKである...
41. 次に、仮想マシンのファイアウォールを無効化する。以下...
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
42. ファイアウォールが停止したかどうかの確認は以下のコマ...
$ systemctl status firewalld
全部英語で読みづらいが、「Active: inactive (dead)」の表示...
#ref(IE2_28.png,,50%)
43. ここから必要なものをインストールするためには、仮想マ...
44. 画面の右上からEthernet(enp0s3)をオフにしてEthernet(en...
44.1. 無線で(Wi-Fi)でネットワークに接続する人は、一度仮想...
45. 次に、Java JDKのインストールをするために、以下のコマ...
$ sudo yum –y install java–1.8.0–openjdk–devel mpich mpic...
下のような画面になれば成功している。
#ref(IE2_29.png,,50%)
46. 次に、hadoopソフトウェア本体のダウンロードをするため...
$ cd
$ wget http://ftp.riken.jp/net/apache/hadoop/common/hadoo...
47. その後、ホームディレクトリにhadoop-2.8.5を展開したい...
$ tar xvzf hadoop-2.8.5.tar.gz
48. ホームディレクトリでlsと入力して下図のように青色の「h...
$ ls
#ref(IE2_30.png,,50%)
49. ここで、インターネット接続を解除し、ローカルネットワ...
画面の右上からEthernet(enp0s8)をオフにしてEthernet(enp0s3...
50. .bashrcファイルを変更し、bash環境の設定を変更する。以...
$ vim .bashrc
ファイルの最後に以下の6行を追加しファイルを保存して終了す...
$ export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
$ export HADOOP_HOME=$HOME/hadoop-2.8.5
$ export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
$ export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
$ export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HO...
$ export PATH=/usr/lib64/mpich/bin:$PATH
$ export HADOOP_CLASSPATH=/usr/lib/jvm/java-1.8.0-openjdk...
51. .bashrcファイルの変更を反映するために以下のコマンドを...
$ source .bashrc
52. 自分の仮想マシン自身のIPアドレスを固定番号に設定する...
$ nmcli connection modify enp0s3 ipv4.method manual ipv4....
$ nmcli connection modify enp0s3 ipv4.gateway 192.168.2.1
$ nmcli connection down enp0s3
$ nmcli connection up enp0s3
下図は、学籍番号1815005の場合の画面である。
#ref(IE2_31.png,,50%)
53. 以下のコマンドを入力して、自分の設定したIP番号で動作...
$ nmcli device show enp0s3
確認後Ctrl+Cで抜ける。
#ref(IE2_32.png,,50%)
54. マスターPCに通信できるか確かめる。○は、ホワイトボード...
$ ping 192.168.2.○
(○はホワイトボードに書かれている自分のmasterの番号)
以下のように表示されていれば通信できている。
64 bytes from 192.168.2.○: icmp_seq=1 ttl=64 time=0.111 ms
通信できていない場合以下を確認してみる
LANケーブルが接続されているか確認する。
仮想マシンの右上の電池のマークのところをクリックしてEth...
仮想マシンの右上の電池のマークのところをクリックして右...
マスターPCの方でも上記3つを実行する。
これでできなかった場合はTAを呼ぶ。(ルーターの差し直し...
55. 仮想マシンのホスト名を設定する。以下のコマンドを順番...
$ sudo hostname slaveXXX
$ echo “slaveXXX” | sudo tee /etc/hostname > /dev/null
以下のコマンドを入力して「slaveXXX」と表示されれば成功し...
$ hostname
下図は、学籍番号1815005の例である。
#ref(IE2_33.png,,50%)
56. /etc/hostsファイルの編集をする。このファイルは、IP番...
以下のコマンドで編集を開始する。
$ sudo vim /etc/hosts
既にある127.0.0.1と::1で始まる2行はそのままに、その後ろ...
○は、自分のmaster番号(0か1か2か3)、×は自分の学籍番号下...
192.168.2.20○ master○
192.168.2.× slave×
192.168.2.□ slave□
----以下、実験をやる組全員分のIP番号とslave番号を設定する。
下図は1組の場合の例である。
#ref(IE2_34.png,,50%)
57. ディレクトリができたか確認するには、以下のコマンドを...
$ ls $HADOOP_HOME
#ref(IE2_35.png,,50%)
58. Javaの動作確認をする。以下のコマンドを入力し、下図の...
$ java –version
#ref(IE2_36.png,,50%)
59. 同様に、hadoopの動作確認をする。以下のコマンドを入力...
$ hadoop version
#ref(IE2_37.png,,50%)
60. sshの設定とscpをTAにしてもらう。
61. マスターPCに通信できるか確かめる。
$ ping master○
(○はホワイトボードに書かれている自分のmasterの番号)
以下のように表示されていれば通信できている。
64 bytes from master○ (192.168.2.○): icmp_seq=1 ttl=64 ti...
通信できていない場合以下を確認してみる
LANケーブルが接続されているか確認する。
仮想マシンの右上の電池のマークのところをクリックしてEth...
仮想マシンの右上の電池のマークのところをクリックして右...
マスターPCの方でも上記3つを実行する。
これでできなかった場合はTAを呼ぶ。(ルーターの差し直し...
62. スレーブPCがマスターPCをマウントできるように以下のコ...
マウントとは、スレーブPC(生徒側のPC)がマスターPCの特定...
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
$ sudo systemctl start nfs-lock
$ sudo systemctl start nfs-idmap
$ sudo systemctl enable nfs-server
$ sudo systemctl reload nfs-server
63. 自分のPCに戻り、マスター側の共有ディレクトリをマウン...
マウントとは、スレーブPC(生徒側のPC)がマスターPCの特定...
$ mkdir /home/tpu/share
64. 以下のコマンドでマウントする。
$ sudo mount --types nfs 192.168.2.○:/home/tpu/share /hom...
○には自分の席のmasterの下三桁(200,201,202,203)を入力す...
以下のコマンドで確認し、
$ df –k
一番下に次のように表示されればいい
192.168.2.○:/home/tpu/share 430897664 847872 43004979...
65. 以下のコマンドで共有ディレクトリを作成するためにfstab...
$ sudo vim /etc/fstab
最後の行に以下を追加する。nfsの後は改行せずスペースだけ。
192.168.2.○:/home/tpu/share /home/tpu/share nfs rsize=819...
○には自分の席のmasterの下三桁(200,201,202,203)を入力す...
66. 確認方法
$ sudo umount /home/tpu/share
$ sudo mount –a
$ df –k
一番下につぎのようにでればいい。
192.168.2.○:/home/tpu/share 430897664 847872 43004979...
67. マスターPCにSSHで接続する。
マスターPCを操作する際は、sshの接続によって遠隔で操作する。
○sshによる遠隔操作の仕方(スレイブ→マスターへ移動)
ssh master○ ○は自分の班の番号
○sshによる遠隔操作からの抜け方(マスター→スレイブへ移動)
exit
68. 自分の学籍番号の下二桁が35の場合
以下の内容のプログラムをmontecarlo35.cという名前で作成す...
コピペ方法1:自分のPCでmontecarlo35.cを作成しUSBメモリを介...
コピペ方法2:共有ディレクトリのshareの中にmontecarlo.cがあ...
数値積分やモンテカルロ法を用いて円周率を求めるサンプルプ...
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define NUM_MAX 100000000
#define PI 3.141592653589793238462643
typedef struct
{
double x;
double y;
}POINT;
int main(int argc, char* argv[])
{
POINT p;
double r, pi, s, e;
int cnt, total_cnt, i, rank, size, local_cnt;
int start, end, sendbuf, recvbuf;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
s=MPI_Wtime();
local_cnt=(int)((double)NUM_MAX/(double)size);
start=rank*local_cnt;
end=(rank+1)*local_cnt;
srand((unsigned int)time(NULL)*(rank+1));
cnt = 0;
for (i = start; i < end; i++){
p.x = (double)rand() / (double)RAND_MAX;
p.y = (double)rand() / (double)RAND_MAX;
r = sqrt(p.x * p.x + p.y * p.y);
if ( r < 1.0 ){
cnt++;
}
}
sendbuf = cnt;
recvbuf = 0;
MPI_Allreduce(&sendbuf, &recvbuf, 1, MPI_INT, MPI_SUM, ...
total_cnt =recvbuf;
pi = 4.0 * (double)total_cnt / (double)NUM_MAX;
if(rank==0){
printf("pi: %18.16lf, Error: %18.16lf \n",pi, fabs(pi...
e=MPI_Wtime();
printf("time = : %8.4f[sec]\n",e-s);
}
MPI_Finalize();
return 0;
}
以下のコマンドで共有フォルダに移動する。
$ cd /home/tpu/share
端末上で以下のコマンドでコンパイルする。
$ mpicc montecarlo35.c -o montecarlo35 -lm
端末上で以下のコマンドで実行する。班の人とmpirunコマンド...
-npの後の数字で使うPCの数が決まる。つまり、-np 2だと2台,...
$ mpirun --hostfile host -np 3 ./montecarlo35
結果の見方
piがモンテカルロ法によって導き出された円周率の値で、Error...
69. 1週目のレポート課題を終える。以上で、1週目における作...
70. 最終的に全ての作業が問題なくできたかどうかは、TAがmas...
71. 組の全員の仮想マシンが無事slaveとして動作していること...
72. 仮想マシンをシャットダウンします。以下のコマンドを実...
$ poweroff
73. VirtualBoxの仮想ウィンドウが閉じ、仮想マシンが停止状...
74. Windowsを終了します。
1週目のレポート課題
1) マスターPCにリモートログインして、1台のみで、円周率...
2) マスターPCと自分のPCの2台並列で、円周率を計算し時間...
3) マスターPCとグループのPC3台(計4台並列)の並列で、円...
4) マスターPCと班のPC7台(計8台並列)の並列で、円周率を...
5) Mpichのプログラムを理解して、円ではなくて球による...
プログラムが完成したらソースコードをTAに確認してもらう。
完成したプログラムのソースコードを自分のPCに移し、レポー...
終了行:
[[Rene_情報工学実験2]]
1週目
1週目では、Mpichにより、モンテカルロ法を用いて円周率を求...
実験手順
分散ネットワーク環境の構築
1. まず1組が4つの班に分かれ、着席する。(グループ分けは...
2. USBメモリを配布するので、その中のファイルを全て、自分...
3. 「VirtualBox-5.2.20-125813-Win.exe」(数字はバージョン...
4. VirtualBoxを起動する。
5. 左上の「新規」から仮想マシンを作成する。
#ref(IE2_01.png,,50%)
6. 仮想マシンの名前は何でも良いがとりあえず「tpu」とする...
#ref(IE2_02.png,,50%)
7. メモリーサイズは「2048MB」に設定して次に進む。
#ref(IE2_03.png,,50%)
8. 「仮想ハードディスクを作成する(C)」にチェックして作成...
#ref(IE2_04.png,,50%)
9. ハードディスクのファイルタイプを「VDI(VirtualBox Disk...
#ref(IE2_05.png,,50%)
10. 物理ハードディスクにあるストレージは「可変サイズ」を...
#ref(IE2_06.png,,50%)
11. HDDの容量は「30GB」に設定して作成する。(必ず30GBに増...
#ref(IE2_07.png,,50%)
12. 作成した仮想マシンの設定を行うため、設定ボタンを押す。
#ref(IE2_08.png,,50%)
13. ネットワークからアダプター1を「ブリッジアダプター」...
#ref(IE2_09.png,,50%)
14. アダプター2のネットワークアダプターを有効化し、「NAT...
#ref(IE2_10.png,,50%)
15. ストレージは, コントロラーIDEの「空」を選択し、右の光...
#ref(IE2_11.png,,50%)
16. 起動ボタンを押し、仮想マシンを起動する。(Windowsが激...
#ref(IE2_12.png,,50%)
17. ここから仮想マシン上での「CentOSのインストール・セッ...
18. 仮想マシンの画面が起動し、CentOS7のインストールメニ...
#ref(IE2_13.png,,50%)
19. 使用する言語を「日本語(Japanese)」を選択し、右下の「...
#ref(IE2_14.png,,50%)
20. 「ソフトウェアの選択(S)」を選択する。
#ref(IE2_15.png,,50%)
21. 「サーバー(GUI使用)」を選択して、左上の完了で進む。
#ref(IE2_16.png,,50%)
22. 「インストール先(D)」を選択する。
#ref(IE2_17.png,,50%)
23. 既に30GBのHDDが選択されている状態になるので、そのまま...
#ref(IE2_18.png,,50%)
24. 「ネットワークとホスト名 (N)」を選択する
#ref(IE2_19.png,,50%)
25.1 Ethernetの接続(enp0s3のみ) を「オン」(右上のスライ...
#ref(IE2_20.png,,50%)
25.2 無線の接続を「オン」(右上のスライドを変更)にして、...
#ref(IE2_20.png,,50%)
26. ここまでの手順を終えたら、右下の「インストールの開始(...
#ref(IE2_21.png,,50%)
27. rootパスワードの設定を行う。
#ref(IE2_22.png,,50%)
28. rootパスワードは「tpu」とする。パスワードを2回入力し...
#ref(IE2_23.png,,50%)
29. 「ユーザーの作成」に進み、ユーザー名を「tpu」にして、...
#ref(IE2_24.png,,50%)
30. インストールが完了すると、右下に「再起動」ボタンが現...
#ref(IE2_25.png,,50%)
31. CentOS起動後、初期設定のウィンドウが開くので、ライセ...
32. ログイン画面になるので「tpu」でログインする。
33. 最初のログインなので「ようこそ」ウィンドウが開くので...
34. 「初めて使う方へ」のウィンドウが開くが、特に読まなく...
35. 画面左上の「アプリケーション」から、「端末」を選択し...
36. まず、sudoが正常に機能するか確認するため、以下を入力...
$ sudo echo test
tpuのパスワード入力が要求されるので、パスワードを入力する...
#ref(IE2_25.png,,50%)
37. ここで、これから使用するvimというエディターについて説...
Vimで使用する主なコマンドを以下の表に示す。全て「通常モー...
表1:Vimのコマンド一覧
※「挿入モード(文字入力モード、Insert Modeと表示されること...
#ref(IE2_26.png,,50%)
38. 早速このvimを使って、SELinuxの無効化設定を行う。コマ...
$ sudo vim /etc/selinux/config
#ref(IE2_27.png,,50%)
上図のように、SELINUX=disabledを最後に追加し、SELINUX=enf...
ファイルを保存してvimを終了する。(「Esc」を押してコマンド...
39. さらに、手動でもSELinuxを停止する。以下のコマンドを実...
$ sudo setenforce 0
40. SELinuxの動作状態を確認する。以下のコマンドを実行する。
$ getenforce
「Permissive」もしくは「Disabled」と表示されればOKである...
41. 次に、仮想マシンのファイアウォールを無効化する。以下...
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
42. ファイアウォールが停止したかどうかの確認は以下のコマ...
$ systemctl status firewalld
全部英語で読みづらいが、「Active: inactive (dead)」の表示...
#ref(IE2_28.png,,50%)
43. ここから必要なものをインストールするためには、仮想マ...
44. 画面の右上からEthernet(enp0s3)をオフにしてEthernet(en...
44.1. 無線で(Wi-Fi)でネットワークに接続する人は、一度仮想...
45. 次に、Java JDKのインストールをするために、以下のコマ...
$ sudo yum –y install java–1.8.0–openjdk–devel mpich mpic...
下のような画面になれば成功している。
#ref(IE2_29.png,,50%)
46. 次に、hadoopソフトウェア本体のダウンロードをするため...
$ cd
$ wget http://ftp.riken.jp/net/apache/hadoop/common/hadoo...
47. その後、ホームディレクトリにhadoop-2.8.5を展開したい...
$ tar xvzf hadoop-2.8.5.tar.gz
48. ホームディレクトリでlsと入力して下図のように青色の「h...
$ ls
#ref(IE2_30.png,,50%)
49. ここで、インターネット接続を解除し、ローカルネットワ...
画面の右上からEthernet(enp0s8)をオフにしてEthernet(enp0s3...
50. .bashrcファイルを変更し、bash環境の設定を変更する。以...
$ vim .bashrc
ファイルの最後に以下の6行を追加しファイルを保存して終了す...
$ export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
$ export HADOOP_HOME=$HOME/hadoop-2.8.5
$ export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
$ export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
$ export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HO...
$ export PATH=/usr/lib64/mpich/bin:$PATH
$ export HADOOP_CLASSPATH=/usr/lib/jvm/java-1.8.0-openjdk...
51. .bashrcファイルの変更を反映するために以下のコマンドを...
$ source .bashrc
52. 自分の仮想マシン自身のIPアドレスを固定番号に設定する...
$ nmcli connection modify enp0s3 ipv4.method manual ipv4....
$ nmcli connection modify enp0s3 ipv4.gateway 192.168.2.1
$ nmcli connection down enp0s3
$ nmcli connection up enp0s3
下図は、学籍番号1815005の場合の画面である。
#ref(IE2_31.png,,50%)
53. 以下のコマンドを入力して、自分の設定したIP番号で動作...
$ nmcli device show enp0s3
確認後Ctrl+Cで抜ける。
#ref(IE2_32.png,,50%)
54. マスターPCに通信できるか確かめる。○は、ホワイトボード...
$ ping 192.168.2.○
(○はホワイトボードに書かれている自分のmasterの番号)
以下のように表示されていれば通信できている。
64 bytes from 192.168.2.○: icmp_seq=1 ttl=64 time=0.111 ms
通信できていない場合以下を確認してみる
LANケーブルが接続されているか確認する。
仮想マシンの右上の電池のマークのところをクリックしてEth...
仮想マシンの右上の電池のマークのところをクリックして右...
マスターPCの方でも上記3つを実行する。
これでできなかった場合はTAを呼ぶ。(ルーターの差し直し...
55. 仮想マシンのホスト名を設定する。以下のコマンドを順番...
$ sudo hostname slaveXXX
$ echo “slaveXXX” | sudo tee /etc/hostname > /dev/null
以下のコマンドを入力して「slaveXXX」と表示されれば成功し...
$ hostname
下図は、学籍番号1815005の例である。
#ref(IE2_33.png,,50%)
56. /etc/hostsファイルの編集をする。このファイルは、IP番...
以下のコマンドで編集を開始する。
$ sudo vim /etc/hosts
既にある127.0.0.1と::1で始まる2行はそのままに、その後ろ...
○は、自分のmaster番号(0か1か2か3)、×は自分の学籍番号下...
192.168.2.20○ master○
192.168.2.× slave×
192.168.2.□ slave□
----以下、実験をやる組全員分のIP番号とslave番号を設定する。
下図は1組の場合の例である。
#ref(IE2_34.png,,50%)
57. ディレクトリができたか確認するには、以下のコマンドを...
$ ls $HADOOP_HOME
#ref(IE2_35.png,,50%)
58. Javaの動作確認をする。以下のコマンドを入力し、下図の...
$ java –version
#ref(IE2_36.png,,50%)
59. 同様に、hadoopの動作確認をする。以下のコマンドを入力...
$ hadoop version
#ref(IE2_37.png,,50%)
60. sshの設定とscpをTAにしてもらう。
61. マスターPCに通信できるか確かめる。
$ ping master○
(○はホワイトボードに書かれている自分のmasterの番号)
以下のように表示されていれば通信できている。
64 bytes from master○ (192.168.2.○): icmp_seq=1 ttl=64 ti...
通信できていない場合以下を確認してみる
LANケーブルが接続されているか確認する。
仮想マシンの右上の電池のマークのところをクリックしてEth...
仮想マシンの右上の電池のマークのところをクリックして右...
マスターPCの方でも上記3つを実行する。
これでできなかった場合はTAを呼ぶ。(ルーターの差し直し...
62. スレーブPCがマスターPCをマウントできるように以下のコ...
マウントとは、スレーブPC(生徒側のPC)がマスターPCの特定...
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
$ sudo systemctl start nfs-lock
$ sudo systemctl start nfs-idmap
$ sudo systemctl enable nfs-server
$ sudo systemctl reload nfs-server
63. 自分のPCに戻り、マスター側の共有ディレクトリをマウン...
マウントとは、スレーブPC(生徒側のPC)がマスターPCの特定...
$ mkdir /home/tpu/share
64. 以下のコマンドでマウントする。
$ sudo mount --types nfs 192.168.2.○:/home/tpu/share /hom...
○には自分の席のmasterの下三桁(200,201,202,203)を入力す...
以下のコマンドで確認し、
$ df –k
一番下に次のように表示されればいい
192.168.2.○:/home/tpu/share 430897664 847872 43004979...
65. 以下のコマンドで共有ディレクトリを作成するためにfstab...
$ sudo vim /etc/fstab
最後の行に以下を追加する。nfsの後は改行せずスペースだけ。
192.168.2.○:/home/tpu/share /home/tpu/share nfs rsize=819...
○には自分の席のmasterの下三桁(200,201,202,203)を入力す...
66. 確認方法
$ sudo umount /home/tpu/share
$ sudo mount –a
$ df –k
一番下につぎのようにでればいい。
192.168.2.○:/home/tpu/share 430897664 847872 43004979...
67. マスターPCにSSHで接続する。
マスターPCを操作する際は、sshの接続によって遠隔で操作する。
○sshによる遠隔操作の仕方(スレイブ→マスターへ移動)
ssh master○ ○は自分の班の番号
○sshによる遠隔操作からの抜け方(マスター→スレイブへ移動)
exit
68. 自分の学籍番号の下二桁が35の場合
以下の内容のプログラムをmontecarlo35.cという名前で作成す...
コピペ方法1:自分のPCでmontecarlo35.cを作成しUSBメモリを介...
コピペ方法2:共有ディレクトリのshareの中にmontecarlo.cがあ...
数値積分やモンテカルロ法を用いて円周率を求めるサンプルプ...
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define NUM_MAX 100000000
#define PI 3.141592653589793238462643
typedef struct
{
double x;
double y;
}POINT;
int main(int argc, char* argv[])
{
POINT p;
double r, pi, s, e;
int cnt, total_cnt, i, rank, size, local_cnt;
int start, end, sendbuf, recvbuf;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
s=MPI_Wtime();
local_cnt=(int)((double)NUM_MAX/(double)size);
start=rank*local_cnt;
end=(rank+1)*local_cnt;
srand((unsigned int)time(NULL)*(rank+1));
cnt = 0;
for (i = start; i < end; i++){
p.x = (double)rand() / (double)RAND_MAX;
p.y = (double)rand() / (double)RAND_MAX;
r = sqrt(p.x * p.x + p.y * p.y);
if ( r < 1.0 ){
cnt++;
}
}
sendbuf = cnt;
recvbuf = 0;
MPI_Allreduce(&sendbuf, &recvbuf, 1, MPI_INT, MPI_SUM, ...
total_cnt =recvbuf;
pi = 4.0 * (double)total_cnt / (double)NUM_MAX;
if(rank==0){
printf("pi: %18.16lf, Error: %18.16lf \n",pi, fabs(pi...
e=MPI_Wtime();
printf("time = : %8.4f[sec]\n",e-s);
}
MPI_Finalize();
return 0;
}
以下のコマンドで共有フォルダに移動する。
$ cd /home/tpu/share
端末上で以下のコマンドでコンパイルする。
$ mpicc montecarlo35.c -o montecarlo35 -lm
端末上で以下のコマンドで実行する。班の人とmpirunコマンド...
-npの後の数字で使うPCの数が決まる。つまり、-np 2だと2台,...
$ mpirun --hostfile host -np 3 ./montecarlo35
結果の見方
piがモンテカルロ法によって導き出された円周率の値で、Error...
69. 1週目のレポート課題を終える。以上で、1週目における作...
70. 最終的に全ての作業が問題なくできたかどうかは、TAがmas...
71. 組の全員の仮想マシンが無事slaveとして動作していること...
72. 仮想マシンをシャットダウンします。以下のコマンドを実...
$ poweroff
73. VirtualBoxの仮想ウィンドウが閉じ、仮想マシンが停止状...
74. Windowsを終了します。
1週目のレポート課題
1) マスターPCにリモートログインして、1台のみで、円周率...
2) マスターPCと自分のPCの2台並列で、円周率を計算し時間...
3) マスターPCとグループのPC3台(計4台並列)の並列で、円...
4) マスターPCと班のPC7台(計8台並列)の並列で、円周率を...
5) Mpichのプログラムを理解して、円ではなくて球による...
プログラムが完成したらソースコードをTAに確認してもらう。
完成したプログラムのソースコードを自分のPCに移し、レポー...
ページ名: