Visual Studio 2010 Expressでのテスト

試してみると,なんだかインクルードファイルのディレクトリを認識していないので,プロパティ→構成プロパティ→C/C++→全般→追加のインクルードディレクトリで設定.
Debugでコンパイルすると動くが,Releaseでコンパイルすると動かん…と思って調べてみると,どうやら「プログラム全体の最適化」が効いていると駄目っぽい.なんでだろ.あ,コンパイラが「fork」を知らんからかな?
性能の方は,Linuxとは傾向が違うけど,まぁ速くなるかな,一応.
qsortは駄目.Linuxの方はquが駄目.まぁいずれにせよメンテが必要かなぁ.

久しぶりの更新

気がつくと1年更新していなかったという.
デスクトップPCを新調したので,全くメンテしてなかったPARDSを久々に見てみることに.
VirtualBox内のDebian Squeezeでテスト.(ホストは話題のCore i7-2600K, Windows 7.)
まぁ動くんだけど,システムのセマフォ最大数を増やしたりしないと(データサイズを大きくできなくて)サンプルでも速くならんという.bzip2の方は,初期化時にメモリを大きく取らないと動かないし.う〜む.
コンパイルすると,Warningが出るのもいまいちだなぁ.
VirtualBoxはSMPに対応しているので,一応速くはなる.

去年くらいから諸般の事情で全然趣味プログラミングができてなかったんだけど,さてどうするか.今もそんなことをしている暇は無いのだが…

複数のfutureを待つプリミティブ

気がついたら3ヶ月近くも更新してなくてビビった(^^;
Lambda-The-Ultimateを見ていたら,複数のfutureを待つプリミティブが必要,みたいな話があったので少し.

次世代のC++規格の中にfutureが提案されているそうです.
(そうなると,PARDSの有用性が下がっちゃうんだど,それでもforkを使うのでスレッドセーフかどうか気にせず並列化できるという利点はまだあります.)
で,その議論の中で,「複数のfutureのうち,どれかが書き込まれたら動作を開始する,という仕組みが無いのはおかしい」みたいな話があったそうな.要するに,UNIXでいうselectのような動作ですね.

でもどうなんだろ.複数のfutureそれぞれに対して,値が決まったら動作する関数を作っておいて,それらが早い者勝ちである同期用データ構造に書き込むことができれば,それに対して待ち合わせればselectは実装可能だよなぁ.

もしかして,futureって本当にfutureで(並列論理型言語の論理変数みたいなのじゃなく),変数定義時に誰が書き込むか確定してしまうのか知らん?だとすると,早い者勝ちは書けないなぁ.
というか,もしそうだとすると,それはそれであれだなぁ.I-structure/論理変数的なものの方が便利だと思うけど.

Visual C++ 2008 Express Editionのインストール

を試してみた。普通にインストール•使用できます。
で、PARDSのコンパイルを試してみたんだけど、なんかIncludeファイルのサーチがうまく出来ていない???
サンプルプログラムのコンパイル時にSync.h等のインクルードファイルを見つけられていない様子。確かにディレクトリを分けたけど、2005だと設定不要だったような(どうだったっけ?)
仕方が無いので、プロジェクト→pards-win32のプロパティ→構成プロパティのC/C++→全般から「追加のインクルードディレクトリ」を指定。

この設定をすると、普通にコンパイル/実行が可能に。まだサンプルのN-Queensしか試していないけど、Atomのハイパースレッディングでも、並列版の方が少しだけ速かった(^^ まぁでもあっさり動くんだから我ながら大したもんだ :-)

SACSIS終了

割と好意的なコメントが多かったので、ほっとしました。

(余談だけど、コーヒーブレイクの時のお菓子がクリスピークリームのドーナツだった。すげー。
誰が買ってきたんだろう?僕はポスター発表であんまり食べられなくて残念。)

Windows版も一応作ったし、次は他のアプリケーションの並列化を進めるかなぁ。
ffmpegとか考えてはいるんだけど、エンコードによっては既にマルチスレッド化されているのが悩ましい所。
まぁ、もう少し考えてみるか。

[追記] PARDSのプロジェクトページを更新。SACSISの論文とポスター発表に使った原稿をアップロードしました。ご参照ください。
[追記2] クリスピークリームのドーナツを用意した方のブログを発見:HPC 最後のお勤め | GPU と暮らす日々
新宿で並んだのかー。

SACSISのポスター発表

本日、SACSISの初日でした。ポスター発表は無事できたと思います(明日以降もあります)。
やはり、同じような問題意識の人と話ができるのは嬉しいですね。旧知の方々とも話が出来て、楽しい一日でした。

ダウンロードして使って頂ける方、ありがとうございます。何かコメントがあれば、こちらのBlogのコメント欄か、Sourceforgeの方に書き込んでください。
よろしくお願い致します。

Windows版リリース

ファイルを整理して、CVSに登録した後、リリースした。
(それに伴って、プロジェクトページも若干更新。tar.gz/zipファイルへの直接リンクを張ることにした。)

うちのVISTA/Visual Studio 2005でしかテストしてないけど…。まぁ、まだプレアルファ版といった感じかな。
使ってくれる人が居ればいいんだけど…