2015 年 3 月 9 日 (月) 地球流体電脳倶楽部ミーティングメモ

履歴

  • 2015/04/08 納多哲史 修正
  • 2015/03/10 納多哲史 修正
  • 2015/03/09 納多哲史 初版作成

各活動の進捗状況

dennou ruby 現状報告・議論

GPhys/GGraph (堀之内)

  • GPhys とは
    • Ruby によるデータ解析可視化ライブラリ
  • ここ 1 年の主な変更
    • JRA-55 grib サポートなど grib 関連
    • GAnalysis 増強
    • マニュアルの一部 RDoc 化
  • 電脳 Ruby その他の話題
    • NArray 64 bit 対応: 西澤
      • 旧バージョンからの fork
        • 本家最新版は後方互換性がなく, 対応するには膨大な書き換えが生じるため
        • fork した版を追従させるだけの体力が我々にあるか? 本家 NArray の変化に追従を試みる方が, 長期的には良いのでは
      • 名前をどうするか?
        • 新旧のライブラリで混乱が起こらないようにしたい
        • NumRu の傘をかぶせるか?
        • 案: numru-narray
        • 本来は, 旧バージョンの開発を引き継ぎたい旨を本家の田中さんに交渉すべきでは
          • 一声かけることにする
      • インストール場所はどうするか?
        • 両方入れられないようにパッケージ的に設定するのはどうか
        • それは辛いので, 名前変更でなんとかできないか
  • 今後の ToDo
    • マニュアル完全 RDoc 化
    • Git 未移行ライブラリ Git 化
    • Gem 生成機能を Git レポジトリに
      • リリース時に常に Gem 化されるようにする (西本さんの協力を仰ぐ)
  • 小物置き場の紹介

Gfdnavi (大塚)

  • Gfdnavi とは
    • web ブラウザ上でデータにリモートアクセスして可視化, 解析, 文書作成, 保存できるツール
  • 昨年からの変化なし
    • Ruby, Rails の最新に未対応 (現在は Ruby 1.8, Rails 2 対応)
    • Rails 4 対応は大幅な変更が必要そう
      • 一方で Rails の最新機能で素直に実装できそうな機能も
  • Davis サーバ更新により, 稼働している公開サーバはなし
  • 論文
    • Otsuka et al. (2013) を昨年紹介し忘れていたので紹介
  • 今後
    • 人手不足. 他のプロジェクトで必要, などの外圧があれば開発が進むだろう
    • 機能を削る方向で再設計も検討
      • 現状版は機能を盛り込み過ぎた. シンプルにしたほうがいい.
        • 現在はユーザの可視制限で無理している. 他のサーバでやるべき
        • 検索関連の切り捨て
      • UI が遅いことの改善
        • 倣うべき, 使いやすい GUI の調査?

binary packaging 現状

cygwin package (大塚)

  • DCL はおそらく問題なし
  • Ruby パッケージは 2.0 の変更には未対応
    • ビルドでこける
  • 公式の Ruby ライブラリパッケージは gem を固めただけ
    • 電脳の gem が最新になっていれば固めるだけ
  • 既存のレポジトリは x86 のみ. x86_64 は作業中

debian package (佐々木の代わりに竹広)

  • パッケージの数は前年と変わらず
    • Debian 本家
  • 適切なテストが欲しい
    • インストールが成功したら必ず動くものが欲しい, か
  • Jenkins を使ってパッケージのビルド管理をするようにした
    • http://jenkins.gfd-dennou.org
    • Git レポジトリのコミット hook で動く
    • Reverse Proxy で davis から davis2 へ飛ばす
    • Jenkins 専用サーバ (davis2) があり davis のみから参照できる
    • 上記サーバで Jenkins を使いたい場合は佐々木に連絡する
  • Jenkins をパッケージビルド以外にも活用したい
    • 例: spml などのプロジェクトのテスト

ubuntu package (乙部)

  • PPA サイトに作って置いている
    • 現在は 14.04 用が最新
    • 人手不足のため LTS のみ作っている

windows installer (乙部)

  • IntelFortran 版と MinGW 版がある
    • IntelFortran 版はライブラリのみ. 各自の開発環境でビルドすること想定
    • MinGW 版は bash, emacs なども付属
      • numru.BAT で bash が起動

rubygems (西本)

  • Ruby 言語用のライブラリのみ扱っている
  • インストール方法
    • Ruby 言語以外のライブラリ (DCL-C, FFTW など) は予めインストールしたうえで以下を実行

      $ gem install gphys --no-rdoc --no-ri

    • rdoc 関係でエラーが出るが, ライブラリのインストールはできる
    • 要望: 何をすればよいかをエラーメッセージに出す必要がある
    • Ruby-DCL に DCL-C を同梱してはどうか
      • DCL-C は複雑すぎるので単独で使っている人はいないはず
    • rb-gsl, ruby-fftw は GPhys とは別途インストールするようにしては
      • rb-gsl (電脳関係者でない人がメンテナ) が本家 GSL のバージョンアップに追従していない問題も
  • gem パッケージ作成には bundler を使用
  • 更新が滞っていた結果, いくつかのパッケージが関係者以外によって公開されてしまっている
    • そのメンテナによって ruby-netcdf が 2.0 対応されていたり
    • 本家が最新版を出し続ければ終息するだろう
  • 今後
    • 更新の自動化をすすめる
      • rake_compiler を使ってはどうか
    • インストールマニュアルの整備
    • gem 化するとパッケージ管理者の労力が減らせる
      • 電脳 Ruby でのパッケージの作り方を統一する
        • ドキュメントのテンプレートを決めてしまう
        • gem_spec と Rakefile の設置のみ
        • 最後に rake_complier をするだけになると期待
      • (後日追記) rubygems パッケージ作成マニュアル
        • http://www.gfd-dennou.org/arch/ruby/products/rubygems/develop/rubygems_howto.htm

FreeBSD ports/packages (村上 (真))

  • ports: FreeBSD 向けのパッケージ管理フレームワーク
    • 最近, pkg (1) コマンドで操作するようになった
    • debian の apt のようなものを目指している?
  • 一時的に ruby-dcl, ruby-gphys が消えた
    • gcc から clang へ移行した影響 (-R オプション効かない) で ruby-dcl がコンパイルできなくなったため
  • rubygems を使った ports への移行
    • gphys 以外は移行済
    • math, science カテゴリにある
  • 電脳製品開発者への要望
    • clang 対応
    • 製品の rubygem 化

Mac (参加者で議論)

  • Mac への需要がある
  • 樫村さんによる Mac ports を使っている人もいる
  • homebrew は?
  • Mac ports と homebrew の違い
    • Mac ports は下位のライブラリを全部自分で作ってしまう
    • homebrew はできるだけ Mac デフォルトのライブラリを使うため余計なライブラリが入らない

Fedora (西澤)

DCL 現状報告 (乙部)

  • 5.9 リリース
    • グラフィックドライバの Cairo 化
      • {zx,zl,zt}pack 廃止, zg (zc であるべき) のみにした
      • 出力は画面とファイルに統合
        • 1: disp, 2: files
      • file の種類の切替は sw_ifl で切り替える
        • 1: png, 2: eps, 3:svg, 4:pdf
          • png 用に sw_lstdout (.true. で stdout 出力)
          • パイプを通じてネットワークごしに出力したいという要望を受けて
    • C-DCL, Ruby-DCL
      • 手動操作を減らすべく作業中
      • 元 (Fortran) のほうを修正したほうがよい
  • git ブランチ
    • master, 5.9 beta
  • 質問: なぜ 6.0 ではなく 5.9 か?
    • 当初 6.0 として入れるつもりだったシステムフォントが まだのためだが, 大きく変わっているので 6.0 がよいかもしれない
  • tone は (ほとんど) 割れなくなったはず
    • PS ドライバを替えたため
  • フォント
    • タイトルなど四角く表示するものだけシステムフォントにする
      • アンチエイリアスかかるのでカクカクした見た目でなくなる
    • 散布図などの三角形などもフォントとして出力しているが, システムフォントにすると 大きさが揃わないなどで格好わるいのでやめた
    • UTF-8 で対応しているフォントも出力できるようにした
    • '_' などの制御文字をどうするべきかは一旦整理すべき
  • ファイル出力の連番を 3 桁から 4 桁に変更へ
    • 0 番などの任意の番号から出力開始できるオプションも用意してある
  • 今後の予定
    • レイヤ, 透明色, フォント (追記: フォントは今日 (3/9) 完成)
    • W (Workstation) 座標の実数化
      • 現在は整数を実数に変換する余計な過程がある
    • 描画を記憶するサーフェスを導入する
      • マウスで拡大縮小できるようになる
  • 参加者からの質問・要望
    • 動画の出力
      • 標準出力に出したのをパイプを介して ffmpeg で受ければできるはず
    • ps の切り出しなどのコマンド (dcl...) は使えなくなるか?
      • ImageMagick などで処理する手引を用意することになるか
    • margin 文字列の 80 字制限を廃止してほしい
      • その他各種字数制限の撤廃
    • デフォルトカラーマップを変更してほしい
      • プロジェクタ投影時に白飛びしないよう黄色と緑を黒めにしてほしい
      • lfbg オプションで背景を黒にすることも可能
      • かつてのデフォルトカラーマップは別名で保存か
    • DCL のタイトルなどで overbar はできないか
      • 現状は, 自分で作るか, ずらして重ね描き, になる
      • 実装はそんなに大変ではないかもしれないが...
      • もし制御記号に BackSpace があれば重ね描きができるが...
  • (後日追記) ポータビリティや, 将来見通す
    • 何かのライブラリにべったりになり, それがこけたら心中になる恐れはないか

gtool5 現状報告 (佐々木の代わりに竹広)

  • 屋上屋の廃止
    • NetCDF C API <- NetCDF Fortran API <- Gtool 5
    • NetCDF C API <- Gtool 5
    • C の呼び出し; Fortran 2003 の ISO_C_BINDING を使う
  • プリミティブは実装済
    • History{Create,Get,Put,Addattr,AddVariable}
  • Auto 系はまだ
    • テストケースが欲しい
  • コメント
    • 問題や設計変更等は結局どうなったのか?
    • 佐々木によるメールの回答
      • dc シリーズは分割
      • スパゲッティ的依存関係は整理された
      • メモリリーク問題は解決. これから実際の使用状況をテストとして追加して確認, というフェイズ

dcmodel 現状報告 (竹広)

dcmodel 全体

  • 製品紹介
  • dcmodel ミーティング昨年度の復習
    • AFES 球面調和関数変換ルーチンを回転球殻モデルで利用
      • いくつかのシステムで ISPACK よりも ES2 用の AFES ルーチンのほうが高速
      • ライセンス的に世界への公開はしない
    • dcmodel-thum
      • Ruby 1.9 対応. 新しいのは Ruby 1.8 では動かない
  • 昨年度からの引き継ぎ
    • RDWebgen による web ページ作成への移行
    • モデルのコンパイル方法について検討中
      • spmconfig 等を利用する
    • ドキュメント生成問題
      • rdoc から doxygen への変更. gtool5 で試行中
  • コメント
    • RDWebgen
      • 参照するファイルのパスの設定に不具合があるため, ローカルに持ってきたときに表示がおかしくなる問題. 電脳サーバは問題なし

spmodel (竹広)

  • SVN trunk 版について
  • option の追加: --enable-lapack, --enable-ssl2 など
  • out-of-tree build への対応
    • ソースツリーと別の場所でのコンパイル
    • ひとつのソースでいろいろなバージョンを使い分けるときに便利
  • 速度向上
    • 発端: 2014 Geodynamo Benchmark Workshop
    • 並列性能: 最下位 (ほとんどスケーリングしていない)
      • 速度を追求する思想で開発しているのではないが, スケーリングしていないのは格好悪い
    • 対応中. 多少改善
  • コメント
    • spmodel として予定していたシリーズは完成したのか?
      • 全てのニーズに答えたというにはサンプルが足りない
      • 作るべきサンプルのリストは持っていない
    • 性能向上も取り組むべき. やれることが限られてしまうので

deepconv (杉山)

  • 最近の活動
    • 速度向上継続中
      • ボトルネックを F77 的に書き換え
      • arare4 に比べて速度は 2-3 倍向上
      • 元のコードはデバッグ用として残してある
    • テスト計算の増強
    • プログラムの整理
  • 今後の予定
    • 火星放射. DCPAM より移植
    • 地形
  • コメント
    • 準圧縮, 完全圧縮の違いを同じフレームワークで比較したい
    • 非一様な格子間隔の場合を実装しないと火星で困るのでは

DCPAM (高橋)

  • 多様な惑星の大循環を計算するのが目的
  • 最近の活動
    • 開発
      • デバッグ
      • 地球計算を地球らしくする試み
        • 西風が速過ぎるなど
      • 鉛直 1 次元物理過程評価実験の試み
        • 共通物理過程ライブラリ
    • 計算
      • 火星着陸探査のための表層環境評価

dcrtm (大西)

  • 地球を含め, 多様な惑星の放射計算を行うことを目指したモデル
  • line-by-line 計算

共通ライブラリ (西澤)

  • 「気象・気候モデルのための共通基盤ライブラリ環境」
  • 短期目標
    • 物理スキームの相互間比較 (今夏)
      • 境界層乱流スキーム (MYNN level 2.5)
      • 気象庁物理ライブラリのフレームワークにのっとって行う
    • 違いがあるか, 違いの原因は?
    • 気象庁との共同研究契約
  • コメント
    • 試行錯誤がうまく蓄積されるようにすべき

ウェブページ整理 (高橋 (芳) による司会)

電脳 Ruby

  • 製品リストの整理
  • ニュースが古い
  • フレームを辞めたいと言いつつ 10 年...
  • gave は今や動かない?
    • Ruby, GNOME などの問題?
    • DCL が GTK を使わなくなったのでそのままでは動かない

dcmodel

spmodel

  • ダイナモベンチマークのサンプルが増加中か

その他

gms (乙部)

  • Git 化された
  • 並列化されたモデルを出力できるようにする予定

DCPAM のレポジトリの Git 化要望 (堀之内)

  • cvs, svn との比較
    • cvs はファイル名を変えると履歴を辿れなくなるのが論外
    • svn はブランチを切ると太っていくが git は捨てることができる
  • Git にしたほうが参入障壁が下がる
    • 手元のレポジトリで履歴管理できる
    • ブランチを切りやすいので敷居が下がり, 他の人が開発しやすい
      • たぶん捨てるような試行でも, 履歴が残らないのでできる
    • ブランチでの作業を失敗した履歴が残らない
    • ご本尊に返すときに整理したものだけを反映させることができる
  • cvs2git はたとえば gphys のログを参照すればよい
    • 「 gphys git 」 でググれば出てくる

redmine

GAnalysis 紹介 (堀之内)

  • ドキュメント
    • http://www.gfd-dennou.org/arch/ruby/products/gphys/doc/ganalysis/doc/
  • 当初は GAnalysis 直下にメソッドが並んでいた
  • その後, GAnalysis::Met など下位に置くようになった
    • Fitting: 関数当てはめ
    • QG: 準地衡流近似における解析 (PV など)
      • 多くのメソッドの入力はジオポテンシャル
    • SigmaCoord: sigma 座標系における解析

gpcommand (竹広)

  • gpview の最近の追加
    • DCL の内部変数をオプションでつけられるようになった
    • トーンを切り替えられるようになった
      • 2 次元球座標系でトーンがおかしくなる (原因不明) のを回避するのに使っている
      • デフォルトの auto から変更
    • 二つの変数の差をとる diff オプション
  • 四則演算は gpaop を使うこと
  • gpcat のバグは対処済み
  • 要望
    • help はオプションリストだけにしてほしい
      • history が最初に来るのをやめてほしい
      • history, example など man に書くような情報はないほうがよい
    • 初期値からのずれの描画
    • pressure coordinate ではなく pressure を書くときに軸がひっくり返るのを直す
      • GPhys では対処可能

dcmodel-thum (村上 (真))

  • コミットの文字コードチェックを外すことにした
    • 文字コードチェックでこけていた問題の対応として