SUA (Subsystem for UNIX-based Applications) on Vista

Windows Vista上でSUAを使ってみる。(これ使えるのってUltimateだけ?)
昔はSFUと呼ばれていたもので、Windows上でPOSIXサブシステムを動作させるもの。この辺を参考にさせてもらう。

  • Vistaの「プログラムと機能」の設定で「UNIX ベース アプリケーション用サブシステム」のところにチェックを入れ機能を「有効化」
  • SDKをダウンロード(上記の有効化を済ますと、スタート→すべてのプログラムに「UNIXベースアプリケーション用サブシステム」というのが現れる。その中にダウンロード先のリンクがある)

SDKのインストール時には、カスタムインストールにしないと、gcc等のツールがインストールされないので注意。僕は忘れていて、後で追加インストールした。

で、せっかくだからとPARDSが動作するか試す。
コンパイルは一発では通らなかったけど、ちょっと修正すれば通る。(えーと、struct semunがすでに定義されていのに2重定義になるとか(ifdefで切り分けていたが、うまくいかなかった)、struct timezoneがないとか、bzip2関係でfdopenが無いといわれるとかそれくらい。)サンプル等も動作する。
が、スピードは速くならない…どうも複数のプロセスが別のCPUに割り当てられていない感じ。なんで?

[追記] プロセッサ数が取れてなかっただけでした orz(そういえばこれはシステム依存だった)。 とりあえず、2を返すようにしたら、ちゃんと速くなりました。すばらしい。