<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/shilco/">
    <title>shilcoを２５６倍楽しむためのwiki</title>
    <link>http://w.atwiki.jp/shilco/</link>
    <atom:link href="https://w.atwiki.jp/shilco/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>shilcoを２５６倍楽しむためのwiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-02-12T02:28:54+09:00</dc:date>
    <utime>1265909334</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/51.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/50.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/49.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/48.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/47.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/46.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/45.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/44.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/43.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/shilco/pages/42.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/51.html">
    <title>実用編５（チェックポイント）</title>
    <link>https://w.atwiki.jp/shilco/pages/51.html</link>
    <description>
      いよいよ最後のチェックポイントの説明です

とりあ、先に使うコマンドの説明でもしときます

 # ps ax
チェックポイントを取るのにプロセスIDが必要なんです

ただ、このコマンドだけやと
全てのプロセスが出てきて見にくいから
 # ps ax | grep bmt
みたいに実行ファイル名を指定した方が見やすいと思います

 # lamcheckpoint -ssi cr blcr -pid $1
見てなんとなく分かると思うけどもチェックポイント用のコマンドです

後ろの$1には止めるプログラムのプロセスIDを入れます

 # lamrestart -ssi cr blcr -ssi cr_blcr_context_file $1
これもなんとなく見て分かると思うけどリスタート用のコマンドです

後ろの$1には『context.mpirun.プロセスID』を入れます

さて、コマンドの解説もほどほどにして実際にやっていこうと思います

まず、前段階として
puttyを２つ起動させて同じVMに入ります

１台目→プログラムの実行
２台目→止める作業

１台目は特に何も考えずに動かす
#ref(check1.png)


２台目で色々で小細工をする
#ref(check2.png)

一応、チェックポイントを取るっていっても
１台目のを止めるんじゃなくて
途中経過のポイントを取るから
１台目の計算は最後まで止まることなく動いてます

で、今の問題なのが２台目でリスタートするんはいいんけども
見てもらって分かる通り実行結果が違う・・・

この原因はもうハッキリしてて
だいたいの時間を計測するプログラムは
スタートする時→スタート時の現在時刻を保存
ゴール時→ゴール時の現在時刻を保存

で、計算したり、表示する時に
ゴール時の時間ースタート時の時間＝かかった時間
って感じに計算するから
スタート時→午前８時
チェックポイント取って
２時間後にリスタートして
ゴール時→午前１０時
やと、計算にかかった時間が２時間になっちゃうんですよね

これが少しめんどくさいねなぁ…

これを解決するにはプログラムの中身をいじるか
パソコン側の設定をどうにかするしか    </description>
    <dc:date>2010-02-12T02:28:54+09:00</dc:date>
    <utime>1265909334</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/50.html">
    <title>実用編４（姫野ベンチ）</title>
    <link>https://w.atwiki.jp/shilco/pages/50.html</link>
    <description>
      どうせなら姫野ベンチも動かそうってことで試してみます

#ref(lam5.png)


はい、試すだけならすぐに終わります

見てもらったら分かるんけど
『bmt』っていう実行ファイルやねけども
このファイルがある状態でmakeすると
 make: Nothing to be done for `all&#039;.
っていう、makeするものはないって言われるけども
別にエラーとかじゃないから

.

.

.

.

.

.

.

.    </description>
    <dc:date>2010-02-02T10:51:03+09:00</dc:date>
    <utime>1265075463</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/49.html">
    <title>実用編３（lamを使ってみよう）</title>
    <link>https://w.atwiki.jp/shilco/pages/49.html</link>
    <description>
      それでは早速lamを使っていくことにします

作ったVMにはrshで繋げるようになってるから
おとなしくrshで繋ぐことに
 # rsh 192.168.1.140

ここで特殊な条件っていうか
lamはroot権限じゃ使えへんくて
ユーザーで入りなおす必要があるっていう
 
作ったVMには最初から『lam』っていうアカウント作ってあるから
そっちに入ることにします
 # su lam
#ref(lam.png)


lamはmpichiほど設定ファイルがなくて
設定するファイルっていったら１つぐらいで
そのファイルに下みたく記述するだけです
#ref(lam3.png)


一応、mpichiに似せて『lamhosts』にしてあるんけども
実際はファイルの名前はなんでも良くて
別に『lam_test』とか『lam_hosts』でも問題はないです

ただ、mpichiに『mpdboot』があるように
lamには『lamboot』があって
そん時に上の設定ファイルの名前を指定してやる必要があります
 # lamboot -v lamhosts
#ref(lam2.png)


確認する時は
 # lamnodes
で確認してみるといいと思います

ってことでサンプルを動かしてみたいと思います

サンプルプログラムとして
１、hello world
２、姫野ベンチ
この２つは初期装備で入ってます

ってことで、hello worldでも動かしてみます
 # mpicc -o hello hello.c -lcr
後ろに付いてる『-lcr』がポイントってか必要なんで忘れないように

 # mpirun -np 2 hello
#ref(lam4.png)

無事にサンプルが動きました

ってことで、終了コマンドがあるみたいやから
それも参考程度に載せておきます

はじめにユーザプロセスやMPIのメッセージを削除。 
 % lamclean -v

次にLAMデーモンの終了。
 % wipe -v lamhosts

.

.

.

.

.

.

.

.    </description>
    <dc:date>2010-02-12T02:23:18+09:00</dc:date>
    <utime>1265908998</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/48.html">
    <title>実用編２（作ってみよう）</title>
    <link>https://w.atwiki.jp/shilco/pages/48.html</link>
    <description>
      はい、さっそく作っていきたいと思います

まずは、動かすマシーンの設定をします

srcディレクトリの中のcluster.hを見ます

 # vi cluster.h
#ref(cluster.png)
ちなみに、２月１日現在、pafe15,pafe16は壊れてます

使いたくないマシーンはコメントアウトすると使わなくて済むんけど
今は特に制約もないから動くマシーン全部を指定してます

次に、今動いてるVMCがないかを調べます
 # ./client info
#ref(info3.png)
今回で言えば、今２つのVMCがたっているので
そのVMCと名前、IPはずらして設定してください

 # vi recipe.kuma
#ref(recipe3.png)
例としてこんな感じ

ちなみにこのrecipeの中の「type」って選択肢やねけども
一応、「basic」、「mpich」、「blcr」の３種類選べるんけども
並列計算するだけなら「blcr」を選んどいていいと思います

後、IPはentとディレクトリを共有したいから
192.168.1.*のアドレスを持たせてください

これで準備は終わり

あっ、余談っていうか、何個もVMCを作る時の話やねけども
recipeをいちいち上書きするのも不便やから
「recipe.kuma」とか「recipe.lam」な感じに
名前分けしてrecipeファイルを置いておくことをオススメします

そんでいよいよ起動やねけども
 # ./client -r recipe.kuma boot
#ref(boot5.png)
「blcr」のイメージは容量が大きいから
作り終えるまで９０秒ほどかかります

これを早いと見るか、遅いと見るかは任せるけど
多分、極端に時間を縮めることは難しいと思います

 # ./client info
#ref(info4.png)

確認するとちゃんとできてます

これで起動編を終わります

次はlamを使おう編です

.

.

.

.

.

.

.

.
.    </description>
    <dc:date>2010-02-02T05:59:37+09:00</dc:date>
    <utime>1265057977</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/47.html">
    <title>実用編１（基本的な説明）</title>
    <link>https://w.atwiki.jp/shilco/pages/47.html</link>
    <description>
      基本的な説明の編集が終わってないねけども
とりあ、完成を目指すために実用編の編集も進めることに

基本的には上に書いてある遊び方と変わってないねけども
色々細かいとこが変わってるっていう…

変更したとこだけ書いてもいいんけども
逆に分かりにくくなると思うから全部書きます

とりあ、本格的な作業は次の項目に書くとして
ここには作業始めるまでの準備段階について書くことに

まず、作業するディレクトリが変更になって
entであることに変わりはないねけど
 /opt/svn
で今は作業します

別に場所はどこでも問題ないねけども
サブバージョンでバージョン管理したかったから/optの直下っていう
分かりやすい場所に置くことにしました

で、まず作業ディレクトリに着いたら
サブバージョンの更新の確認をして
もし変更がある場合はサブバージョンの更新をします
 # svn info
 # svn update
サブバージョンの使い方が分からん人はググッてください

サブバージョンの更新が終わったら、とりあえずmakeする
 # make
ここで失敗することはないと思うけど
失敗するとしたらmountできてなかったり
ソースに不備があると思うから頑張ってエラー文と戦ってください

makeが無事に成功したら
 # ./client test
で動作テストをして、動くことを確認します

これで実用編の基本的な説明を終わります






.
.

.

.

.

.

.
.

.

.    </description>
    <dc:date>2010-02-01T23:23:46+09:00</dc:date>
    <utime>1265034226</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/46.html">
    <title>１月３０日（shilcoのmakeが上手くいかない編）</title>
    <link>https://w.atwiki.jp/shilco/pages/46.html</link>
    <description>
      もしもshilcoのフォルダを移動したらmountしてる場所に注意が必要です

親機と子機が同じディレクトリを共有してやなアカンから
移動させたら忘れずにmount場所の変更をしよう

まぁ、もし変更作業を忘れてたらmakeした時にエラーが出るんけど・・・

makeした時に
 bash: /opt/svn/src/deamon: No such file or directory
ってエラー文が出る時は
どっかの子機がmountできてない時やから
確認してみると幸せになれるかも

ちなみに、子機でmountしようとしようとした時に権限がない的な警告が出る時は
親機の/etc/exportsに設定を追加してください

#ref(etcexports.png)
記入例はこんな感じ

まぁ、詳しくはgoogle先生で検索してみてください

あっ、後、この/etc/exportsを変更したら
 # exportfs -ra
で設定を更新して
 # showmount -e
で確認してみて
.
.
.
.
.
.
.
.
.
.    </description>
    <dc:date>2010-02-01T06:55:22+09:00</dc:date>
    <utime>1264974922</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/45.html">
    <title>１月２３日（svnの使い方編）</title>
    <link>https://w.atwiki.jp/shilco/pages/45.html</link>
    <description>
      今さらですがサブバージョンの使い方について

かなり今さらなタイミングやけど一応書いておく

まず、作業フォルダは
/opt/svn


# svn co file:///var/www/html/svn/
# svn info
# svn commit -m &quot;メッセージ&quot;
# svn update    </description>
    <dc:date>2010-01-24T01:19:02+09:00</dc:date>
    <utime>1264263542</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/44.html">
    <title>説明（原文）</title>
    <link>https://w.atwiki.jp/shilco/pages/44.html</link>
    <description>
      *Dom0での作業
**必要なもの
***全般
- linux-2.6.16.29-xenのソースフォルダ
$xensrc/linux-2.6.16.29-xen にあるはず
- blcr-($version).tar.gz
***コンパイル
- gcc
- g++
- ntpl

**ntplについて
/usr/lib/ntplにあるが，シンボリックリンクlibrt.soが切れていた．
/lib/tlsを指しているが，存在しない．
これを解決するために，glibcを上書きインストールする．
+ $ wget http://.../glibc-($version).i686.rpm
+ # rpm -U --oldpackage --force glibc-($version).i686.rpm
これで，/lib/tlsが発生する．最初にない理由は謎
+ # cd /usr/lib/nptl
+ # rm librt.so
+ # ln -s /lib/tls/librt-2.3.4.so librt.so

**工程
+ $ tar zxvf blcr-($version).tar.gz
+ $ cd blcr-($version)
+ $ ./configure --with-linux=($xensrc)/linux-2.6.16.29-xen
+ $ make
+ # make install
+ # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr_imports.ko
+ # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr.ko
ここで，insmodが失敗する場合，実行中のカーネルと，ビルドしたソースフォルダの設定が間違っている可能性がある．
+ # make check
これで，動作テストを行う．

*DomUでの作業
**必要なもの
***全般
- linux-2.6.16.29-xenのソースフォルダ
Dom0から持ってくる
- Dom0:/usr/local/lib/blcr/2.6.16.29-xen/*.ko
Dom0から持ってくる
- blcr-($version).tar.    </description>
    <dc:date>2010-02-02T10:51:30+09:00</dc:date>
    <utime>1265075490</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/43.html">
    <title>１月２２日（rsync編）</title>
    <link>https://w.atwiki.jp/shilco/pages/43.html</link>
    <description>
      （森のくまさん風に）
&amp;italic(){&amp;color(red){ある日～}}

&amp;italic(){&amp;color(red){作業中に～}}

&amp;italic(){&amp;color(red){シンボリックリンクに～}}

&amp;italic(){&amp;color(red){出会った～}}

はぃ、今日のお題はシンボリックリンク

別にシンボリックリンクはシンボリックリンクやから説明は省略

今回問題になったんはscpでフォルダを丸ごと転送するときのお話です

scpでフォルダを送る時は
 scp -r /boot 192.168.1.56:/boot
ってな感じで問題ないねけど…

シンボリックリンクのついたファイルは
リンクの元を見つけてコピーしちゃうんです…orz

ってことで、違う方法を検索すると『rsync』を発見

さっそく試してみると…

できた(∩ω`*)

 rsync -av /boot/ 192.168.1.56:/boot
で無事にシンボリックリンク付きで送ることに成功

まぁ、詳しい使い方とかは『rsync』でググッテください


.
.
.
.
.
.
.
.
.
.
.
.    </description>
    <dc:date>2010-01-22T10:13:50+09:00</dc:date>
    <utime>1264122830</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/shilco/pages/42.html">
    <title>説明（頑張って理解しようとした版）</title>
    <link>https://w.atwiki.jp/shilco/pages/42.html</link>
    <description>
      はい、ここでは先輩に作ってもらった説明書を読んでいこうと思います

読んでいくっていっても
実際に入れていきながらの確認になると思うけど

ってことで、さっそく作業を始めていきます

あっ、時間かかる作業が多いんでアニメでも用意しとくことをオススメします(*´艸`)

まずはDom0の親機での設定からいきます(=゜ω゜)ノ

*Dom0での作業
**必要なものについて
***全般
- linux-2.6.16.29-xenのソースフォルダ
$xensrc/linux-2.6.16.29-xen にあるはず
今回使うのは『linux-2.6.16.29-xen』を使います。

無難にいくと /root/xen-3.0.3_0-src/linux-2.6.16.29-xen な感じです

&amp;color(red){ここで注意！！}

xen-3.0.3_0-srcは下手すると５ＧＢとかいくんで
xen-3.0.3_0-src/linux-2.6.16.29-xenだけでいいです

ちなみに、/xen-3.0.3_0-src/linux-2.6.16.29-xenでも５４０ＭＢとかあります

- blcr-($version).tar.gz
今回使うのは『blcr-0.8.2』を使います

***コンパイルに必要なもの
コンパイルに必要なものは下の３つ
- gcc
- g++
- nptl

gccとg++については特に説明はいらんと思うので省略

nptlはあんまり有名じゃないと思うから説明を少し
「POSIXスレッドを使ったプログラムをLinuxカーネル上で効率的に動作可能とするソフトウェア機能である」
と書いてもいまいち分からんやろから
詳しく知りたい人はググレばいっぱい情報出るから
wikiなりなんなりで調べてください(*´д`)=з

**ntplの導入について
/usr/lib/ntplにあるが，シンボリックリンクlibrt.soが切れていた．
/lib/tlsを指しているが，存在しない．
これを解決するために，glibcを上書きインストールする．
+ $ wget http://ftp.riken.jp/Linux/centos/4.8/os/i386/CentOS    </description>
    <dc:date>2010-01-24T06:33:58+09:00</dc:date>
    <utime>1264282438</utime>
  </item>
  </rdf:RDF>
