「現場の水理学」の続きと「新 現場の水理学」を読みました。
どちらも初心者向けに丁寧に書かれていましたので、一気に読めました。ありがたい。
コードは BASIC を使われているようでした。行番号、懐かしいですね。
河床変動のみでなく、横断図からH-Q曲線を作成するコードも掲載されていました。ちょうど、H-Q曲線を作ろうとソフトを他部署から借りていたのですが、不等流計算のおまけのようで煩雑でした。で、コチラを使えないか?と思案。
BASIC は選択肢としてありえないので、EXCEL VBA を選択。横断座標は EXCEL で整理するでしょうからデータ作成の手間が省けるでしょう、との判断です。
手を動かしてみると、あっさり移植できました。
知らなかったのですが、VB は BASIC をそのまま動かせるのですね。fortran と VF の関係と同じだったようです。無知でしたね。
セル参照・書き込みや不具合を修正し、ついでに曲線と流量ハイドロから水位ハイドロを算出するマクロも追加しました。潤辺を正しく斜距離で計算するコードでしたが、鉛直の場合はダメですね。ま、全部水平距離での簡略化よりはマシでしょう。
ツールは準備できました。手早く整理してしまいましょう。
2018年4月30日月曜日
2018年4月25日水曜日
現場の水理学
河床変動計算プログラムを理解するため、資料を探すことに。
離散化前後の式が記載されていないため、ソースを読んだだけではわからない箇所があります。それらをピックアップし、該当する式を探す作業です。
iRIC の HP を見ていると、良い資料がありました。
「現場のための水理学」
http://i-ric.org/ja/column/pdf/
初心者向きで、一気に第3回の掃流砂まで読めました。
30年前の資料ですが、離散化前後の式から手計算による例題、プログラムソースまで記載されており、一通りのことが理解し易く記載されています。ありがたい。
先日読んだソースも、基本的には同じ流れでしたので、不明であった式の意味や流れがほぼ理解できました。良かった。
オリジナルは寒地土木研究所に掲載されています。
http://river.ceri.go.jp/contents/tool/suirigaku.html
ふと見ると、「新 現場のための水理学」がありました。
http://river.ceri.go.jp/contents/tool/shin-suirigaku.html
平成4年ですから、26年前の資料です。用語の解説も加えられ、さらに初心者向けに作られているようです。
こちらも読んでみましょう。
***************************
20220214追記
「現場のための水理学」令和版だそうです。
https://i-ric.org/yasu/nbook2/index.html
2018年4月23日月曜日
砂防用語
週末に、1次元の河床変動計算のソースを読みました。
頂いたソースで、解説はありません。
が、砂防分野では古典に属するようで、用いられている式の種類も多くなく、2/3程度は理解できました。
どちらかというと、砂防用語がわかりませんでした。変数は英語を略しており、それを日本語に直しても、その意味が分からない、といったことがいくつか出てきました(「径深」など)。
根本的な、知識不足。
砂防分野について少し慣れが必要です。
2018年4月15日日曜日
OpenACC 失敗
暇になったので、Dtransu を GPU 上での計算に修正してみることに。
まずは、CPU コードを以下の2種でコンパイル。
・Intel VF 18.0
・PGI Community Edition 17.10
どちらも Win10 上ですが、例の通り微妙に異なる結果が得られます。浸透流はほぼ同じ結果ですが、濃度が異なります。
また、PGI は最後の element をうまく認識していませんね。既にこの時点でダメでしょうか?
次に、OpenACC。
コンパイルはできましたが、計算時に収束しません。GPU (GTX1060)は使用しています。こちらは私の能力不足でしょうか?
次に、OpenMP。4.0より、GPU を指定できるようになっていたのは知りませんでした。
IVF は GPU をサポートしていませんので、PGI のみでコンパイル。
が、計算中に GPU を 使用しません。CPU で正常に進んでいます。
ちなみに、Cygwin + gfortran でも試してみましたが、こちらは強制終了でした。
粘ってみましたが、全くダメ。プロがそばに欲しい。
着手時にプロからは「ライブラリ使わないと遅い」と言われていました。そのままでは NVIDIA の仕様で倍精度の計算は遅くなるとのこと。確かに、そのような仕様になっていますね。
ライブラリまで移行しようとし、サンプルを見ると挫けます。毎回。
プロにお願いすればできるのでしょうけど。
そもそも、CPU コードで正しく element を認識しないとダメですよね。
もう少し寝かせておきましょう。
まずは、CPU コードを以下の2種でコンパイル。
・Intel VF 18.0
・PGI Community Edition 17.10
どちらも Win10 上ですが、例の通り微妙に異なる結果が得られます。浸透流はほぼ同じ結果ですが、濃度が異なります。
また、PGI は最後の element をうまく認識していませんね。既にこの時点でダメでしょうか?
次に、OpenACC。
コンパイルはできましたが、計算時に収束しません。GPU (GTX1060)は使用しています。こちらは私の能力不足でしょうか?
次に、OpenMP。4.0より、GPU を指定できるようになっていたのは知りませんでした。
IVF は GPU をサポートしていませんので、PGI のみでコンパイル。
が、計算中に GPU を 使用しません。CPU で正常に進んでいます。
ちなみに、Cygwin + gfortran でも試してみましたが、こちらは強制終了でした。
粘ってみましたが、全くダメ。プロがそばに欲しい。
着手時にプロからは「ライブラリ使わないと遅い」と言われていました。そのままでは NVIDIA の仕様で倍精度の計算は遅くなるとのこと。確かに、そのような仕様になっていますね。
ライブラリまで移行しようとし、サンプルを見ると挫けます。毎回。
プロにお願いすればできるのでしょうけど。
そもそも、CPU コードで正しく element を認識しないとダメですよね。
もう少し寝かせておきましょう。
2018年4月14日土曜日
10. まとめ(Ubuntu + Docker + nvidia-docker + Deep Water)
目指していた Ubuntu + Docker + nvidia-docker + Deep Water を実装できました。
XGBoost を使えるようになったのは収穫です。
Deep Water で DNN を利用できないのは残念ですが、いずれ動くようになるでしょうし、それにこだわる必要もないでしょう。nvidia-docker により、他のフレームワーク等も容易に利用できるようになりましたし、以前の計算では、DNN より Random Forest の方が良い結果を出していましたので。データセット(数字)を扱う場合、機械学習の中の一つとして DNN があるという位置づけの方が妥当なように思われます。
さあ、環境は整いました。これで一安心。
あとはやってくる問題を解くだけです。
XGBoost を使えるようになったのは収穫です。
Deep Water で DNN を利用できないのは残念ですが、いずれ動くようになるでしょうし、それにこだわる必要もないでしょう。nvidia-docker により、他のフレームワーク等も容易に利用できるようになりましたし、以前の計算では、DNN より Random Forest の方が良い結果を出していましたので。データセット(数字)を扱う場合、機械学習の中の一つとして DNN があるという位置づけの方が妥当なように思われます。
さあ、環境は整いました。これで一安心。
あとはやってくる問題を解くだけです。
9. Driverless AI
Driverless AI のテストです。
https://www.h2o.ai/driverless-ai/
まずは、ホスト側の/home/<ユーザー>/ 以下にディレクトリ作成。dataに学習・検証・テストデータを入れておきます。
$ mkdir data
$ mkdir log
$ mkdir tmp
$ mkdir license
NGC にログイン
$ docker login nvcr.io
user:$oauthtoken
Pass:<登録時に作成した Key>
環境を pull
$ docker pull nvcr.io/partners/h2oai-driverless:latest
Docker スタート。
(env NV_GPU="1" を入れないと、2枚目の GTX1060 を正しく認識しないのは Deep Water と一緒でした。)
$ env NV_GPU="1" nvidia-docker run \
--rm \
-u `id -u`:`id -g` \
-p 12345:12345 \
-p 54321:54321 \
-p 8888:8888 \
-v `pwd`/data:/data \
-v `pwd`/log:/log \
-v `pwd`/license:/license \
-v `pwd`/tmp:/tmp \
nvcr.io/partners/h2oai-driverless:latest
http://<IP>:12345
でアクセス。
ユーザー名を聞かれましたが、適当に入力して次の画面に。
お試し版として、30日のキーをいただいていましたので、それを入力。
動きました。
チューニング含め、ほぼ自動ですね。かっこ良い!
GPUも稼働しています。
データをそのまま使っているだけでなく、演算もして利用しているようですね。凄い。
が、自動過ぎてよくわかりませんね(楽ですけど)。
そもそも、アルゴリズムは何でしょうか?
調べてみると、FAQにありました。
http://docs.h2o.ai/driverless-ai/latest-stable/docs/userguide/faq.html#
個人的には計算時に設定がわかったほうが良いかな?
非技術者の利用を想定されていますので、このスタイルで行くのでしょう。
https://www.h2o.ai/driverless-ai/
まずは、ホスト側の/home/<ユーザー>/ 以下にディレクトリ作成。dataに学習・検証・テストデータを入れておきます。
$ mkdir data
$ mkdir log
$ mkdir tmp
$ mkdir license
NGC にログイン
$ docker login nvcr.io
user:$oauthtoken
Pass:<登録時に作成した Key>
環境を pull
$ docker pull nvcr.io/partners/h2oai-driverless:latest
Docker スタート。
(env NV_GPU="1" を入れないと、2枚目の GTX1060 を正しく認識しないのは Deep Water と一緒でした。)
$ env NV_GPU="1" nvidia-docker run \
--rm \
-u `id -u`:`id -g` \
-p 12345:12345 \
-p 54321:54321 \
-p 8888:8888 \
-v `pwd`/data:/data \
-v `pwd`/log:/log \
-v `pwd`/license:/license \
-v `pwd`/tmp:/tmp \
nvcr.io/partners/h2oai-driverless:latest
http://<IP>:12345
でアクセス。
ユーザー名を聞かれましたが、適当に入力して次の画面に。
お試し版として、30日のキーをいただいていましたので、それを入力。
動きました。
チューニング含め、ほぼ自動ですね。かっこ良い!
GPUも稼働しています。
データをそのまま使っているだけでなく、演算もして利用しているようですね。凄い。
が、自動過ぎてよくわかりませんね(楽ですけど)。
そもそも、アルゴリズムは何でしょうか?
調べてみると、FAQにありました。
http://docs.h2o.ai/driverless-ai/latest-stable/docs/userguide/faq.html#
Which algorithms are used in Driverless AI?いずれは DNN も含まれるのでしょうね。
Features are engineered with a proprietary stack of statistical models including some of the most sophisticated target encoding and likelihood estimates, but we also employ linear models, neural nets, clustering and dimensionality reduction models and more. On top of the engineered features, XGBoost models (and ensembles thereof) are used to make predictions. More models such as linear models and neural nets are added currently and will be available shortly.
個人的には計算時に設定がわかったほうが良いかな?
非技術者の利用を想定されていますので、このスタイルで行くのでしょう。
2018年4月12日木曜日
8. NVIDIA GPU Cloud
NVIDIA GPU cloud (NGC)に登録。
https://www.nvidia.com/ja-jp/gpu-cloud/
Repositories
nvidia
caffe
caffe2
cntk
cuda
digits
mxnet
pytorch
tensorflow
tensorrt
theano
torch
hpc
candle
gamess
gromacs
lammps
lattice-microbes
namd
relion
vmd
nvidia-hpcvis
index
paraview-holodeck
paraview-index
paraview-optix
partners
chainer
h2oai-driverless
kinetica
mapd
paddlepaddle
一通りの環境は整っています。h2oai-driverless もありますね。
h2oai-driverless を試用してみましょう(Docker で簡単に環境を再現できる点はありがたいですね)。
続く。
https://www.nvidia.com/ja-jp/gpu-cloud/
Repositories
nvidia
caffe
caffe2
cntk
cuda
digits
mxnet
pytorch
tensorflow
tensorrt
theano
torch
hpc
candle
gamess
gromacs
lammps
lattice-microbes
namd
relion
vmd
nvidia-hpcvis
index
paraview-holodeck
paraview-index
paraview-optix
partners
chainer
h2oai-driverless
kinetica
mapd
paddlepaddle
一通りの環境は整っています。h2oai-driverless もありますね。
h2oai-driverless を試用してみましょう(Docker で簡単に環境を再現できる点はありがたいですね)。
続く。
登録:
投稿 (Atom)
