メイン | 2006年12月 »

2006年11月 アーカイブ

2006年11月12日

ふつうのLinuxマシンでの姫野ベンチマークの利用方法

CPUやOSなどの違いにより性能がどう違うのかを知るための
一つの手段がベンチマークだ。
クラスタ環境でなくても利用する価値はあると思う。

姫野ベンチマークは以下のURLからプログラムをダウンロード

http://accc.riken.jp/HPC/HimenoBMT/index.html

Windows用のソースファイルの「C, static allocate version」をダウンロード。
サイズはSかMでいいでしょう。

取ってきたファイルは圧縮されているので解凍する。

$ lha -e ./cc_himenoBMTxp_m.lzh

TurboLinux10の場合lhaコマンドがないのでredhat9用のlhaパッケージがそのまま使えるので取ってくる。

解凍したらhimenobmtxps.cというファイルが出来るが小文字に変換されてしまうので、
himenoBMTxps.cと名前を変える。

$ mv himenobmtxps.c himenoBMTxps.c

あとはmakeして出来たbmtファイルを実行する。

$ make
$./bmt

結果が表示されるからいろいろなマシン上で試してみるといいかも。

以下私のTurboLinux10マシン上でのテスト結果。
pentium3 600MHzの1.5倍となっているのはなかなかぴったりです。

---
Loop executed for 54 times
Gosa : 1.471492e-03
MFLOPS measured : 125.128854 cpu : 59.168426
Score based on Pentium III 600MHz : 1.525962
---

同じマシンでOSをredhat9,CentOS4,CentOS3,FedoraCore5と試したがCentOS4が一番早かった。
Fedora5の遅さにはびっくりした。

2006年11月18日

Solaris10でmp3再生

OSSドライバを組み込むことでサウンドデバイスを認識させることができる可能性が高まる。

↓ダウンロードはこちら
http://www.opensound.com/solaris-x86.html

さて、有料なのか?
でもダウンロードは出来た。

インストールを済まし再起動したら見事認識した。

Linuxで定番のxmmsが利用したかったのでSolarisでソースからインストールしてみたがなかなかうまくいかない。しかしパッケージがあることを発見。

http://dld.nsug.or.jp/xoops/modules/mydownloads/

上のサイトにあるxmmsパッケージはあっさりインストールすることが出来た。
こんな便利なサイトがあるなんてユーザグループのみなさんありがとう。
これでmp3の再生が可能になった。

でもxmmsって曲によって音飛びが発生するんだよなあ・・・

しかたないのでxmmsでプレイリストを作ってRealPlayer10で再生している。
まったく音飛びがないのでにんまりだがグライコいじれなくて寂しいっす。

atokxの起動キーを変更

TurboLinux10Fに付属のatokxを起動するには半角/全角キーを押すかCtrl+space。
しかしctrl+spaceはemacsのマークセットのキーバインドとかぶってしまってどうもatokxが優先されてしまう。。

これの回避方法としてctrl+spaceをshift+spaceに変更する。

# touch /usr/lib/im/locale/ja/atokserver/shift_space

からのshift_spaceファイルを作ればいい。

CentOS4でプリンタの設定

EPSON LP-8100はドライバがあったので設定を行った。

まずはドライバをダウンロード。

http://avasys.jp/

次にインストール方法の説明があるのでそのとおりに行う。

eplaser-cups-ppd-3.4.1.tgzとEpson-LP-8100-eplaser-jp.ppdをダウンロードしてインストール。
/usr/share/cups/model/ に必要なファイルをコピーすればいい。

その後CUPSを再起動

# service cups restart

ここまでできたら http://localhost:631 にアクセスしてプリンタの設定に取りかかる。

途中ではまったのがプロトコルのところ。
はじめLPDで設定していたがなかなかうまくいかず
プリンタにtelnetで接続したらIPPというプロトコルがあることを発見!
「View IPP Configuration」のところに書いてあるIPP URL を使えばいいことがわかった。

なのでLPDを使わずIPPを使う。
Device URI には telnet で調べたURIを入力してあとはちょちょっと設定。

テスト印刷が出てきたら無事終了。

印刷の設定は慣れていないのでとても難しい。

ドライバがないときどうすればいいのだろう・・・

2006年11月19日

rshの設定

CentOS4でrshサーバを構築するにはrsh-serverパッケージが必要。
xinetd配下で管理されるので以下のようにファイルを書き換える。

# vi /etc/xinetd.d/rsh
---
disable = no
---

そして再起動。

# service xinetd restart

rshを使えるリモートホストを記述する。

# vi /etc/hosts.equiv
---
111.111.111.111
---

これでIPアドレス111.111.111.111からのrshコマンドを受け付けるようになる。
うまくいかない場合は /etc/hosts.allow と /etc/hosts.deny の設定に問題があるかもしれない。

$ rsh ホスト名 date

上のコマンドの結果が正常に表示されたらOK。
ただしこのままではrootでrshが使えない。

rshサーバのrootのホームディレクトリに以下のようにファイルを作成する。

# vi ~/.rhosts
---
111.111.111.111
---

さらに、以下のようにpamの認証設定の一部をコメント化する。

# vi /etc/pam.d/rsh
---
#auth required pam_securetty.so
---

これで許可したリモートホストからroot権限でパスワードなしにコマンドを打つことが出来るようになる。
しかしifconfigコマンドなど一部のコマンドパスが通っていないのでパスを通しておく必要がある。
bashを利用する場合は以下の要領でパスを追加記述しておく。

# vi /etc/bashrc
---
PATH=$PATH:/sbin:/usr/sbin
---

これで許可したリモートホストからroot権限でパスワードなしでコマンドが打てるようになる。
セキュリティレベルがかなり低下するので注意が必要。

許可されたCentOS4マシンからrshコマンドを打ってみたら /usr/kerberos/bin/rsh が実行される。
これではうまくいかないので以下のコマンドで待避する。ほかにいい方法もあると思うが・・・

# mv /usr/kerberos/bin/rsh /usr/kerberos/bin/rsh.nouse

これでログインし直すと /usr/bin/rsh が使われるようになる。

LAMを使った並列プログラミング環境の構築

MPI(Message Passing Interface)ライブラリとしてLAMを使って並列プログラミング環境を構築する。

ノードとホストの設定がある。
ホストはプログラムを投入するマシンでノードは計算するマシン。
今回はホストにも計算をさせるのですべてに同じ設定をすればいい。

↓公式HPはこちら
http://www.lam-mpi.org/

OSはCentOS4。
候補としてredhat9,turbolinux8,fedoracore5,centos3など考えたが
姫野ベンチでテストした結果が一番よかったのがCentOS4だった。

公式HPから lam-7.1.2.tar.gz をダウンロードして作業を進める。

# tar zxvf lam-7.1.2.tar.gz -C /usr/local/src/ (-C:解凍先の指定)
# cd /usr/local/src/lam-7.1.2/
# ./configure --prefix=/usr/local/lam (--prefix:インストール先の指定)
# make
# make install

LAMをrshで利用するのでrshサーバの設定をする必要がある。
詳細はhttp://max01.skr.jp/blog/2006/11/rsh.htmlに書いた。
ただ、パスは以下のように /usr/local/lam/bin を追加する。

# vi /etc/bashrc
---
PATH=/usr/local/lam/bin:$PATH
---

一般ユーザhogeで利用する場合hogeのホームディレクトリに以下のファイルを作成。
LAMが利用可能なIPを記述するんです。
$ vi ~/lamhosts
---
xxx.xxx.xxx.xxx
xxx.xxx.xxx.yyy
---

LAMが使えるようになったか確認する。

$ recon -v ~/lamhosts

Woo hoo! というメッセージがでたらOK。

さっそくLAMを軌道しよう。

$ lamboot -v ~/lamhosts
---
LAM 7.1.2/MPI 2 C++/ROMIO - Indiana University

n-1<4780> ssi:boot:base:linear: booting n0 (xxx.xxx.xxx.xxx)
n-1<4780> ssi:boot:base:linear: booting n1 (xxx.xxx.xxx.yyy)
n-1<4780> ssi:boot:base:linear: booting n2 (xxx.xxx.xxx.zzz)
n-1<4780> ssi:boot:base:linear: finished
---
このようなメッセージが表示されればOK。
念のため確認のコマンドを打つ。

$ lamnodes
---
n0 hostname1:1:origin,this_node
n1 hostname2:1:
n2 hostname3:1:
---

今回3つのノードで試してみた。
あとはMPIプログラムを投入するだけだ。

$ mpirun -np 3 -s n0 program
(-np 3:3つのノードで処理する, -s n0:ノード番号0の実行プログラムを各ノードにコピー)

これでprogramが3台のマシンで実行されているはず!

-s オプションがあるおかげでNIS,NFS環境を構築しなくていいのでLAMは便利です。

プログラムの実行が終わったら以下のコマンドを実行してLAMを終了させる。

$ lamclean
$ wipe -v ~/lamhosts

2006年11月20日

システムの文字コードをEUCに変更する

他のサーバの文字コードがEUCでCentOS4からsshなどで接続した場合
文字化けを起こすのが面倒な場合CentOS4のシステムの文字コードをUTF-8からEUCにしましょう。

# vi /etc/sysconfig/i18n
---
LANG="ja_JP.eucJP"
---

これでシステムの文字コードがEUCになる。

# vi /etc/man.config
---
PAGER /usr/bin/more
---

これでmanコマンドが文字化けせずに表示される。

しかしいくつかのGUIアプリケーションの文字が化けてしまうが、
文字コードを元に戻してから操作するか、CUIで操作すれば特に問題はない。

2006年11月26日

NTFSへのアクセス

CentOS4は標準でWindowsXPのファイルシステムNTFSをマウント出来ない。
普通カーネルの再構築を行なうがrpmファイルを下記URLからダウンロードしてインストールすればアクセス出来るようになる。

http://www.linux-ntfs.org/

ダウンロードの際カーネルのバージョンを確認しておく必要がある。

$ uname -r
---
2.6.9-42.0.3.EL
---

RedHat Enterprise Linux 4 用のrpmパッケージがあるのでバージョンを確認してインストール。

# rpm -Uvh kernel-module-ntfs-2.6.9-42.0.3.EL-2.1.20-0.rr.10.0.i686.rpm

私の場合このようになる。
あとはWindowsXPパーティションをマウントする。

# mount -t ntfs /dev/hda1 /winnt

などと自分の環境にあわせて入力すればOK

2006年11月29日

MPICH2を使った並列プログラミング環境の構築

MPI(Message Passing Interface)ライブラリとしてMPICH2を使って並列プログラミング環境を構築する。HPC(High Performance Computing)クラスタの構築でもある。

↓MPICH2のHPから最新版をダウンロードしてくる。
http://www-unix.mcs.anl.gov/mpi/mpich/

現時点では mpich2-1.0.4p1.tar.gz になる。

早速ダウンロードしてインストールをすませる。

# tar zxvf mpich2-1.0.4p1.tar.gz -C /usr/local/src/
# cd /usr/local/src/mpich2-1.0.4p1/
# ./configure --prefix=/usr/local/mpich2

(prefix: 好みに応じてインストール場所を指定)
いろんなオプションがあるので確認してみるといいかと思う。

# make
# make install

インストールが終わったら環境の整理です。
今回mpich2の実行にrshを使うので計算マシンから各ノードマシンへrshが正常に機能するように設定しておく。rshクライアントを実行ホストに、rshサーバを計算ホストに構築する。
詳細は↓に記述した。

http://max01.skr.jp/blog/2006/11/rsh.html


次にmpich2用のコマンドが使えるようにパスを通しておきます。

# vi /etc/bashrc
---
PATH=/usr/local/mpich2/bin:$PATH
---

これで全ユーザのパスに追加出来ます。
もし自分だけでいい場合はホームディレクトリ直下にある .bash_profile を編集する。

$ vi ~/.bash_profile
---
PATH=/usr/local/mpich2/bin:$PATH
export PATH
---

次にホームディレクトリ直下に.mpd.hostsを以下のように記述する。

# vi ~/.mpd.conf
---
MPD_SECRETWORD=password
---

パスワードは任意。ただし全ノードで同じパスワードを指定しておく必要がある。
パーミッションの設定もしないとおこられる。

# chmod 600 ~/.mpd.conf

rootでもmpich2を使いたい場合は/etc/mpd.confを作る必要がある。

次はmpd.hostsに計算をさせるノードのIPアドレスを記入する。

# vi ~/mpd.hosts
---
xxx.xxx.xxx.11
xxx.xxx.xxx.12
---

念のため/etc/hostsファイルを見直す。エラーの原因になることが多い。
私は "failed to ping mpd on ..." というようなエラーに苦しめられた。
あと、無線LANではうまくいかないようで有線でやるとうまくいった。

# more /etc/hosts
---
127.0.0.1 localhost
192.168.0.x myhost.domain myhost
192.168.0.y remotehost1
---

127.0.0.1のところはlocalhostにしてホスト名は行を追加してIPアドレスといっしょに書きましょう。
これで準備OK。今回は2つのマシンで起動してみよう。

$ mpdboot (-v) -r rsh -n 2 (-f ~/mpd.hosts)

(-v:詳細表示 -n:ノード数)

確認は以下のコマンドを入力。

$ mpdtrace (-l)
---
hostname1
hostname2
---

確認できたらmpiプログラムを実行させてもいいしシェルコマンドを打ってもいい。

$ mpirun (-l) -n 2 hostname (-l:詳細表示 -n:実行ノード数)
---
hostname1
hostname2
---

rootだったらshutdownコマンドが打てて便利。
プログラムの実行が終わったら終了コマンドを入力。

$ mpdallexit

確認は ps aux | grep mpd などと打ってmpdプログラムが残っていないかみることが出来る。

2006年11月30日

MBR(Master Boot Record)がおかしくなった時の対処方法

ブートローダにgrubを使っている時の場合はgrub起動ディスクが必要。
あらかじめ作っておく必要があるのだがない場合は
他のLinux環境で作るなどの作業が必要。

CentOS4の場合フロッピードライブにフロッピーディスクを入れて以下のコマンドを入力。

# dd if=/usr/share/grub/i386-redhat/stage1 of=/dev/fd0 count=1
---
読み込んだブロック数は 1+0
書き込んだブロック数は 1+0
---

# dd if=/usr/share/grub/i386-redhat/stage2 of=/dev/fd0 seek=1
---
読み込んだブロック数は 202+1
書き込んだブロック数は 202+1
---

これで完成。
実際の使い方は、ちょっとめんどくさいが、/boot/grub/grub.confにかかれている内容そのまま。
だからCDブートLinuxなどで起動してCentOS4のパーティションをマウントしてgrub.confをみてみよう。

出来たフロッピーでMBRを新たに書き換える場合はフロッピーからブートしてプロンプトが出たところで次のコマンドを順に打つ。
適宜環境にあわせて値を変更してください。

grub> root (hd0,1) <--- ハードディスク1番目の2つ目のパーティションの場合
grub> kernel /boot/vmlinuz-2.6.9-42.0.3.EL ro root=/dev/hda2 rhgb quiet
grub> initrd /boot/initrd-2.6.9-42.0.3.EL.img
grub> boot

これで起動する。
起動したら/boot/grub/grub.confを確認した後MBRを書き換えましょう。

# grub-install /dev/hda <--- ハードディスクの先頭領域にMBRを書き込み