2011年5月31日火曜日

リモートデスクトップとCUDA その2

NVIDIAのフォーラムに、以下のようなコメントがありました。
http://forums.nvidia.com/index.php?showtopic=188755&st=0&p=1165887&hl=vnc&fromsearch=1&#entry1165887
VNCで検索すると、結構昔から、同様のQ&Aで出ていますね。Win側の有名な制限のようです。皆、一度手に入れた便利な機能は、手放せないんですよ。

VNCでも制限があるようですが、それ以上に問題あるのが計算精度とスピード。
倍精度浮動小数点演算で、Tesla C2050と、2倍弱の差が付いています。
http://www.nvidia.asia/object/why-choose-tesla-jp.html
専門の方に伺うと、GeForceは倍精度がドライバのレベルで抑えられているとのこと。メモリの余裕も違いますね。途中、宇宙線の影響による誤差の話も出てきました。どこまで広がっていくのでしょうか?もはや数値計算とは異なる話です。

結論としては信頼性の面でもTeslaなのでしょう。
価格をネットで調べると・・・30万弱・・・買えません。

2011年5月30日月曜日

リモートデスクトップとCUDA

今日は久々の休日。

昨日購入した CUDA の書籍を読みました。メモリ管理以外はそれほど複雑ではなさそうですね。いったん並列化できてしまうと、GPU に載せるのは容易ではないでしょうか。ただ、メモリ関連の制御は、通常行わないので、慣れるまではミスしやすいところのように感じました。Fortran での仕様は未確認ですが、C とそれほど変わらないと思います。

手元の PC は Radeon なので、会社の GeFoce に Win のリモートデスクトップ Ver.6.0.6で接続し、CUDA の開発キットをインストール、サンプルを動かしてみました。

が、動きません。ドライバーは最新で、CUDA 4.0 に対応しています。
いくつかサンプルを試しているうちに気づきました。・・・あ、リモートデスクトップだ。
Civil3Dをリモートで立ち上げると、ディスプレイドライバが切り替わることがあります。コンセプト表示などしなければ実害は無いので、そういうものなのかと思う程度でした。(←別のPC(Radeon)でした。)
しかし、CUDA を使ったアプリが動かないとなると、問題です。Direct Computing のアプリは動くんですが。どういった違いなんでしょう?理解しないといけないですね。

調べてみますと、Teslaしか対応していないようです。
http://www.nvidia.co.jp/object/software-for-tesla-products-jp.html
http://www.gdep.jp/page/view/170

確かに、演算結果についてはチェックされているため安心ですが、映像出力をカットされると、厳しいですね。マザー(P6X58D-E)にはオンボードグラフィック載っていませんし。CAD の表示を早くするため、次は Quadro を選択しようと思っていたところでしたが、迷いますね。

VNCなど、リモートデスクトップ以外であれば大丈夫でしょうか?

CUDA Fortran

GPGPUが得意な会社も多くあるようで、先週から1社とやり取りしています。

CUDAの指示やコンパイルの仕組みはわかるものの、その細かい仕様は知りません。そこで、今日は本屋さんで CUDA の解説書を購入しました。ついでに前から気になっていたFortran2008も探しましたが、ありませんでした。何が変わったのかな?

ただ、CUDAとFortranの組み合わせを解説しているものは皆無でした。コンパイラーも有料ですしね。ま、CUDAの仕様を知る目的ならCでもいいんですけど。あまり変わらないと思いますし。

結果が楽しみです。

2011年5月28日土曜日

Civil3D 2011 から SXF

対処療法ですが、サポートにも聞きながら変換できましたのでUPしときます。
  1. Civil3D 2011 固有のオブジェクトを全て分解。(縦断ビューなど、平面も含む)
  2. ファイル-書き出し- AutoCADに書き出し-2010形式(分解できていないと書き出し時にエラーとなります。)
  3. 書き出したファイルを開き、不要なオブジェクトを削除(注意!分解でレイヤーが変わっていることもあります。)
  4. 目的のレイアウトをdwgで書き出し。(一つ書き出すだけで30分くらいかかりました。あきらめかけた頃にできました。)
  5. 4で書き出したファイルを CALS Tools でSXF変換
このあと、私は CALS Tools ではなく、V-nas + CADチェッカーで基準適合検査、修正を行い、仕上げます。楽ですよ。http://www.kts.co.jp/seijyou/k_cadcheck/index.html
V-nasで直接dwgを開くよりは、CALS Tools をかましたほ方が、経験的に良い結果が得られます。

根本的な問題はCALS Tools が32bitであることです。2012も32bitでしたから、次こそ出してほしいですね。
分解前のレイアウトからdwg書き出しがメモリーエラーとなるのはダメですね。サポートに引き続き調べてもらっていますが、どんな結果が出るのでしょう。

3次元CADデータの電子納品

3次元CADデータはSXFに対応していないんですね。

あ、逆ですね。SXF Ver.3 では、3次元データを扱えないんですね。
今までオリジナルしか納めていなかったのですが、今日、初めてSXFに変換しようとし、気づきました。
もともと、オリジナルも納める予定だったので問題は無いわけですが。断面図だけでも納めましょう。

しかし、まだ2つの問題があります。
1つ目は、CALS Tools が32bitなので、大きなデータを扱えません。
通常、3次元データは64bitで作りますので、変換時に32bitソフトだと扱えないものが出てくるのです。
変換しようとすると、メモリーエラーで落ちます。

もう一つは Civil3d 2011 にsxfデータトランスレーターがないこと。2010にはあるのですが、Civil3d 2011固有のデータが扱えません。分解するしかないのかなあ?

ちなみに、レイアウトをdwg書き出しすると、メモリーエラーで落ちてしまいます。64bitなのに。こちらはサポートに問い合わせ中です。

変換方法やエラーの原因が分かれば、後日UPしましょう。

2011年5月25日水曜日

RICH-PHREEQ

文献を取り寄せて読んでいますと、RICH-PHREEQ なるものが。
Implementation of variably saturated flow into PHREEQC for the simulation of biogeochemical reactions in the vadose zone

abst. と intro. を読みますと、VBScript で PHREEQC の input ファイルを作り、 USER_PRINTの BASIC で1次元飽和・不飽和輸送をやってしまおうというもの。 USER_PRINT でそんなことができるんですね。結果を書き出すだけのはずですが、どうやっているんでしょう?理解できてません。 Visualization は MATLAB も使うようです。m ファイルの中身をみると、 SELECTED_OUTPUT で書き出したファイルを読み込んでいるようです。

文献の中で HP1 のUpstream Weighting FE と、RICH-PHREEQ の total-variation-diminishing (TVD)で移流成分のなまりを比較しているようですが、後者のほうが良い結果が出ています。TVD、知りません。調べてみましょう。

VBScriptの内容を見たところ、HP1のほうが使い勝手が良さそうです。出番は無いかも知れませんが、上記のような利点もあります。流れは COMSOL+MATLAB に続くようですから、文献を最後まで読んで、BASICの内容を見て、理解しましょう。


2011年5月21日土曜日

MATLAB + COMSOL + IPhreeqc

概要は理解できました。COMSOLで移流分散、IPhreeqcで反応、それらの結果の橋渡しをMATLABで行うというものでした。

最初に MATLAB が 初期化を行ったあと、輸送計算を COMSOL で行います。 次にMATLABが comsol2phreeqc.m で結果を変換し、COMモジュール(IPhreeqc)を呼び出して反応計算を行います。反応の結果を phreeqc2comsol.m で変換し、COMSOLで次のステップの計算を行うといった流れです。というわけで、計算方法は non‐iterative です。HP1と同じですね。

早速、見積もりを取りました。両方合わせて300万を超えました。ムリです。買えません。
大企業か、行動力のある小企業しか無理でしょう。

しかし、お金を出せば3次元飽和・不飽和輸送+化学反応連成計算ができることが分かりました。
ペイできるだけの業務が取れる見込みもありませんし、、当分は HP1 + PHAST で我慢しましょう。