綾小路龍之介の素人思考

Misc > High Performance Computing(HPC)

家のだめマシンもクラスタリングすればどうにかなるのかの実験をしてみたくなった。まぁね、お金を出して解決するよりも今あるものをうまいこと使いましょうという話です。


目次


1.1 始めに

とにかくやってみないとわからないことが多い。どんなプログラムでは効果的だがどんなプログラムでは効果的でないのか。結局のところ使う人それぞれが別のプログラムを使うわけなので、個々人が試して見なさいということ。それが一番。こういうネタは基本的にああプロンプト帰ってくるまでに時間かなるなぁとか思っていると其の間につい調べちゃうんだよね。

自分で書くプログラムはMPIにせよマルチスレッドやマルチプロセスとか自由に出来るわけなんだけど、出来あいのプログラムってのは変えにくい。でもやっぱり出来合いのプログラムであっても速くなってほしい。そんなときの解決策の一つとしてSSIというものが実用的なら僕はすごくうれしい。

とりあえずキーワードの羅列だけ。openMosix,ClusterKnoppix,OpenSSI,Kerrighed GridEngine,Rocks Clusters,SCore,巫女ぐにょLinuxスイッチングハブ,,SMPマシン(複数のプロセッサをもつマシン),Beowulf

  1. みっし~の研究生活: Linux HPCクラスターの構築(その2)
  2. Amazon.com: High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI (Nutshell Handbooks): Joseph Sloan: Books
  3. 負荷分散ソフトウエアGrid Engine
  4. rubyneko - 第10回 関西 Debian 勉強会 行ってきました
  5. PC Cluster Consortium
  6. OpenMosixによる計算クラスタの構築
  7. MIKO GNYO/Linux
  8. MIKO GNYO/Linux: 検索結果
  9. kuroyagi さんのノートブック

1.1.1 SSI(Single Server Image)環境

調べた感じだとしたのように5つほど選択肢があるようだ。これらから派生していくつかのディストリビューションがある。ClusterKnoppixは openMosixを組み込んだカーネルを用いたKnoppix。僕にとって重要なのはクラスタの運用中にノードの抜き差しが出来るかどうかだ。

  1. openMosix(LinuxPIM)
  2. Kerrighed
  3. OpenSSI
  1. openmosix|Kerrighed|OpenSSI|LinuxPMI - Google 検索
  2. オープンソースのクラスター管理システム - SourceForge.JP Magazine
  3. Linux.com :: A survey of open source cluster management systems
  4. coLinuxとopenMosixで異機種混合のクラスターを構成する
  5. スラッシュドット・ジャパン | openMosixでHPCクラスタはいかが?

1.1.1.1 Kerrighed

とりあえず上に上げた3つの中で最新の更新のものKerrighedを試してみる。debian etchで環境構築する。まずはInstalling Kerrighed 2.3.0 - Kerrighedをみつつカーネルのコンパイルを行う。なんだか余分なパッケージを大量に入れたような気もするが。

$ su -
erter
# apt-get install xmlto
# apt-get install lsb
# apt-get install rsync
# apt-get install pkg-config
# apt-get install libtool
# apt-get install gcc
# apt-get install bzip2
# cd /usr/src/
# wget http://kerrighed.gforge.inria.fr/kerrighed-latest.tar.gz
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
# ls
kerrighed-2.3.0.tar.gz  linux-2.6.20.tar.bz2
# tar zxf kerrighed-2.3.0.tar.gz
# tar jxf linux-2.6.20.tar.bz2
# ls
kerrighed-2.3.0  kerrighed-2.3.0.tar.gz  linux-2.6.20  linux-2.6.20.tar.bz2
# cd kerrighed-2.3.0
# ./configure --with-kernel=/usr/src/linux-2.6.20
# make patch
# make defconfig
# make kernel
# make
# make kernel-install
# make install
# ls -l /boot/vmlinuz-2.6.20-krg
-rw-r--r-- 1 root root 2488432 Jan  4 12:38 /boot/vmlinuz-2.6.20-krg
# ls -l /boot/System.map
lrwxrwxrwx 1 root root 21 Jan  4 12:38 /boot/System.map -> System.map-2.6.20-krg
# ls -l /lib/modules/2.6.20-krg
total 52
lrwxrwxrwx 1 root root   21 Jan  4 12:38 build -> /usr/src/linux-2.6.20
drwxr-xr-x 2 root root 4096 Jan  4 12:49 extra
drwxr-xr-x 2 root root 4096 Jan  4 12:38 kernel
-rw-r--r-- 1 root root   45 Jan  4 12:49 modules.alias
-rw-r--r-- 1 root root   69 Jan  4 12:49 modules.ccwmap
-rw-r--r-- 1 root root   44 Jan  4 12:49 modules.dep
-rw-r--r-- 1 root root   73 Jan  4 12:49 modules.ieee1394map
-rw-r--r-- 1 root root  141 Jan  4 12:49 modules.inputmap
-rw-r--r-- 1 root root   81 Jan  4 12:49 modules.isapnpmap
-rw-r--r-- 1 root root   74 Jan  4 12:49 modules.ofmap
-rw-r--r-- 1 root root   99 Jan  4 12:49 modules.pcimap
-rw-r--r-- 1 root root   43 Jan  4 12:49 modules.seriomap
-rw-r--r-- 1 root root 3217 Jan  4 12:49 modules.symbols
-rw-r--r-- 1 root root  189 Jan  4 12:49 modules.usbmap
lrwxrwxrwx 1 root root   21 Jan  4 12:38 source -> /usr/src/linux-2.6.20
# ls -l /etc/default/kerrighed
-rwxr-xr-x 1 root root 327 Jan  4 12:49 /etc/default/kerrighed
# ls -l /lib/modules/2.6.20-krg
total 52
lrwxrwxrwx 1 root root   21 Jan  4 12:38 build -> /usr/src/linux-2.6.20
drwxr-xr-x 2 root root 4096 Jan  4 12:49 extra
drwxr-xr-x 2 root root 4096 Jan  4 12:38 kernel
-rw-r--r-- 1 root root   45 Jan  4 12:49 modules.alias
-rw-r--r-- 1 root root   69 Jan  4 12:49 modules.ccwmap
-rw-r--r-- 1 root root   44 Jan  4 12:49 modules.dep
-rw-r--r-- 1 root root   73 Jan  4 12:49 modules.ieee1394map
-rw-r--r-- 1 root root  141 Jan  4 12:49 modules.inputmap
-rw-r--r-- 1 root root   81 Jan  4 12:49 modules.isapnpmap
-rw-r--r-- 1 root root   74 Jan  4 12:49 modules.ofmap
-rw-r--r-- 1 root root   99 Jan  4 12:49 modules.pcimap
-rw-r--r-- 1 root root   43 Jan  4 12:49 modules.seriomap
-rw-r--r-- 1 root root 3217 Jan  4 12:49 modules.symbols
-rw-r--r-- 1 root root  189 Jan  4 12:49 modules.usbmap
lrwxrwxrwx 1 root root   21 Jan  4 12:38 source -> /usr/src/linux-2.6.20
# ls -l /etc/default/kerrighed
-rwxr-xr-x 1 root root 327 Jan  4 12:49 /etc/default/kerrighed
# ls -lR /usr/local/share/man*
/usr/local/share/man:
total 36
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man1
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man2
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man3
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man4
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man5
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man6
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man7
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man8
drwxr-sr-x 2 root staff 4096 Jan  4 12:49 man9

/usr/local/share/man/man1:
total 20
-rw-r--r-- 1 root staff  886 Jan  4 12:49 checkpoint.1
-rw-r--r-- 1 root staff 1314 Jan  4 12:49 krgadm.1
-rw-r--r-- 1 root staff 2334 Jan  4 12:49 krgcapset.1
-rw-r--r-- 1 root staff  813 Jan  4 12:49 migrate.1
-rw-r--r-- 1 root staff  894 Jan  4 12:49 restart.1

/usr/local/share/man/man2:
total 12
-rw-r--r-- 1 root staff 1322 Jan  4 12:49 krgcapset.2
-rw-r--r-- 1 root staff 1349 Jan  4 12:49 migrate.2
-rw-r--r-- 1 root staff 1248 Jan  4 12:49 migrate_self.2

/usr/local/share/man/man3:
total 0

/usr/local/share/man/man4:
total 0

/usr/local/share/man/man5:
total 4
-rw-r--r-- 1 root staff 1838 Jan  4 12:49 kerrighed_nodes.5

/usr/local/share/man/man6:
total 0

/usr/local/share/man/man7:
total 8
-rw-r--r-- 1 root staff 2055 Jan  4 12:49 kerrighed.7
-rw-r--r-- 1 root staff 2900 Jan  4 12:49 kerrighed_capabilities.7

/usr/local/share/man/man8:
total 0

/usr/local/share/man/man9:
total 0
node01:/usr/src/kerrighed-2.3.0# ls -l /usr/local/bin/krgadm
-rwxr-xr-x 1 root staff 21315 Jan  4 12:49 /usr/local/bin/krgadm
node01:/usr/src/kerrighed-2.3.0# ls -l /usr/local/bin/krgcapset
-rwxr-xr-x 1 root staff 21058 Jan  4 12:49 /usr/local/bin/krgcapset
node01:/usr/src/kerrighed-2.3.0# ls -l /usr/local/bin/migrate
-rwxr-xr-x 1 root staff 11358 Jan  4 12:49 /usr/local/bin/migrate
node01:/usr/src/kerrighed-2.3.0# ls -l /usr/local/lib/libkerrighed.*
-rw-r--r-- 1 root staff 36258 Jan  4 12:49 /usr/local/lib/libkerrighed.a
-rwxr-xr-x 1 root staff   843 Jan  4 12:49 /usr/local/lib/libkerrighed.la
lrwxrwxrwx 1 root staff    21 Jan  4 12:49 /usr/local/lib/libkerrighed.so -> libkerrighed.so.1.0.0
lrwxrwxrwx 1 root staff    21 Jan  4 12:49 /usr/local/lib/libkerrighed.so.1 -> libkerrighed.so.1.0.0
-rwxr-xr-x 1 root staff 28805 Jan  4 12:49 /usr/local/lib/libkerrighed.so.1.0.0
node01:/usr/src/kerrighed-2.3.0# ls -l /usr/local/include/kerrighed
total 56
-rw-r--r-- 1 root staff   810 Jan  4 12:49 capabilities.h
-rw-r--r-- 1 root staff   840 Jan  4 12:49 capability.h
-rw-r--r-- 1 root staff   601 Jan  4 12:49 checkpoint.h
-rw-r--r-- 1 root staff   197 Jan  4 12:49 comm.h
-rw-r--r-- 1 root staff  1054 Jan  4 12:49 hotplug.h
-rw-r--r-- 1 root staff   233 Jan  4 12:49 kerrighed.h
-rw-r--r-- 1 root staff 13742 Jan  4 12:49 kerrighed_tools.h
-rw-r--r-- 1 root staff  1163 Jan  4 12:49 krgnodemask.h
-rw-r--r-- 1 root staff  1459 Jan  4 12:49 proc.h
-rw-r--r-- 1 root staff   405 Jan  4 12:49 process_group_types.h
-rw-r--r-- 1 root staff  1494 Jan  4 12:49 types.h
# mkinitramfs -o /boot/initrd.img-2.6.20-krg 2.6.20-krg
# vi /boot/grub/menu.lst
default	3
title           Debian GNU/Linux, kernel 2.6.20-krg
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.20-krg root=/dev/hda1 ro session_id=1
initrd          /boot/initrd.img-2.6.20-krg
savedefault
# ifconfig
# echo "session=1">> /etc/kerrighed_nodes
# echo "nbmin=1">> /etc/kerrighed_nodes
# echo "127.0.0.1:0:lo">> /etc/kerrighed_nodes
# cat /etc/kerrighed_nodes
session=1
nbmin=1
127.0.0.1:0:lo

とりあえずここまで。まだ動いてはいない。何かがおかしいのだがそれが何かわからない状態。

  1. ocs/Howto/Kerrighed - Mandriva Community Wiki
  2. kerrighed installation how to | In da Wok ......
  3. Installing Kerrighed 2.2.0 - Kerrighed
  4. Main Page - Kerrighed
  5. grub menu.lst default - Google 検索
  6. GNU_GRUB
  7. Grubでデュアルブート時のデフォルト(標準)起動OS設定
  8. session_id kerrighed menu.lst - Google 検索
  9. Tutorial: Kerrighed | Bioinformatics
  10. krg_DRBL - Grid Architecture - Trac
  11. Linux安裝入門與基本管理

1.1.2 Sun Grid Engine

マシンが増えると、どうにかして全部使いたくなります。まぁリーズナブルな時間、1月とか、かかる計算も、死んでるマシンを追加すれば20日くらいに短縮できるかもしれない。ああ。お金がないって素敵。色々と工夫するから。

せっかくなので、最新版をもらってくる。Sun Grid Engine 6.2を。このときSunのアカウントが必要。古めの版にはアカウント不必要。Linux版をダウンロードしておく。

  1. Sun Grid Engine の機能詳細
  2. Sun Grid Engine(SGE)利用法 | スーパーコンピュータ | ヒトゲノム解析センター
  3. gridengine: ホーム
  4. gridengine: Grid Engine HOWTOs

1.1.2.1 マスターホストのセットアップ

まずはSGEをインストールするディレクトリを作る。

# mkdir -p /opt/sge62

作ったディレクトリを$SGE_ROOT環境変数にセットする。

# export SGE_ROOT=/opt/sge62

SGEの管理者を作る。

# useradd sgeagmin

ダウンロードしてきたファイル(ここではx86アーキテクチャ)を解凍。

# tar zxf ge62_lx24-x86.tar.gz
  1. Ubuntu でグリッドコンピューティング - May the Source be with you

1.2 hudsonとかTheSchwartzとか

コンパイルやテストをした後にコミットしていると、コンパイルとテストに時間がかかってしまう場合にあまり効率が良いとは言えない。ということでCIと呼ばれる考え方がある。それを実現するのにhudsonというソフトがあるそうな。コンパイルとテストの前にどんどんSubversionのようなCVSリポジトリのbranchesにコミットして、hudsonにコンパイルとテスト用のスクリプトを起動させて、コンパイルとテストが成功したら自動的にtrunkにマージするとかの処理を自動的に出来るようにするのかな。

ジョブキューサーバというものもあるわけで、これをやれと命令したらそれが終了するまでシェルが帰ってこないのは嫌なので、やれという命令はいったんキューイングされて、暇になったときに自動的に走らされるということ。これを実現するのが、TheSchwartzかな。

話は変わるけどジョブスケジューラとして、Torqueとかもあるそうな。


サイトマップ

  1. CSS > Webサイトのレイアウトの話
  2. DVDリッピングしてaviファイルにするときの計算方法
  3. Debian > インストールメモ
  4. Memo > One Line Diary
  5. Memo > To-Doリスト
  6. Memo > iswebの自動挿入広告の文字コードに関する考察
  7. Memo > リンクとメモ
  8. Memo > 物理屋の独り言
  9. Misc > High Performance Computing(HPC)
  10. PC過去の遺物集
  11. Perl > 1行スクリプト覚書 with Active Perl
  12. Perl > Perl実験室でWeb雑考
  13. Perl > XML::TreePPでXMLサイトマップファイルを生成
  14. Perl > e.cgi のページ ProjectRotation8
  15. Perl > クエリを連想配列で受け取るスマートな方法
  16. Perl > サーバーにアップロードしたcgiのエラーチェック
  17. Perl > ブリコラージュ的 cgi
  18. Programing > プログラムの素人が不思議に思ったこと
  19. Services > Gmail Tips
  20. Services > YourFileHostダウンローダ
  21. Services > twitterはじめました。
  22. Tech > MathMLを使ってみる
  23. Tech > Windows 2000 Professional でLaTeX組版システムを使う
  24. Tech > coLinuxの導入
  25. Tech > サイトのミラーリング
  26. Terapadで作るLaTeX統合環境
  27. Tools > Opera > 設定の諸々
  28. Tools > bashのメモ
  29. Tools > lit2ptoのページ
  30. Tools > vimの設定とtips
  31. Tools > よく使う機能のメモと設定のメモ
  32. VMware > ホストOSがWindows XP Home SP2でゲストOSがVine Linux 4.1
  33. Vine > SSHの暗号化経路を経由してSambaサーバの共有ディレクトリをマウント
  34. Vine Linux > LaTeXでpdf文書作成
  35. Vine Linux > Libretto L1に載せる
  36. Vine Linux > SSH関係の諸々メモ
  37. Vine Linux > サーバを立てたときのメモ
  38. Vine Linux > ソフトウェアRAID
  39. Vine Linux > デスクトップとして使う場合に必要な設定
  40. Wanderlust > inter7でIMAP4
  41. Web Etcetera > サーバー上でファイルを直接編集することについて
  42. Web Etcetera > 検索エンジンが自分のサイトをどのように認識しているか
  43. Web Etcetera > 無料ホームページスペースの広告削除は真か偽か
  44. Winamp > StreamRipperで全自動リッピング
  45. Winamp > タスクマネージャを使って目覚まし時計
  46. Windows > robocopyでフォルダ間同期
  47. Windows > 手動でコーデックをインストールする
  48. gnuplotのプロットギャラリー
  49. rsyncでディレクトリの内容を同期する
  50. wgetのメモ
  51. ネットワーク上にメモ帳を置く
  52. ハードウェア > HDDの再利用
  53. ハードウェア > 安定で快適なマシンはハードから
  54. ブリコラージュ的メールマガジン一括登録解除方法
  55. 初めに
  56. 情報基礎演習UNIX
  57. 窓たちと正く付き合うにはショートカットキーから

コメント


pin

[PR]I肢ŎdӒ:lCI肢wق̊فx