第4期顛末 2010年1月22日

 2005年以降の日の目を見なかった書きかけのエントリーや、書き散らしたメモを読み返してみると、
テーマは 演算の高速化、 パーツの高機能化 と インデックス手法 の三つになります。いずれも形に
ならなかったわけですが、とりあえずのまとめということで・・・

1.演算の高速化 (それぞれサンプル・プログラムをテストしてみる程度まででした・・・)

 −1.演算のベクトル化+SIMD(MMX)活用

        これなんか、昨今のGPUの高性能化、長崎大のニュースなど、まだまだ検討の価値がありそうですね

スーパーコンピューティングの将来
http://www.artcompsci.org/~makino/articles/future_sc/face.html

GPUクラスタによる高性能計算技術の実証
http://www.riken.go.jp/r-world/research/results/2009/090807/index.html

 −2.ビット演算の高速化 (アセンブラ、FPUの活用等)

ビットを数える・探すアルゴリズム
http://www.nminoru.jp/~nminoru/programming/bitcount.html

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか
http://www.amazon.co.jp/exec/obidos/ASIN/4434046683/ref=ase_nakamuraminor-22/249-7723065-2179551

Hacker's Delight (本家英語サイト)
http://www.hackersdelight.org/

 −3.Cell プログラミング

久夛良木さんが描いた、世界中のCellが繋がる話は、実現しませんでしたね・・・
 

2.パーツの高機能化とインデックス手法 

 これは、今回の話しに繋がってくる部分ですが、当時は、部分解への分割方法の検討 にあるように、パーツ同士が重ならないようにパーツを探索することが前提で、そこから如何に効果的な枝刈りをするかに、いろいろ試して、あれこれ悩んでました。今見ると何のテストのために書いたか分からないソースコードが山ほど転がってます・・・ 

 また、パーツを闇雲に組み合わせてしまてしまうと、その組み合わせ自体が膨大になってしまい、それを一つ一つチェックするのでは、意味がないことがわかりました。そのため、各パーツの特性、他パーツとの相性といった情報を詳しく調べ、インデックス化する必要が出てきます。

 それを実現するには、Hashから始まり、ZIPやLZHといった圧縮ツールの内部で使っているインデックス辞書が有効ではないかと、フリーソフトのソースコードやトラ技等の記事を読んだりしてましたが、理解&使いこなすところまでは行ってません・・・

inserted by FC2 system