最適化問題に対する超高速&安定計算

クラスタ計算機やスーパーコンピュータ上での大規模最適化問題やグラフ探索などの研究のお話が中心

Gurobi (Linux) の実行

2010年07月31日 14時09分02秒 | Weblog
Gurobi の Linux 実行環境は以下のページによると Ubuntu 8.x, 9.x, 10.x, RedHat 5.x, SUSE 11 となっている。

http://www.octobersky.jp/gurobi/platforms.html

しかし、こちらで試したところ RedHat クローンの CentOS 5.5 は当然として、Fedora 13, Vine Linux 5.1, Debian 505 でも Gurobi 3.0.1 は動作した。ただし、これらの OS での実行はおそらくサポート外になるので注意。
コメント

Gurobi (Linux) のインストール

2010年07月30日 12時34分02秒 | Weblog
Gurobi Linux 最新版(3.0.1) のインストールを行ったので、作業メモを書いておく。

1: インストール場所を決める。ここでは /opt とする。環境変数の設定を以下のように行う。

su - (root になる)
emacs -nw /etc/bashrc

/etc/bashrc の中に以下の環境変数を書き込む
export GUROBI_HOME=/opt/gurobi301/linux64
export PATH="${PATH}:${GUROBI_HOME}/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"
export GRB_LICENSE_FILE=${GUROBI_HOME}/gurobi.lic

書き込んだら emacs を終了して以下のコマンドを実行
source /etc/bashrc


2: CD-ROM(あるいは USB メモリ)から gurobi3.0.1_linux64.tar.gz を /opt 以下にコピー

ファイルを展開する
tar xvzf gurobi3.0.1_linux64.tar.gz


3: ライセンスキーの取得
grbprobe コマンドを実行して、画面に表示された情報を license@octobersky.jp 宛にメールで送る。1マシンにつき1回送れば良いので、すでに誰かが送っている場合には2回以上送付しないこと。

HOSTNAME=mymachine
HOSTID=3e03ab3c
USERNAME=Jones

ライセンスキーが送られてきたら、GUROBI_HOME=/opt/gurobi301/linux64 にコピーする。よってライセンスキーは /opt/gurobi301/linux64/gurobi.lic となる。


4: トークンサーバーの起動
3 の grbprove を実行したユーザでトークンサーバを起動する。

/opt/gurobi301/linux64/bin/grbd &


5: gurobi の起動。gurobi.sh を起動する。
[fujisawa@opt ~]$ gurobi.sh
Python 2.5.2 (r252:60911, Jul 31 2008, 17:31:22)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Gurobi Interactive Shell, Version 3.0.1
Copyright (c) 2010, Gurobi Optimization, Inc.
Type "help()" for help

gurobi>

フローティングライセンスで他のマシンから、上記のマシンをトークンサーバとして使用する場合には上記の 4 の作業は省略する。
コメント (2)

クラスタ計算機 好調な売れ行き

2010年07月29日 00時06分23秒 | Weblog
仕分けられたスパコンの廉価版が好調と書いてあったので、Venus 搭載の廉価版が発売されたのかと一瞬思ったが、CPU は普通の Intel Xeon だったので、厳密に言うと仕分けられたスパコンの廉価版ではない。好調な売れ行きに少しは貢献出来たかなと思うのだが、別に数億、数十億円も使って高価なスパコンを導入しなくても、数千万円のクラスタ計算機でもかなり大規模な計算を高速に行うことができる。日本のスパコンはかなり細かい単位で切り売りされて貸し出されるので、超大型のスパコンでも1ユーザが使用できるのは数千万円のクラスタ計算機とあまり変わらないことが多い。
コメント

SDPA クラスタ異常 その4

2010年07月28日 23時34分50秒 | Weblog
sdpa03 ノードについては、結局 E2119 というエラーが発生したので、Dell にメモリの交換を依頼して、12 枚ある DIMM の中で 1 ~ 6 までをまとめて交換を行った。その結果 sdpa03 も正常に動作するようになったので、再び SDPA クラスタも 16 台構成にして、量子化学 SDP に対する大規模実験を再開した。

E2119 : Fatal SB Mem CRC
サウスバウンド側の FBD メモリサブシステムリンクにおける接続の 1 つに障害が発生しました。

コメント

SDPA, SDPARA と GPU その2

2010年07月27日 12時15分18秒 | Weblog
以前に以下のような見通しを書いたのだが、1の場合は行列積だけでなく前後の計算もまとめて GPU 側で行う必要があるが、現在では GPU 側のメモリ不足であまり大きな問題を扱うことができないと推測される。2の場合も含めて SDPARA の大規模計算では Parallel Cholesky 分解等がボトルネックになっていないので、GPU を使うメリットは無し。3については上記の1の問題とバンド幅が倍になる問題が複合するのでさらに複雑になる。
というわけで、やはり PCI-Ex. のバンド幅や GPU 側(Tesla C2050)のメモリの少なさが致命的である。無理して GPU を使わなくても CPU だけでも十分高速化は可能である。

1:Max Cut 問題(グラフ分割問題でも可)に対する SDP では、GPU(Fermiなど)の使用によって数倍に高速化できる可能性がある。
2:量子化学の SDP を解くときには GPU を用いるメリットは無い。
3:4倍精度のエミュレーションが GPU 上である程度高速に演算できるのであれば、SDPARA と スパコン と GPU の組み合わせは非常に有望。ただしソフトウェアの整備はかなり大変になる。
コメント (6)

SDPA クラスタ異常 その3

2010年07月26日 04時09分11秒 | Weblog
Dell PowerEdge 用の診断ツールを用いてログを収集しているが、異常が発生しているノードでは正常に情報の収集が出来ないようだ。別のノードにメモリに関するエラーが発生しているが、こちらは正常にログの収集が出来ている。こちらのノードはメモリ交換が必要となるため、一旦 SDPA クラスタでの計算は停止する必要があるが、sdpa03 に関する異常の原因は不明のままである。通常のログファイル内にも特に異常は発見されていない。

コメント

中央大学サイエンスセミナー 2010

2010年07月25日 01時47分03秒 | Weblog
サイエンスセミナー 2010 はすでに申し込みが終了しておりますが、抽選も終わり受講者も決定しました。本当はもう少し多くの受講生を受け入れたいところですが、設備や予算の関係で難しいところがあります。

1. 主催:中央大学理工学部
2. 後援:文京区、文京区教育委員会、財団法人 文京アカデミー
3. 日時:2010年8月23日(月)11:00~17:00
4. 会場:中央大学後楽園キャンパス
5. 対象:中高生
6. 参加費:無料(昼食付き)
7. スケジュール

* 11:00~  受付(3号館10階会議室)
* 11:30~  開会式
* 12:00~  昼食会(学生食堂体験)
* 13:00~  実験教室(下表参照)
* 16:00~  修了式 Tea Party
コメント

SDPA クラスタ 15ノード v.s. 16 ノード

2010年07月24日 01時07分20秒 | Weblog
SDPA クラスタは 1 ノードで異常が発生したため現在は15ノードで計算を行っている。16から15ノードに減ってどの程度速度が遅くなっているかを以下に示した。

15ノード
264285.61 秒

16ノード
234732.79 秒

異常が発生しているノードは出来るだけ早く原因を特定して、可能であれば復帰させる予定である。
コメント

イノベーションジャパン 2010

2010年07月23日 01時00分39秒 | Weblog
イノベーションジャパン 2010 において、以下の内容で研究展示を行うことになった。会場ではインターネット(有線)が使用出来ないという問題があるようだが、無線でデモなどに対応する予定である。

大規模動的ネットワークに対する最短路高速計算システム
コメント

SDPA Family

2010年07月22日 23時28分21秒 | Weblog
SDPA Family には主要なソフトウェアが以下のように7つある。しかし、SDPA-C と SDPARA-C は特殊な用途のみで使用するので実際には5つになる。

○SDPA (SemiDefiniteProgramming Algorithm)
小規模から大規模な問題までを高速に解く中心的なソフトウェア。通常はこのソフトを用いることが多い。マルチコア化への対応により、かつてのスパコン上でのSDPARA並みの性能が出る

○SDPARA (SDPA paRAllelversion)
SDPAのボトルネックになっている部分をMPI を用いて並列化。超大規模な問題向き。実行にはPC クラスタやスパコンなどが必要。

○SDPA-GMP, SDPA-QD, SDPA-DD
SDPA(倍精度)では精度が足りないときに用いる。SDPA-GMP(任意精度), SDPA-QD (擬似8倍精度), SDPA-DD(擬似4倍精度)。ただし速度はSDPA よりもかなり遅くなる

○SDPARA-C, SDPA-C
行列補完の理論を用いて特殊な疎性を持つ問題に対応。SDPA-C をMPI 並列化したのがSDPARA-C

○http://sdpa.indsys.chuo-u.ac.jp/sdpa/ より入手可能
コメント

京都大学数理解析研究所研究集会 最適化モデルとアルゴリズムの新展開

2010年07月21日 23時18分35秒 | Weblog
京都大学数理解析研究所研究集会 最適化モデルとアルゴリズムの新展開 が 7月21日から開催される。残念ながら最近では発表者と参加者が非常に少なめになっている。確かに聞いてみたいと思える発表が少ないのが現状。SCOPE 合宿などは参加者が増えるようにいろいろと工夫しているが、ただ単に発表を募集するだけでは難しいのではないだろうか。

日時: 2010年7月21日(水)13:00~2010年7月23日(金)15:00
場所: 京都大学数理解析研究所420号室
京都市左京区北白川追分町
市バス 京大農学部前または北白川 下車
コメント (2)

SDPA クラスタ異常 その2

2010年07月20日 22時47分41秒 | Weblog
現在 SDPA クラスタの3番目のノードに異常が発生している(直接ハードを見ることができる状況では無いのでハードの現状は不明だが)。ログインも出来るし、ログ等も見た感じでは特に異常は発生していないようだが、ソフトウェアの実行が異様に遅くまたファイルアクセスも遅い。
とりあえず、このノードを並列計算用のノードから削除して、現在は 15 ノード x 8 コア = 120 コアで計算を行っている。

○ SDPA クラスタ
16 Nodes, 32 CPUs, 128 CPU cores;
CPU : Intel Xeon 5460 3.16GHz (quad cores) x 2 / node
Memory : 48GB / node
NIC : GbE x 2 and Myrinet-10G x 1 / node
OS : CentOS 5.5 for x86_64
コメント

SDPA クラスタ異常

2010年07月19日 02時18分18秒 | Weblog
大規模な量子化学分野の SDP を解きつづけている SDPA クラスタだが、現在は通常に並列計算を行うことができなくなっている。どこか特定のノードが止まっている(あるいは暴走している)ことは無いのだが、現在は SDPARA の実行を中止している。このクラスタも構築後2年ということで、そろそろハードウェア的に様々な異常が発生しても不思議では無いが、新クラスタ構築後にこの SDPA クラスタをどのようにするか(停止、あるいは部分的、全面的に稼働するか)については判断が難しいところになる。
コメント (2)

SDPA (long int = 64bit) 化の完了

2010年07月18日 01時29分43秒 | Weblog
SDPA 7.3.2 の完全 64bit 化の作業とテストを行っていたが、ほぼ完了した。これまで特にバグやメモリリーク等は確認されていない。性能(速度、メモリ使用量、解ける問題の大きさ)などは満足できるレベルに達したが、様々な理由によりしばらく一般への配布は行わない方針となっている。次は SDPARA の完全 64bit 化だが、これは大変そうである。

コメント

CUDA Toolkit 3.1

2010年07月17日 02時02分04秒 | Weblog
CUDA Toolkit 3.1 がリリースされている。今度は Fedora 12 にも対応している。インストールと設定方法は以前とほぼ同じで次の通りになる。

1: CUDA のダウンロード (RHEL5.x(CentOS 5.x) x86_64 の場合)
CUDAドライバ : devdriver_3.1_linux_64_256.35.run
CUDA ツールキット : cudatoolkit_3.1_linux_64_rhel5.4.run
CUDA SDK : gpucomputingsdk_3.1_linux.run

2: NVIDIA ドライバのインストール
yum install kernel-devel
yum install freeglut freeglut-devel
init 3
sh devdriver_3.1_linux_64_256.35.run
init 5

3: CUDA のインストール
sh cudatoolkit_3.1_linux_64_rhel5.4.run
sh gpucomputingsdk_3.1_linux.run
/etc/ld.so.conf に /usr/local/cuda/lib と /usr/local/cuda/lib64 を追加
ldconfig
PATH に /usr/local/cuda/bin を追加

4: サンプルファイルの make
cd NVIDIA_GPU_Computing_SDK
cd C
make
./bin/linux/release 以下に様々なバイナリが出来ている
コメント (3)