研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

ヒープ付きダイクストラ法。

2007-09-16 05:44:42 | Weblog
卒業研究のときに作成したプログラムものを、この前頂いたプログラムを参考に改善してみた。
異なる点は以下のとおりである。

            自分          頂いたプログラム
1、ヒープの実装方法 ポインタ    or   配列
2、メモリ確保方法  ノード単位   or   アーク単位
3、動的静的?    動的確保    or   静的確保
4、変数の定義    グローバルなし or   グローバル
5、実行方法     始点終点    or   クエリファイル
6、グラフファイル  Dimacsそのまま or   修正Dimacs(ソート&数字のみ)

今回、2のメモリの確保方法をアーク単位にすることでかなりのメモリ消費を抑えるとともに、5のクエリファイルを導入することでより実行しやすいように改善された。またメモリ消費もすくなったので、全体的に動作が軽くなったといえる。また6のように予めグラフファイルにソート等を施すことで、データ入力が大きく改善された。

例に「USA-road-d.FLA.gr」という、点数1,070,376 枝数2,712,798 のグラフデータから、以下のようなクエリファイルを用いて実行した。



5       // クエリ数
1 6      // 1 から 6 まで
1 76     // 1 から 76 まで
1 376     // 1 から 376 まで
1 70376   // 1 から 70376 まで
1 1070376  // 1 から 1070376 まで



         実行時間(ファイル入力は含めない)
頂いたプログラム 1000[ms]前後
作ったプログラム 500[ms]前後


前処理などは行っていないので、これからどのような展開になるか楽しみだ。

行列積演算3。

2007-09-15 05:22:00 | Weblog
Cell での行列積演算を扱ってきたが、Flag で同期をすることはやはりうまくいかない。とりあえず 2048 x 2048 に固定してされた行列積プログラムを作成してみて、その性能を検証してみた。前回のプログラムはかなり大きな行列 10,000 x 10,000 ~を想定していたのだが、そもそも PlayStation3 は 256MB しかメモリが持っていないので、ちょうどよい大きさにしてしまった。 16KByte(double型で2048要素) までは1度にDMA 転送できるので、Aの一部とBを1行ずつ、 GET(DMA 転送)してきて、結果を PUT(DMA 転送)する。この方法ならばPPEをできるだけ使わないで、処理できる。前回の Flag のうまくいかないところの原因は分かっていないが、そもそも各処理がほとんど同じくらいでは、Flagを使うことが有効ではないため、この方法を用いることがよいといえる。

■扱うサイズ : 2048 x 2048 (double, 100% 密)
■実験環境 gcc -O3
 [1] CPU : Core2Duo 2.4GHz, Mem : 768MByte
 [2] PPEのみ(PS3)
 [3] 6SPE (SIMDあり, Single Bufferのみ)
■実行結果
 [1] [2] [3]
 35940[ms] / 48737[ms] / 5266[ms]

倍精度演算は得意ではないが、それでも5秒強で実行し終わることができる。実行結果はそれぞれ平均実行時間である。[3] は SPE context などの準備時間もいれている。またダブルバッファを用いていないので、更に高速化は可能である。

○これからやること。
1.Mailbox 機能による同期処理。
2.アラインされた動的メモリ確保。
3.以前に行った任意精度を用いて、float-float 、 quad-float などの任意精度行列演算。
4.BLAS との比較。
5.ダブルバッファを用いた高速化。

IME エラー。

2007-09-05 10:27:25 | Weblog
Windows Vista に触れる機会があった。なんらかの原因で変換が出来なくなってしまったらしく、文章を変換しようとすると、カナとカタカナのみ。単語のみどうにか変換できるのだが、このままでは使い物にならない。とりあえず、google 先生に聞けば教えてくれると思い検索してみると、「Office IME 2007 で入力した文字を漢字に変換できない場合の対処方法」というページがすぐ見つかる。

以下のように、今回の現象、解決方法が記述されているが、「コンピュータを強制的に終了した」という表現はどうかと思う。ワケ分からんな状態になって”落とさなければいけない”状態になったり、勝手に落ちてしまうのは、そちらに原因があると思うのだが。

ソフトウェアが強制終了する際に出るメッセージも「俺は悪くない、悪いのはソフトのほうだ」と、確かにそうかもしれないが、カチンとくる。気に入っているものはそうでもないが、不信感があるとちょっとしたことでも気になってしまう。

ちなみにこのような挑戦的な画像もある。



Office IME 2007 で入力した文字を漢字に変換できない場合の対処方法

現象
Microsoft Office IME 2007 で文字を入力する際、変換候補の一覧にひらがなやカタカナのみ表示されて、漢字に変換できないことがあります。この現象は、次の条件に当てはまる場合に発生することを確認しています。
. 電源ボタンを長押しするなどの操作を行い、コンピュータを強制的に終了した
. Windows にログオンした後、Internet Explorer 7.0 で 1 度も Office IME 2007 を使用することなく [学習情報の消去] ボタンをクリックした
. ベータ版 Office IME 2007 をインストールしていたコンピュータに、リリース版の Office IME 2007 をインストールした

解決方法
この問題を解決するには、Office IME 2007 修正プログラム パッケージをインストールし、その後に辞書の修復を行います。Office IME 2007 修正プログラム パッケージを適用せずに、この問題を回避するには、後述する「回避策」を確認します。