CentOS5.4 or 5.7へのgcc-4.8をインストール

やむを得ない事情で2016年現在でもcentOS5を使用しないといけない場合、
gccのバージョンが古すぎるためにコードのコンパイルができなかったり、
ソフトウェアのインストールができなかったりということが多々ある。


対応方法だが、下記のサイトに従うことで簡単にインストールできた。
www.task-notes.com

devtoolset-3はエラーが出たため諦めたが、devtoolset-2については問題ない。
なお、上記サイトの最後に/etc/profile.d内に作成するファイル名は、
devtools.shとしてshell scriptであることを明示しないと自分の環境では動作しなかった。

とにかくこれでc++11が好き放題使用できる。

C++からfortran呼び出し方法 

爆速かつ可読性のよいコード作成のため、表題の内容に手を出した。自分の専門性を見失っている気がする。


基本的には下記を参考にすればよい。
kazuki-nagasawa.hatenablog.com

で、C++の場合は、プロトタイプ宣言を下記のようにCでexternしてやる必要がある。
extern "C"{
extern void add_array_( int*, int * );
extern void multiple_matrix_( double *, int *, int * );
};
また、コンパイルのリンクに-lstdc++を設定する。これだけで使用可能。

配列は次元に関わらず先頭のアドレスを渡す。また、定数であっても必ずアドレス渡しを設定すること。

もちろん動的配列も上記同様で、vector型ならば&v[0]、boost/multiarray型ならばv.origin()でよい。

なお、Cとfortranでは配列のアドレスのとり方が違うので、そこは注意がいる。
d.hatena.ne.jp


行優先か、列優先かは面倒なところだが、それ以外は相当簡単。

paraviewによる並列計算結果の一括可視化フォーマット

しばらく前から探していた、並列計算結果のparaviewでの出力フォーマットを発見した。
これを以前のhdf5と組み合わせれば、たいていの結果の可視化には耐えうるのでは。


Generating vtu and pvtu files -- CFD Online Discussion Forums

"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を焼きましょう。