"Vmware上"のUbuntu14.04へのopenmpi-1.10.2のインストール

こんなもん、普通にソースコード落としてきて、

解凍→./configure→make→make install

で終わりだろうと思っていた時代が…僕にもありました…。


Vmware上で作業するときは、解凍場所をWindowsとの共有フォルダにしていたらシンボリックリンクが張れないのですね…。



これを知らずに、なぜmakeができないのか、一時間くらいずっと悩んでいた…。

Sublime text3でLatex

今時Latexかよ、wordでいいじゃんと、言いたい奴には言わせておけばよい。
数理系ではまだまだ現役だし、適切なテンプレートがあれば入力は非常にはかどる。

とはいえ、以前のエントリでも記入した通り、作業環境の構築が地味にめんどい。
どーしたものかと悩んでいたら、同じ部署の先輩からsublime textで書けるよと教えてもらった。
ちょっと調べてみたら、

yanoshi.hatenablog.jp


上の手順でやってみたらすごい簡単にできたので報告。


なお、Livetext2015の導入にあたり、ローエンドのPCにインストールする場合はちゃんとDVDを焼きましょう。

vtkファイルフォーマット(バイナリ形式)

バイナリ形式によるvtkファイルのフォーマットがやっとわかったので書き留めておく。
意外と日本語で解説している人、いないのよね…。


また、日本語サイトでちらほら見つかるアスキー形式のvtkファイルも、ほぼ全てがレガシーなフォーマット(.vtk)の解説になっている。

最新のvtk形式はxmlによる記述を採用しており、可視化する形状の種類(画像、構造格子、非構造格子、etc.)によって拡張子を変えている(vti,vtuなど)。
ここでは最新のフォーマットについて少しだけ解説する。



基本的な形式は下記のサイトの後半に書かれており、アスキー形式でよければすぐ理解できると思う。
VTK File Formats


サンプルコードは下記の通り。見た目だけでこれのみでは可視化不能。ちなみにこれはImageDataなので拡張子はvtiである。

<?xml version="1.0"?>
<VTKFile type="ImageData" version="1.0" byte_order="LittleEndian" header_type="UInt64">
  <ImageData WholeExtent= "Xmin Xmax Ymin Ymax Zmin Zmax" Origin= "x0 y0 z0" Spacing= "dx dy dz">
    <Piece Extent= "Pxmin Pxmax Pymin Pymax Pzmin Pzmax" > 
      <PointData>
      </PointData>
      <CellData Scalars="Scalar">
        <DataArray type="Float32" Name="Scalar" format="appended" RangeMin="minValue" RangeMax="maxValue" offset="0">
        </DataArray>
      </CellData>
    </Piece>
  </ImageData>
  <AppendedData encoding="raw">

    _NNNN(Data(Binary))

  </AppendedData>
</VTKFile>


ヘッダ部の変数は直観的にだいたい想像がつくので解説は割愛。
これは画像だが直交格子を使った計算などならこれでも対応できると思われる。

可視化したいデータをAppendedとして、最後にまとめて貼り付ければいいのでコーディングも割と楽だと思う。

ただ、注意として、
・データの頭に必ずアンダーバー(_)を配置しないといけないこと
・8バイト(もしくは4)のint型で、dataの総バイト数を記述すること(下記NNNN)4か8かは二行目のheader_typeに依存。UInt64なら8.
を忘れてはならない。encodingをrawとしているためこれは必須。

上記サイトにも注意があるかもしれないが、おそらく見落としていた。
偶然見つけた下記がなければまだ悩んでいたと思われる。感謝。
'Re: [Paraview] VTK XML Binary Output' - MARC
What they don’t tell you about VTK XML binary formats
VTK XML Formats - KitwarePublic

netcdf-4.4.0のインストール(Ubuntu14.04)

データ管理用フォーマットとして名高いnetcdfをインストールした。


ソースコードをダウンロードしてきて、

./configure --prefix=/home/hoge/netcdf-4.4.0
make
make install

で終了。なぜかhelpを見てもhdf5との依存関係の設定方法が書いてなかった。

後はc++APIでも落としてこようかなと思わなくもないが、とりあえずFFV-Cでnetcdfが使えるよう再設定を試みる。

vmware-toolsとopen-vm-toolsの共依存関係:Ubuntu14.04の場合

最近のVmwareにおいて、Linuxの仮想環境ではVmwareが提供するvmware-toolsではなく、Linux側が提供するopen-vm-toolsの使用を推奨しているはず。
ただし、open-vm-toolsのみをインストールしても共有フォルダが有効化できない。
vmhgfsが通常の設定では起動しないのが原因らしいが、これの対応はかなり面倒。

そういうわけでvmware-toolsを使い続けてきたが、最近Ubuntuのアップデートを行った結果、Ubuntuの画面の拡大ができなくなった。

vmware-toolsがちゃんと機能していないらしい。

仕方ないのでvmware-toolsとopen-vm-toolsを全て削除し、

最新版のvmware-toolsのインストール

open-vm-tools-desktopのインストール

の順にやった結果、画面の拡大、共有フォルダの有効化ともに正常に起動した。ものすごい不自然な設定で、完全に対処療法だけど、今使用しているPCはあと2か月程度しか使わない予定なのでもうこれで通す。

Sublime text 3のインストール(ubuntu14.04, Windows8.1)

vimにそろそろ限界を感じてきたので、Sublime text3に変更を試みた。
vimに特に大きな不満があるわけでないし、サーバでの作業も簡単にできる点で非常にありがたいけど、
だからといってvimの変態的なカスタマイズを突き詰めるよりは、もっとモダンなエディタで自動プラグインによる管理のほうが効率的だろうと判断した。


インストールしたsublimeに対して行った設定を列挙する。

  • Package Controlのインストール

view-show consoleを選択
Installation - Package Control
の中のpythonコマンドを全てコンソールに打ち込む。何度か再起動を求められるので、そのたびに同様の操作を繰り替えすといつの間にか入っている。
これでCtr+shift+pでパッケージのインストールが簡単にできるようになる。

  • テーマ

package installで早速theme flatlandを選択。

Preferences settings-Userを
{
"default_encording": "UTF-8",
"draw_white_space": "all",
"fallback_encording": "UTF-8",
"font_face": "Consolas",
"font_size": 12,
"highlight line": true,
"ignored_packages":
[
],
"line_padding_top": 3,
"show_encording": true,
"tab size": 4,
"theme": "Flatland Dark.sublime-theme",
"color_scheme": "Packages/Theme - Flatland/Flatland Monokai.tmTheme",
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"vintage_ctrl_keys": true,
"vintage_start_in_command_mode": true,
"vintage_use_clipboard": true,
"word wrap": true
}
とする。
追記(20160121):
こっちのほうが最新版で格好いいので変更した。
m.designbits.jp


ついでにPreferencesのKey Bindings-Userを
[
// タブの切り替え
{ "keys": ["g", "t"], "command": "next_view",
"context":
[{ "key": "setting.is_widget", "operand": false },
{ "key": "setting.command_mode" }
]
},
{ "keys": ["g", "T"], "command": "prev_view",
"context":
[
{ "key": "setting.is_widget", "operand": false },
{ "key": "setting.command_mode" }
]
},
// インサートモードから抜ける
{ "keys": ["ctrl+j"], "command": "exit_insert_mode",
"context":
[
{ "key": "setting.command_mode", "operand": false },
{ "key": "setting.is_widget", "operand": false }
]
},
{ "keys": ["j","j"], "command": "exit_insert_mode",
"context":
[
{ "key": "setting.command_mode", "operand": false },
{ "key": "setting.is_widget", "operand": false }
]
},
// ビジュアルモードから抜ける
{ "keys": ["ctrl+j"], "command": "exit_visual_mode",
"context":
[
{ "key": "setting.command_mode"},
{ "key": "num_selections", "operand": 1},
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": false }
]
},
{ "keys": ["ctrl+shift+c"], "command": "clang_format" },
]
とする。

  • 日本語を使用するため、下記に沿う作業を行う(Ubuntuのみ)。

Linux での日本語入力設定 [Sublime Text 3 の参考書(実践編)Wiki]


All Autocomplete
BracketHighter
C++ Snippets

Clang Format
Clang Formatの実行ファイルへパスを通す必要がある。
github.com

ConvertToUTF8
IMESupport
MinimalFortran
SideBarEnhancements
Smart Delete

この動作の前にCppcheckをインストールしておくこと。
SublimeLinter
SublimeLinter-cppcheck
windowsの場合はそれぞれ下記を参考に。
How to do it — C++ Starting Kit Project - Guide 0.0.1 documentation

SyncedSlideBar
Terminal
TrailingSpaces
preferences-package settings-trailing spaces-settings-Userを選択し、下記を記入
{
"trailing_spaces_regexp": " |[ \t]+",
"trailing_spaces_highlight_color": "comment"
}

参考
Sublime Text 3でインストールしているプラグイン - プログラミングとかLinuxとかの備忘録
【Sublime Text】愛好家必読!Vim化しよう - 悲しいけど、オレ素人プログラマなのよね

ubuntuWindowsの同期を試みたが失敗した。まあ仕方ないか。